Aller au contenu

ConTeXt/Comprendre l'utilité de la commande mtxrun

Un livre de Wikilivres.


mtxrun : qu’est-ce que c’est et à quoi ça sert ?

[modifier | modifier le wikicode]

Objectifs de cette section Cette page introduit la commande mtxrun, outil central de l’écosystème ConTeXt. Elle explique :

  • ce qu’est mtxrun et pourquoi cette commande est essentielle ;
  • comment appeler un script avec mtxrun --script ;
  • le lien entre mtxrun et la commande context ;
  • le rôle des principaux scripts (status, fonts, cache, etc.) ;
  • dans quels cas il est utile d’intervenir directement via mtxrun ;
  • comment l’utiliser pour diagnostiquer ou maintenir son installation ConTeXt.


La commande mtxrun est l’outil central de l’écosystème ConTeXt. Elle sert de point d’entrée unique pour exécuter la quasi-totalité des scripts et utilitaires liés à ConTeXt : gestion des polices, inspection des ressources, traitement des figures, nettoyage du cache, génération d’index, diagnostics, etc.

Autrement dit, mtxrun est à ConTeXt ce que le terminal est au système : une interface de contrôle générale, commune à de nombreux usages.

1. Principe général

[modifier | modifier le wikicode]

mtxrun est un lanceur de scripts écrits en Lua, fournis avec la distribution de ConTeXt. Chaque fonctionnalité est appelée via l’option --script, suivie du nom du module :

mtxrun --script nom_du_script [options]

Par exemple :

mtxrun --script status
mtxrun --script fonts --list
mtxrun --script cache --purge

De nombreuses commandes que l’on utilise couramment (comme context) sont en réalité des raccourcis qui s’appuient sur mtxrun.

2. À quoi sert concrètement mtxrun ?

[modifier | modifier le wikicode]

mtxrun intervient dans plusieurs domaines essentiels du travail avec ConTeXt :

Domaine Utilité
Polices de caractères Lister, analyser, installer et configurer les fontes
Figures Gérer, analyser et tester les images intégrées
Cache Nettoyer ou reconstruire le cache
Statut système Vérifier l’état de l’installation ConTeXt
Débogage Accéder à des outils de diagnostic
Modules Gérer les modules complémentaires ConTeXt

Il sert donc autant :

  • au débutant (contrôle de l’installation),
  • qu’à l’utilisateur avancé (gestion fine de l’environnement).

3. Scripts principaux de mtxrun

[modifier | modifier le wikicode]

Voici une sélection des scripts les plus utiles :

Script Rôle Exemple de commande
status Affiche l’état du système ConTeXt mtxrun --script status
fonts Gère les polices (liste, recherche…) mtxrun --script fonts --list
cache Manipule le cache ConTeXt mtxrun --script cache --purge
context Lance la compilation ConTeXt mtxrun --script context monfichier.tex
status --figures Liste les figures internes mtxrun --script status --figures

3.1 Rechercher une police particulière

Le script `fonts` permet non seulement de lister toutes les polices, mais aussi de rechercher une police précise à partir d’un morceau de son nom (famille, style, fichier, etc.).

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

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

Cette commande affiche un tableau récapitulatif avec :

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

On peut utiliser n’importe quel motif dans `--pattern` (avec `*` comme joker). Cela fonctionne aussi pour les noms de fichiers :

   mtxrun --script fonts --list --all --file --pattern=*Lato-*.ttf

3.2 Vider et régénérer le cache des polices

ConTeXt maintient une base de données des polices disponibles. Si vous :

 * installez de nouvelles polices ;
 * supprimez ou déplacez des fichiers de polices ;
 * constatez que ConTeXt ne « voit » pas une police pourtant installée,

il peut être utile de vider le cache des polices puis de le reconstruire.

1. Effacer uniquement la partie « polices » du cache :

   mtxrun --script cache --erase --fonts

2. Reconstruire la base de données des polices :

   mtxrun --script fonts --reload

Après ces deux commandes, la première compilation d’un document peut être un peu plus lente : ConTeXt reconstruit ses index internes de polices, mais les compilations suivantes redeviennent normales.

Astuce Si ConTeXt continue d’ignorer une police récemment installée : vérifiez d’abord que la police est bien accessible au système (dossier de polices utilisateur ou système). Cette séquence résout la plupart des problèmes de polices « invisibles » après une installation ou un nettoyage un peu brutal des répertoires.

Afin de vider le cache des polices, lancez la commande :

  • mtxrun --script cache --erase --fonts
  • puis la commande mtxrun --script fonts --reload
  • Enfin, vérifiez que ConTeXt la voit bien avec :
  • mtxrun --script fonts --list --all -- pattern=NomDeLaPolice.

