Distributions (TeX Live / MiKTeX / MacTeX)

Le numéro de version de TeX Live est une année : 2024, 2026. Et dès que le millésime suivant paraît, le précédent est gelé : il ne recevra plus jamais de mise à jour de routine. C’est ce choix de conception qui rend le choix d’une distribution LaTeX différent du choix de n’importe quel autre logiciel. En pratique, quatre candidats : TeX Live, MiKTeX, MacTeX, et ce que votre distribution Linux empaquette. Cette page mesure une véritable arborescence TeX Live 2024 avec du et tlmgr pour montrer ce que chacun promet et ce qu’il ne promet pas — y compris ce que scheme-full coûte réellement en gigaoctets, mesuré plutôt que répété.

Ce qu’il y a réellement dans une distribution

Une distribution est un instantané de CTAN, le Comprehensive TeX Archive Network : quelqu’un a déjà choisi un ensemble de packages compatibles entre eux et les a testés comme un tout. Ce n’est pas « TeX plus quelques packages ». Le décompte de la base de packages de cette installation TeX Live 2024 donne 8 238 entrées, dont 4 684 réellement présentes avec scheme-full — la différence, ce sont les sous-paquets binaires destinés aux autres plateformes. La base compte trois niveaux : 10 schémas, 41 collections, puis les packages individuels. Les fichiers de classe que charge \documentclass, amsmath, latexmk, bibtex : tout est accroché quelque part à cet arbre.

Où passe la place ? du -sh sur cette arborescence affiche 8.7G, dont 3,7 Go pour le seul texmf-dist/doc, qui contient 10 099 fichiers PDF. Les polices occupent 2,9 Go et les exécutables 522 Mo. Autrement dit, près de la moitié d’un TeX Live complet est de la lecture, pas du code qui s’exécute. Ces 3,7 Go sont le centre de gravité discret de la distribution : si texdoc siunitx ouvre le manuel officiel sans toucher au réseau, c’est parce que le manuel est déjà sur le disque. Élaguer la documentation pour gagner de la place, c’est jeter cette capacité avec.

terminal
# Measure your own installation instead of trusting a number on a web page
tlmgr --version                 # which yearly release am I on?
kpsewhich -var-value=SELFAUTOPARENT   # where does that release live?
du -sh "$(kpsewhich -var-value=SELFAUTOPARENT)"
tlmgr list --only-installed | wc -l   # how many packages are present

Ce que signifie l’année de TeX Live : la version gelée

TeX Live paraît une fois par an, et dès que le millésime suivant arrive, le précédent est gelé. Gelé signifie que les mises à jour s’arrêtent, non que la version cesse de fonctionner ni que tlmgr refuse de s’exécuter. En lisant tlmgr.pl, on constate qu’à la détection d’un dépôt gelé le programme émet un avertissement — il commence par TeX Live 2024 is frozen et explique que cela survient quand une nouvelle version vient de paraître ou est imminente — puis poursuit. Le code source porte même un commentaire disant en substance de ne pas s’arrêter là, parce qu’on veut autoriser les mises à jour même sur un dépôt gelé. Un millésime gelé ne refuse donc pas de vous mettre à jour : il n’a simplement plus rien à vous donner.

Pour qui choisit une distribution, ce choix de conception a deux faces. D’abord la reproductibilité : écrire « composé avec TeX Live 2024 » dans un README désigne un environnement que n’importe qui peut reconstruire à l’identique. Pour une thèse, une soumission ou une compilation en CI, cela compte. Ensuite, le rendu peut bouger en franchissant une année, et des mises à jour de packages arrivent aussi en cours d’année — d’où la règle : pas de grosse mise à jour juste avant une échéance, on change de millésime une fois le travail rendu. La règle voisine, selon laquelle tlmgr ne met pas à jour les autres packages tant qu’il est lui-même périmé, relève du même modèle annuel ; « Gestion des packages et des polices » la détaille.

Combien de gigaoctets coûte vraiment scheme-full

Réponse courte : sur ce Mac, un TeX Live 2024 en scheme-full mesure 8.7G sous du -sh, et la base de packages déclare scheme-full à 8 270 269 Ko, soit environ 7,9 Go. Le « à peu près 7 Go » souvent répété est désormais sous-évalué. Le schéma que l’installateur demande en premier est le choix unique qui fixe ce total. Les schémas s’emboîtent : un schéma regroupe des collections, une collection regroupe des packages ; on le choisit dans le menu interactif d’install-tl ou d’emblée avec par exemple --scheme scheme-full.

