TeX doit son existence à une liasse d'épreuves décevantes. Au printemps 1977, Donald Knuth ouvrit les épreuves en placard de la deuxième édition du volume 2 de son propre The Art of Computer Programming et fut consterné : son éditeur était passé du plomb à la photocomposition, et les formules — ce à quoi il tenait le plus — étaient laides. Il entreprit d'écrire lui-même un système de composition, en comptant sur quelques mois. Il y passa dix ans. Ce système, c'est TeX. LaTeX n'est ni un successeur ni un concurrent de TeX : c'est un package de macros qui tourne sur un moteur TeX, autrement dit un très grand ensemble de commandes écrites dans le langage propre à TeX. Cette page explique ce que sont réellement l'un et l'autre, pourquoi on écrit la structure plutôt que l'apparence, et — sans rien survendre — à qui LaTeX convient et à qui il ne convient pas.
Qu'est-ce que TeX : un moteur de composition né d'épreuves en placard
TeX est un programme qui lit un fichier texte contenant des commandes et calcule, à une fraction de point près, où se pose chaque caractère et chaque filet sur la page. La composition (typographique) est à l'origine un terme d'imprimerie — assembler une à une des lettres de plomb pour former une forme d'impression — et TeX reprend ce travail sur ordinateur. Son auteur est Donald Knuth, informaticien à Stanford. Sa première note de conception, écrite en mai 1977, subsiste sous le nom TEXDR.AFT et fut plus tard reprise comme chapitre de son livre Digital Typography. La première version fonctionnelle date de 1978.
Comme l'objectif de Knuth était de bien composer les formules, chaque détail de TeX est obsessionnel. Il gère la césure à l'intérieur des mots, le crénage de paires comme AV et To, les ligatures qui fondent fi et fl en un seul glyphe, et le contrôle des lignes veuves et orphelines qui évite qu'une première ou dernière ligne de paragraphe reste seule sur une page — le tout sans qu'on le demande. La coupure de lignes surtout ne remplit pas ligne après ligne : TeX examine le paragraphe entier et retient la série de coupures au coût total le plus faible, si bien qu'un caractère ajouté en fin de paragraphe peut déplacer la coupure de la première ligne. Cette rigueur explique que l'édition scientifique tourne encore sur TeX.
Un dernier fait résume le caractère de TeX. Ses numéros de version sont faits pour converger vers π : chaque publication ajoute une décimale de plus, et le TeX livré dans TeX Live 2024 s'annonce comme 3.141592653. Knuth a déclaré qu'à sa mort la version serait figée à π et que toute modification ultérieure devrait être tenue pour un bogue. Son programme frère, le système de fontes Metafont, converge de la même façon vers e, la base des logarithmes naturels. Une plaisanterie sur les numéros de version tenue sérieusement depuis plus de quarante ans.
$ tex --version
TeX 3.141592653 (TeX Live 2024)
kpathsea version 6.4.0Comment se prononcent « TeX » et « LaTeX »
Le X final n'est pas la lettre latine mais le χ (chi) grec. TeX reprend les trois premières lettres du grec τέχνη (technē, métier, art), et Knuth écrit qu'il faut le dire avec le ch de l'allemand ach ou de l'écossais loch. Les anglophones aboutissent donc à quelque chose de proche de « tech », et au Japon le nom se lit aussi depuis longtemps « tef ». Pour LaTeX, on entend « LAY-tech », « LAH-tech » et « LAY-teks », sans qu'aucun arbitrage n'ait jamais tranché. Rien à voir avec le matériau latex. Le logo aux lettres décalées vient de la même origine ; écrire \LaTeX dans le texte le compose.
Qu'est-ce que LaTeX : un package de macros, pas un programme distinct
LaTeX n'est pas un programme différent de TeX. TeX dispose d'un mécanisme de macros — un moyen de définir de nouvelles commandes à partir des anciennes — et LaTeX est un très vaste ensemble de commandes écrit uniquement avec ce mécanisme. Lancer pdflatex, ce n'est pas lancer « l'exécutable LaTeX » : c'est lancer un moteur TeX dans lequel tout le jeu de commandes LaTeX a été préchargé. C'est en se trompant là-dessus qu'on trouve plus tard les mots « moteur » et « format » déroutants. Dans une installation TeX Live on peut même constater que latex et pdflatex pointent vers le même exécutable, mais cette démonstration revient aux pages sur le TeX classique et sur LaTeX comme format.
Ces macros sont l'œuvre de Leslie Lamport, l'informaticien connu plus tard pour ses travaux sur les systèmes répartis. Au début des années 1980, alors qu'il était au SRI International, il avait accumulé un jeu de macros TeX pour ses propres documents, puis l'a publié : ce fut LaTeX. Il a clos son propre travail avec LaTeX 2.09 en 1985 et publié l'année suivante, en 1986, le manuel LaTeX: A Document Preparation System chez Addison-Wesley. Le « La » du nom est celui de Lamport.
Ce qu'on entend aujourd'hui par « LaTeX » est presque à coup sûr LaTeX2e, publié le 1er juin 1994 par l'équipe du LaTeX Project autour de Frank Mittelbach. La raison est écrite noir sur blanc dans la source primaire, le n° 1 de LaTeX News : les dérivés de LaTeX 2.09 s'étaient tellement multipliés qu'un site devait conserver côte à côte LaTeX avec et sans NFSS, plus SLiTeX et AmSLaTeX — on les a donc ramenés sous un format unique. C'est alors que la première ligne d'un document est passée de \documentstyle à \documentclass. La commande que tout le monde tape en premier est en fait un produit de cette unification de 1994. Le chantier LaTeX3, mené de longue date, n'est jamais devenu un produit distinct : depuis 2018 il est livré dans le noyau LaTeX2e sous forme de couche de programmation expl3, sur laquelle s'appuient la plupart des packages modernes.
Écrire du sens plutôt que de l'apparence : la vraie rupture avec le traitement de texte
Dans un document LaTeX, on n'écrit pas « 14 points gras, 3,5 lignes d'espace au-dessus » pour faire un titre. On écrit \section{Introduction} — seulement le fait qu'il s'agit d'un titre de section. Les corps et les espacements, eux, vivent dans le fichier de classe. Dans article.cls de TeX Live 2024, la ligne 302 dit : \@startsection{section}{1}{\z@}{-3.5ex ...}{2.3ex ...}{\normalfont\Large\bfseries} : 3,5ex d'espace au-dessus, 2,3ex en dessous, composé en \Large gras. Ces nombres n'apparaissent jamais dans votre manuscrit. C'est pourquoi remplacer article par la classe fournie par une revue suffit à faire obéir tous les titres, sans toucher au texte. C'est exactement la séparation entre HTML et CSS sur le web.
\documentclass{article}
\begin{document}
\section{Introduction}
The body says what the text \emph{is}, never how it should look.
\[ E = mc^2 \]
\end{document}Cette division du travail devient payante dès qu'un document s'allonge. On ne tape jamais un numéro : posez \label et \ref, et le « voir figure 3.2 » comme son numéro de page se remplissent seuls ; qu'une figure insérée décale toute la numérotation, et tout se corrige seul. La table des matières, l'index et la bibliographie sont produits de la même manière. À l'inverse : dès qu'on met un titre en gras à la main ou qu'on tape soi-même un numéro, on renonce précisément à ce que LaTeX fait le mieux. Il y a toutefois un prix. On ne voit pas le résultat en tapant. Écrire, compiler, regarder le PDF : cette boucle est le rythme de travail de LaTeX, et tant qu'elle n'est pas devenue une habitude, elle paraît nettement plus lente qu'un traitement de texte.
TeX, LaTeX, pdfLaTeX, upLaTeX, LuaLaTeX : quelle différence
Si les noms se multiplient, c'est qu'ils sont le produit de deux choses : le moteur (le programme qui travaille) et le format (le système de commandes). Les moteurs sont TeX, pdfTeX, XeTeX, LuaTeX et pTeX/upTeX ; les formats, plain TeX, LaTeX et ConTeXt. pdflatex, c'est « moteur pdfTeX plus format LaTeX » ; uplatex, « moteur upTeX plus format LaTeX » — les noms sont littéralement cette multiplication. LaTeX posé sur les moteurs japonais pTeX et upTeX s'appelle respectivement pLaTeX et upLaTeX. Quel moteur choisir est une question pratique à laquelle répond la page consacrée au choix du moteur ; en première approximation : pdflatex pour un texte surtout anglais, lualatex ou xelatex pour utiliser les polices déjà installées, uplatex ou lualatex pour le japonais.
| Nom | Ce que c'est réellement | Où cela s'utilise |
|---|---|---|
tex | Le moteur de Knuth lui-même, avec le format plain TeX | Pour comprendre la mécanique ; pas pour écrire au quotidien |
latex | Le format LaTeX, avec sortie DVI | La route classique par DVI ; aussi la base du flux de travail japonais |
pdflatex | Moteur pdfTeX plus LaTeX ; écrit directement du PDF | Le choix par défaut pour l'écriture latine, et le plus éprouvé |
uplatex | Moteur upTeX plus LaTeX ; écrit du DVI | La référence pour les articles japonais ; solide en composition verticale et règles de coupure japonaises |
xelatex | Moteur XeTeX plus LaTeX ; Unicode et polices système | Quand on veut désigner une police OpenType par son nom |
lualatex | Moteur LuaTeX plus LaTeX ; extensible de l'intérieur en Lua | Le point de départ aujourd'hui ; le japonais via luatexja |
À qui LaTeX convient, et à qui il ne convient pas
En une phrase : LaTeX gagne à mesure qu'un document est long, structuré et souvent révisé. Beaucoup de formules, une hiérarchie profonde, des dizaines de figures et de références, une mise en forme différente pour chaque revue, des coauteurs qui lisent les diffs sous Git — plus ces conditions s'accumulent, plus l'automatisation rapporte. En physique, en mathématiques et en informatique, c'est de fait le standard : le serveur de prépublications arXiv demande les sources LaTeX, et Wikipédia écrit ses formules en notation LaTeX.
Le revers : il existe des travaux pour lesquels LaTeX ne vaut manifestement pas la peine. Tout ce qui suppose de placer des éléments à des positions arbitraires — un dépliant d'une page, une affiche — est plus rapide et plus prévisible dans un logiciel de mise en page. Si les coauteurs n'utilisent que Word, le coût des conversions mange le gain de l'automatisation. Et si l'échéance est demain et que LaTeX n'a jamais été utilisé : écrivez en Word aujourd'hui. Cet apprentissage prend des jours, et ces jours ne se paient pas avec du temps emprunté. Dire « avec LaTeX, le document sera beau » n'est pas exact. L'énoncé exact est : écrivez correctement la structure et vous êtes libéré du travail de mise en forme.
- Si le document est plein de formules, prenez LaTeX sans trop hésiter. Rien d'autre ne compose aussi bien les équations.
- Si la revue diffuse un fichier de classe LaTeX, utilisez-le. Toute la discussion sur la mise en forme disparaît.
- Si le document se construira à plusieurs sur des années, le texte brut fait la différence. Les diffs se lisent sous Git et le fichier s'ouvrira encore dans dix ans.
- Si l'objectif est une mise en page d'une seule feuille, prenez un autre outil sans regret. Placer des éléments à des coordonnées choisies est ce que LaTeX fait le moins bien.
- Pour simplement l'essayer, lancez-le dans un navigateur plutôt que d'installer quoi que ce soit. Renoncer pendant l'installation est la pire façon de passer à côté.
Pour finir, les raisons pratiques de la longévité de TeX, plus de quarante ans. Il est libre et open source : on peut le lire, le modifier, en vivre. L'entrée est du texte brut dans un fichier .tex, donc n'importe quel éditeur convient, grep y cherche, un script peut la produire et Git sait la comparer. Des milliers d'extensions reposent sur CTAN, le Comprehensive TeX Archive Network : à la question « est-ce que ça sait faire ceci ? », quelqu'un a le plus souvent déjà répondu. Et une même entrée donne une même sortie : sous Windows, macOS ou Linux, et à partir d'un fichier écrit il y a dix ans. Partout où la reproductibilité est exigée — recherche, archives officielles —, cette propriété est difficile à remplacer. À présent, fabriquons une vraie page.