Aller au contenu

ConTeXt/Les scripts mtxrun

Un livre de Wikilivres.


Objectifs de cette section Cette page poursuit l’introduction à mtxrun en se concentrant sur les scripts. Elle explique :

  • ce qu’est un script mtxrun et quel est son rôle dans l’architecture de ConTeXt ;
  • comment lister, appeler et explorer les scripts disponibles ;
  • comment comprendre leur organisation interne ;
  • comment écrire un script simple en Lua utilisable via mtxrun ;
  • dans quels cas cette approche est utile pour automatiser son travail avec ConTeXt.

Pour aller plus loin : les scripts mtxrun

[modifier | modifier le wikicode]

Cette page approfondit l’usage de mtxrun en se concentrant sur ses scripts : leur rôle, leur fonctionnement et leur utilisation pratique. Elle s’adresse aux utilisateurs souhaitant mieux comprendre l’architecture interne de ConTeXt ou automatiser certaines tâches.

1. Qu’est-ce qu’un script mtxrun ?

[modifier | modifier le wikicode]

Un script mtxrun est un programme écrit en Lua, intégré à la distribution ConTeXt, et exécutable depuis la ligne de commande via l’outil mtxrun.

Chaque script remplit une fonction précise :

  • inspection du système,
  • gestion des polices,
  • manipulation du cache,
  • analyse de ressources,
  • assistance au débogage, etc.

La forme générale d’appel est la suivante :

mtxrun --script nom_du_script [options]

Exemple :

mtxrun --script fonts --list
mtxrun --script status --luatex

2. Lister les scripts disponibles

[modifier | modifier le wikicode]

Pour afficher la liste complète des scripts installés dans ton système ConTeXt, tu peux utiliser :

mtxrun --script help

ou :

mtxrun --list

Cela affiche tous les scripts connus, avec leurs noms exacts.


3. Les principaux scripts et leur rôle

[modifier | modifier le wikicode]

Voici un panorama des scripts `mtxrun` les plus utilisés au quotidien :

Script Fonction principale Exemples d’usage
`status` Donne des informations sur l’environnement ConTeXt

mtxrun --script status
mtxrun --script status --environment

`context` Lance une compilation ConTeXt

mtxrun --script context monfichier.tex

`fonts` Explore et gère les polices

mtxrun --script fonts --list
mtxrun --script fonts --list --all --pattern=*Lato*
mtxrun --script fonts --reload

`cache` Gère le cache ConTeXt (dont les polices)

mtxrun --script cache --show
mtxrun --script cache --purge
mtxrun --script cache --erase --fonts

`modules` Liste et gère les modules ConTeXt

mtxrun --script modules --list

Chaque script dispose de ses propres options. Pour les découvrir :

    mtxrun --script fonts --help
    mtxrun --script cache --help

3.1 Scripts utiles pour les polices

[modifier | modifier le wikicode]

Les scripts `fonts` et `cache` sont essentiels dès qu’on manipule des polices personnalisées.

Rechercher une police particulière

Pour chercher toutes les polices dont le nom contient une chaîne donnée (par exemple « Lato ») :

mtxrun --script fonts --list --all --pattern=*Didot*

Cette commande affiche un tableau avec :

  • le nom de famille (family) ;
  • le nom interne utilisé par ConTeXt (fontname) ;
  • le nom de fichier (filename) ;
  • les variantes (gras, italique, etc.).

On peut aussi filtrer par nom de fichier :

mtxrun --script fonts --list --all --file --pattern=*Didot-*.ttf
Astuce {{{1}}}

4. Où se trouvent les scripts ?

[modifier | modifier le wikicode]

Les scripts ConTeXt sont stockés dans l’arborescence d’installation, dans des fichiers Lua.

Pour localiser leur emplacement exact, tu peux afficher les variables d’environnement :

mtxrun --script status --environment

Les scripts se trouvent généralement dans un dossier du type :

.../texmf-context/scripts/...

(selon ton système et ton installation).


5. Structure interne d’un script

[modifier | modifier le wikicode]

Un script mtxrun est un fichier Lua qui suit une structure spécifique. Il déclare un point d’entrée appelé par mtxrun.

De manière schématique :

```lua if environment.arguments.help then

 print("Aide du script…")
 return

end

-- logique principale print("Mon script fonctionne.")