Afin de vider le cache des polices (et recherchez ensuite une police nouvellement installée), lancez la commande :

  • mtxrun --script cache --erase --fonts
  • puis la commande mtxrun --script fonts --reload va recharger et organiser les polices nouvellement installées;
  • Enfin, vérifiez que ConTeXt voit bien cette (ou ces) police avec :
  • mtxrun --script fonts --list --all --pattern=NomDeLaPolice. Vous pouvez ajouter des joker à cette dernière commande. par exemple, si vous cherchez une police de la famille Didot (GFS Didot), vous pouvez passer la commande :

mtxrun --script fonts --list --all --pattern=*didot* :

  • Ce qui produit le résultat suivant :
Résultat de la recherche de polices Didot
Identifier Famille Nom interne Fichier Instances
gfsdidot gfsdidot gfsdidotregular GFSDidot-Regular.ttf
gfsdidotnormal gfsdidot gfsdidotregular GFSDidot-Regular.ttf
gfsdidotregular gfsdidot gfsdidotregular GFSDidot-Regular.ttf
theanodidot theanodidot theanodidotregular TheanoDidot-Regular.ttf
theanodidotnormal theanodidot theanodidotregular TheanoDidot-Regular.ttf
theanodidotregular theanodidot theanodidotregular TheanoDidot-Regular.ttf

Tableau récapitulatif : base de données des polices (ConTeXt LMTX)

[modifier | modifier le wikicode]

Avant d'utiliser ces commandes, il faut toujours avoir chargé l'environnement ConTeXt (portable) :

  • Windows : cd C:\chemin\vers\context puis call tex\setuptex.bat
  • Linux/macOS : cd ~/context puis . tex/setuptex
Objectif Commande (à lancer dans un terminal) Commentaire
Regénérer la base générale de fichiers ConTeXt mtxrun --generate À faire après une mise à jour ou un déplacement de l'installation ConTeXt.
Purger tout le cache ConTeXt (dont les polices) mtxrun --script cache --erase --all Supprime tous les fichiers de cache : recompilation plus lente ensuite, mais propre.
Purger uniquement le cache des polices mtxrun --script cache --erase --fonts Utile après ajout/suppression de nombreuses polices.
Reconstruire complètement la base des polices mtxrun --script font --reload --force --all Re-scanne les dossiers de polices et régénère la base interne. À faire après l'installation de nouvelles polices.
Reconstruire la base des polices (mode rapide) mtxrun --script font --reload Mise à jour plus légère : ne force pas un scan complet de tous les répertoires.
Lister toutes les polices connues de ConTeXt mtxrun --script font --list --all Affiche toutes les polices trouvées. On peut rediriger vers un fichier : > fonts-all.txt.
Rechercher une police ou une famille contenant un mot donné mtxrun --script font --list --all --pattern=*amiri* Remplacer amiri par un autre motif : *noto*, *garamond*, etc.
Obtenir des informations détaillées sur une famille de polices mtxrun --script font --info="amiri" Montre les variantes, styles et fichiers associés au nom demandé (ici : Amiri).
Vérifier qu'une nouvelle police est bien vue par ConTeXt mtxrun --script font --list --pattern=*NomPolice* Permet de vérifier qu'une police récemment installée est bien dans la base.
Extraire la liste des fichiers de polices utilisés mtxrun --script font --list --files Donne le nom de fichier de chaque police (utile pour vérifier les chemins).

Remarque : les options --all et --force ne sont pas toujours nécessaires. On les utilise surtout après une installation massive de polices ou après avoir déplacé des dossiers de polices.

4. Relation entre mtxrun et la commande « context »

[modifier | modifier le wikicode]

La commande classique :

context monfichier.tex

est en réalité un raccourci pour :

mtxrun --script context monfichier.tex

Cela signifie que mtxrun est le véritable moteur de la commande. Comprendre mtxrun, c’est donc comprendre la base du fonctionnement de ConTeXt en ligne de commande.

5. Exemple : inspection des figures internes

[modifier | modifier le wikicode]

Pour obtenir la liste des figures internes disponibles dans ConTeXt :

mtxrun --script status --figures

Cela permet de voir toutes les figures embarquées (comme cow, gnu, mill, etc.), sans ouvrir ConTeXt.

6. Utilité pédagogique et pratique

[modifier | modifier le wikicode]

Même sans utiliser toutes ses fonctionnalités, mtxrun permet au lecteur :

  • de mieux comprendre l’organisation interne de ConTeXt,
  • d’accéder à des outils d’inspection et de débogage,
  • de gérer proprement son environnement de travail.

C’est pourquoi il constitue un point de passage essentiel dans l’apprentissage de ConTeXt après la prise en main de la ligne de commande.