SchémaContenuTaille installée
scheme-infraonlyInfrastructure seule, aucun moteur TeX ; pour les tests automatisésenviron 7 Mo
scheme-minimalplain TeX uniquement — pas de LaTeXenviron 56 Mo
scheme-basicplain TeX et LaTeX ; de quoi produire un PDF avec Computer Modernenviron 208 Mo
scheme-bookpubÉdition de livres : LaTeX de base plus modules d’éditionenviron 317 Mo
scheme-contextune installation centrée sur ConTeXtenviron 461 Mo
scheme-smallbasic plus XeTeX, MetaPost et césures ; l’équivalent du BasicTeX de MacTeXenviron 477 Mo
scheme-gustle schéma assemblé pour GUST, le groupe polonais d’utilisateurs de TeXenviron 1,1 Go
scheme-mediumsmall plus d’autres packages et langues — le compromis pratiqueenviron 1,8 Go
scheme-tetexà peu près l’ancien teTeX : plus large que medium, loin de fullenviron 2,8 Go
scheme-fullla valeur par défaut : tout ce qui est distribuable depuis CTAN, CJK comprisenviron 7,9 Go (8,7 Go mesurés sur le disque)

Deux entrées du tableau sont discrètement drôles. La base décrit scheme-infraonly comme le schéma TeX Live « pour l’infrastructure seule, sans aucun moteur TeX » — une distribution TeX sans TeX (l’usage prévu est le test automatisé, où l’on ajoute ensuite l’objet testé par tlmgr install). L’autre est scheme-tetex. teTeX était la distribution de Thomas Esser, standard sur Unix tout au long des années 1990, jusqu’à ce qu’Esser annonce en mai 2006 qu’il n’y aurait plus de nouvelle version et désigne TeX Live comme successeur. La distribution a disparu depuis longtemps, mais son ordre de grandeur survit dans TeX Live sous la forme d’un nom de schéma fossile.

La décision pratique : si l’on peut consacrer 10 Go, on prend scheme-full. La raison n’est pas le disque mais l’attention — cela supprime entièrement l’activité qui consiste à traquer un package manquant. Quand la place manque vraiment, scheme-medium (environ 1,8 Go) est le point d’atterrissage raisonnable, et l’on ajoute des collections ensuite. Pour composer du japonais, ajoutez collection-langjapanese ; pour la base commune chinois/japonais/coréen, collection-langcjk (les deux sont déjà dans scheme-full). Descendez jusqu’à scheme-basic et vous n’avez ni XeTeX ni CJK.

Ce que l’installation à la volée de MiKTeX rapporte et ce qu’elle coûte

La différence entre TeX Live et MiKTeX en une phrase : MiKTeX va chercher un package manquant au milieu d’une compilation, TeX Live non. MiKTeX — lancé par Christian Schenk pour Windows, et fonctionnant aujourd’hui aussi sous macOS et Linux — voit \usepackage{siunitx} sans siunitx installé, le récupère depuis CTAN et poursuit sans interrompre la passe. Ce comportement est un réglage, choisi à l’installation et modifiable dans la MiKTeX Console : toujours installer, demander à chaque fois ou jamais. Son pendant en ligne de commande n’est pas tlmgr mais mpm, le MiKTeX Package Manager.

Le gain est évident : une installation initiale légère, sans payer des gigaoctets pour des packages jamais chargés. Ce que l’on vend, c’est la reproductibilité et la prévisibilité. Hors ligne, la compilation s’arrête dès qu’elle réclame du nouveau ; en CI, la compilation qui passait hier peut passer aujourd’hui avec une autre version de package. Le piège réellement rencontré est celui de l’installation partagée : même lorsque MiKTeX est installé pour tous les utilisateurs, les packages récupérés à la volée atterrissent dans le AppData\Roaming de l’utilisateur courant, pas dans l’arborescence commune. C’est la cause classique du « ça compile chez moi, pas chez mon collègue ». Sur une machine partagée ou de laboratoire, mieux vaut installer d’avance les packages nécessaires en mode administrateur.

En quoi MacTeX diffère de TeX Live

Côté TeX, il n’y a aucune différence. mactex est le .pkg macOS distribué par le groupe de travail MacTeX de TUG, et il contient le TeX Live du millésime correspondant : le même tlmgr, les mêmes packages. Ce qui s’ajoute, c’est le confort macOS — signé et notarié par Apple, installation en double-clic, dépôt de TeXShop (éditeur TeX dédié), BibDesk (gestion bibliographique), LaTeXiT (transformer une formule en image à déposer) et TeX Live Utility (interface graphique pour tlmgr) dans /Applications/TeX/, plus Ghostscript inclus. MacTeX-2026 exige macOS 11 (Big Sur) ou plus récent et tourne nativement sur Intel comme sur Apple silicon.

