pdflatex, lualatex, platex… les noms de commandes se ressemblent et engendrent la confusion, mais chacun est en réalité une combinaison d'un « format » et d'un « moteur ». Un format est un ensemble précompilé de macros ; un moteur est le programme qui l'exécute réellement. LaTeX est l’un de ces formats et il fonctionne sur plusieurs moteurs différents. Cette page trie LaTeX2e, pLaTeX/upLaTeX, LuaLaTeX et XeLaTeX exactement le long de cet axe.
Format vs moteur
Un moteur est l'exécutable qui lit un fichier .tex et le compose (TeX, pdfTeX, XeTeX, LuaTeX, e-pTeX, etc.). Un format, en revanche, est une énorme collection de macros — \documentclass, \section et le reste — lues à l'avance et précompilées en un seul dump (un fichier .fmt). Au démarrage, le moteur charge ce .fmt en un instant, s'épargnant ainsi la redéfinition de chaque macro à chaque exécution.
Donc « LaTeX » est le nom d'un format, pas d'un moteur. Le même format LaTeX peut être exécuté sur différents moteurs, et la commande que vous tapez code le moteur + le format souhaité. pdflatex signifie « moteur pdfTeX + format LaTeX » ; lualatex signifie « moteur LuaTeX + format LaTeX ».
LaTeX n'est pas le seul format. Les formats simples plain TeX et ConTeXt de Knuth sont entièrement différents. Cette page se limite au moteur le plus utilisé, LaTeX, et présente les principaux moteurs sur lesquels vous pouvez l'exécuter.
LaTeX (2e)
Aujourd'hui, « LaTeX » signifie, presque sans exception, LaTeX2e. Il s'agit de la version actuelle des macros LaTeX de Leslie Lamport, désormais maintenues par le projet LaTeX, et elle est arrivée en 1994. Le 2e était censé signaler une « petite révision » du précédent LaTeX 2.09, une étape intermédiaire sur la voie du LaTeX3 prévu depuis longtemps.
Mais LaTeX3 ne s'est jamais matérialisé en tant que nouveau noyau autonome ; son travail était plutôt superposé à LaTeX2e en tant que expl3 (la couche de programmation LaTeX3). Depuis 2020, expl3 est chargé par défaut dans le format et il est de plus en plus utilisé dans le noyau pour implémenter de nouvelles fonctionnalités. Le résultat : nous utilisons toujours LaTeX2e au quotidien, mais ses composants internes continuent d'être modernisés avec la technologie LaTeX3.
Le noyau LaTeX2e est désormais mis à jour régulièrement à une cadence semestrielle (environ juin et novembre). La version stable la plus récente est le 2025-11-01 (livrée en novembre 2025), et une pré-version de développement de la suivante, 2026-06-01, circule déjà pour test. Le modèle de création est cohérent : choisissez une classe de document avec \documentclass en haut, effectuez le chargement et la configuration du package dans le préambule jusqu'à \begin{document}, puis écrivez le corps - le modèle familier "classe + préambule".
L'exécution de ce format sur le moteur pdfTeX constitue le couplage standard le plus classique. Le même pdfTeX se divise en deux commandes par cible de sortie : latex exécute pdfTeX en mode DVI et émet le format intermédiaire DVI (converti en PDF ultérieurement par un outil séparé), tandis que pdflatex demande à pdfTeX d'émettre PDF directement. Pour les documents texte principalement occidentaux d’aujourd’hui, pdflatex est de facto la valeur par défaut.
pLaTeX / upLaTeX
pLaTeX et upLaTeX mettent le format LaTeX sur les moteurs conçus pour la composition japonaise. Les travaux spécifiques au Japon (écriture verticale, rubis (furigana), composition de lignes japonaises) sont gérés par la famille de moteurs pTeX, initialement étendue chez ASCII Corporation. Dans le TeX Live actuel, platex et uplatex s'exécutent sur une base e-upTeX, mais platex préserve la gestion des caractères compatible avec pLaTeX tandis que uplatex s'exécute au format upLaTeX orienté Unicode.
Cette famille génère toujours DVI , puis convertit le DVI à roulement japonais en PDF avec dvipdfmx — un pipeline en deux étapes (uplatex file.tex suivi de dvipdfmx file.dvi). Associez-le à upmendex pour un index japonais. Pour les classes de documents, les jsarticle/jsbook de Haruhiko Okumura (pour pLaTeX) et leurs homologues Unicode tels que ujarticle sont courants, tout comme le plus récent, JIS X 4051 jlreq.
La différence entre platex et uplatex réside moins dans la base exécutable que dans la gestion des caractères au niveau du format. platex préserve le comportement traditionnel de style pTeX pour une compatibilité descendante avec les actifs pLaTeX. uplatex assume Unicode et gère bien le japonais mélangé au hangul ou au cyrillique. Pour les nouveaux papiers japonais, uplatex est le choix standard.
Quand l'utiliser : lorsqu'une société ou un éditeur japonais expédie une classe ou un style pour pLaTeX, ou lorsque vous souhaitez la composition japonaise mature de pTeX (écriture verticale et autres), pLaTeX/upLaTeX est le choix idéal. À l’inverse, si vous souhaitez utiliser les polices système telles quelles ou verser directement Unicode, LuaLaTeX-ja (ci-dessous) convient mieux.
LuaLaTeX
LuaLaTeX place le format LaTeX sur le moteur LuaTeX ; la commande est lualatex. LuaTeX est un moteur issu de pdfTeX qui gère directement l'entrée Unicode et peut charger les polices système OpenType / TrueType installées sur votre OS via le package fontspec. Il produit PDF directement, sans format intermédiaire.
Comme son nom l'indique, sa particularité est que le langage de script Lua est intégré au moteur. Avec \directlua{...}, vous pouvez écrire Lua qui atteint les composants internes de TeX, rendant ainsi les extensions qui étaient autrefois difficiles beaucoup plus faciles. La composition japonaise est gérée par le package luatexja, offrant une composition comparable à pLaTeX tout en restant dans les polices système et Unicode.
Cette modernité est la raison pour laquelle l'équipe LaTeX désigne de plus en plus LuaLaTeX comme le moteur moderne et le recommande par défaut pour les nouveaux projets. Son inconvénient est la rapidité : la compilation est plus lourde que pdflatex ou xelatex (parfois environ deux fois plus lente que XeLaTeX). Si vous souhaitez un moteur capable de traiter du texte japonais et multilingue, une gestion élaborée des polices et une composition programmatique, LuaLaTeX est le premier candidat.
XeLaTeX
XeLaTeX place le format LaTeX sur le moteur XeTeX ; la commande est xelatex. Comme LuaLaTeX, il prend en charge l'entrée Unicode et l'utilisation directe des polices système via fontspec. Pour la sortie, il produit PDF via son xdvipdfmx intégré (un pilote dérivé de dvipdfmx).
La force de XeLaTeX est la simplicité. Pour « Je veux juste utiliser mes polices système », il a tendance à être plus léger à configurer et plus rapide à compiler que LuaLaTeX. Sa sélection de polices semble proche de la recherche de nom de police du système d'exploitation, il est donc simple d'essayer un nom de police après l'autre. D'un autre côté, il lui manque la programmabilité approfondie de Lua, et le centre de gravité des nouveaux développements s'est déplacé vers LuaTeX.
Aide-mémoire de commande
Même avec le même format LaTeX, le nom de la commande détermine le moteur qui se cache derrière, le format de sortie et le fonctionnement des polices. Dans le tableau ci-dessous, lisez de gauche à droite en commençant par le nom de la commande.
| Commande | Moteur | Sortie | Unicode / polices système |
|---|---|---|---|
latex | pdfTeX (mode DVI) | DVI → nécessite une conversion | Non (nécessite une saisie, etc.) |
pdflatex | pdfTeX | PDF (direct) | Non (nécessite une saisie, etc.) |
platex | e-upTeX (runtime de compatibilité pLaTeX) | DVI → dvipdfmx | Japonais ; polices héritées |
uplatex | e-upTeX | DVI → dvipdfmx | Unicode interne ; polices héritées |
lualatex | LuaTeX | PDF (direct) | Oui — fontspec / luatexja |
xelatex | XeTeX | PDF (via xdvipdfmx) | Oui — fontspec |
En termes de commandes réelles, les moteurs qui émettent PDF terminent directement en une seule étape, tandis que ceux basés sur DVI ajoutent une étape de conversion.
# pdfTeX: PDF を直接出力 / emits PDF directly
$ pdflatex main.tex # → main.pdf
# LuaTeX: PDF を直接出力 / emits PDF directly
$ lualatex main.tex # → main.pdf
# upLaTeX: DVI を出力し、dvipdfmx で PDF へ変換
# upLaTeX emits DVI, then dvipdfmx converts to PDF
$ uplatex main.tex # → main.dvi
$ dvipdfmx main.dvi # → main.pdfLequel choisir
Un guide approximatif suit. Les critères détaillés – vitesse, compatibilité des packages, situation japonaise, etc. – sont explorés sur la page « Choisir un moteur ».
- Texte principalement occidental, rapidement →
pdflatex. Le plus mature, avec le support de packages le plus large. - Papiers japonais / un cours existant obligatoire →
uplatex(ouplatexsi nécessaire). DVI →dvipdfmx. - Un moteur moderne à tout faire, japonais inclus →
lualatex. Unicode + polices système +luatexja. - Utilisez les polices système avec un minimum de complications →
xelatex. Léger à configurer et plus rapide à compiler.
Une fois choisi, figez-le dans le projet
Le choix du moteur ne dépend pas de l’humeur. Pour une thèse, une fois la page de titre, la table des matières, les figures, les tableaux et la bibliographie correctement construits, gelez la procédure de construction dans le README ou .latexmkrc. Le déplacement d'un document de lualatex vers uplatex modifie à mi-chemin la sélection des polices, la gestion du japonais, l'itinéraire PDF et souvent le traitement de la bibliographie en même temps. Si vous changez, testez chaque fonctionnalité dans un petit échantillon avant de revenir au manuscrit complet.
Lorsque vous le gelez, enregistrez non seulement la commande mais également la première ligne du journal. Des lignes telles que This is LuaHBTeX ..., This is XeTeX ... ou This is e-upTeX ... révèlent le moteur réel et l'année TeX Live. En collaboration, lorsque « la même commande » donne un résultat différent, la comparaison d'une seule ligne sépare rapidement les problèmes de paramètres de l'éditeur de TeX Live ou les différences de format.