Ce qui, dans MacTeX, gagne vraiment son pain, ce ne sont pas les applications graphiques mais la façon dont PATH est câblé. Vérifié sur ce Mac : /Library/TeX/texbin est un lien symbolique vers Distributions/Programs/texbin, lequel pointe vers le répertoire bin du millésime actif. Comme ce qui figure dans PATH est toujours /Library/TeX/texbin, passer à la version de l’an prochain ne demande aucune modification d’un fichier de configuration. Si le paquet complet est trop gros, BasicTeX est l’option réduite — la base de packages elle-même décrit scheme-small comme correspondant à la variante BasicTeX de MacTeX. Le téléchargement est léger, mais prévoyez environ 477 Mo une fois décompressé.

Le TeX Live de votre distribution Linux suffit-il ?

Pour un usage quotidien, cela convient, mais c’est le mauvais choix si l’on veut se servir de tlmgr. Le texlive-full de Debian/Ubuntu et le texlive-scheme-full de Fedora démontent TeX Live et le reconstruisent dans le système de paquets du système d’exploitation ; dépendances et mises à jour relèvent donc d’apt ou de dnf. Cela signifie aussi que le gestionnaire de paquets du système possède l’arborescence, et qu’on ne peut généralement plus y ajouter quoi que ce soit avec tlmgr install. Quand il faut un correctif publié cette semaine sur CTAN, on est bloqué. Autre difficulté : le calendrier. Les mises à jour de l’éditeur peuvent accuser des mois voire des années de retard sur la version annuelle, ce qui explique souvent qu’un système « censé être TeX Live 2024 » se comporte autrement.

Lequel choisir, plateforme par plateforme

Mis côte à côte, quatre questions tranchent : comment les packages arrivent, ce qui les met à jour, quelles plateformes sont couvertes et quelle taille cela atteint. La taille varie beaucoup selon le schéma ; les chiffres ci-dessous supposent l’ordre de grandeur de scheme-full. Un détail de plateforme mérite d’être connu : installer TeX Live sous Windows fournit aussi l’éditeur TeXworks, la base de packages précisant que TeX Live n’inclut les exécutables et fichiers de support de TeXworks que pour Windows. Sous macOS et Linux, l’éditeur est à fournir soi-même.

PlateformesArrivée des packagesOutil de mise à jourTaille en installation complète
TeX LiveWindows / macOS / Linux / Unixtout d’un coup, selon le schématlmgr, interface tlshell8,7 Go mesurés
MiKTeXsurtout Windows (aussi macOS / Linux)récupérés en cours de compilation, au besoinmpm, interface MiKTeX Consolepetit au départ, grandit à l’usage
MacTeXmacOS uniquement (11 Big Sur et suivants)tout d’un coup (c’est TeX Live)tlmgr / TeX Live Utilitycomme TeX Live ; BasicTeX environ 477 Mo
texlive-fullLinux (famille Debian / Ubuntu)tout d’un coup, via les dépendances de paquets du systèmeapt et consorts ; tlmgr inutilisableplusieurs Go, selon le découpage de l’éditeur
  • Windows : dans le doute, TeX Live — même millésime et même contenu que sur toutes les autres plateformes, la reproductibilité ne se pose donc jamais. Choisir MiKTeX si le disque est compté ou si l’on veut vraiment que les packages apparaissent au besoin.
  • macOS : MacTeX est la réponse par défaut, et le dispositif /Library/TeX/texbin fait qu’on ne touche jamais à PATH. Si la bande passante ou la place manque, partir de BasicTeX et compléter avec tlmgr.
  • Linux / Unix : la voie directe est l’installateur officiel TeX Live dans /usr/local/texlive/. Éviter le texlive-full d’apt si l’on veut gérer les packages soi-même, puisqu’il retire tlmgr.
  • CI, Docker, hors ligne : TeX Live, sans hésiter. En installant explicitement les packages nécessaires, la compilation ne dépend jamais d’un téléchargement de MiKTeX en cours de route.
  • Japonais, chinois, coréen : les quatre composent le CJK. Avec scheme-full, cela fonctionne tel quel ; avec un schéma plus petit, ajoutez collection-langjapanese ou collection-langcjk.