\compare{xelatex-vs-lualatex}
XeLaTeX vs LuaLaTeX
Les deux moteurs gèrent Unicode nativement et chargent les polices système via fontspec. La vraie différence tient au moteur de script Lua intégré à LuaLaTeX et à son pipeline de mise en forme du texte supérieur. Ce guide couvre toutes les distinctions utiles.
- La vitesse de compilation est une priorité
- Vous avez besoin de polices système avec fonctionnalités OpenType
- Écritures RTL (arabe, hébreu) avec le paquet bidi
- Vous n'avez pas besoin des scripts Lua à la compilation
- Vous avez besoin de scripts Lua dans votre document
- Une mise en forme avancée du texte (HarfBuzz) est requise
- Génération de tableaux dynamiques ou de contenu calculé
- Vous avez besoin des fonctionnalités de luacolor ou luatextra
\section{Différences techniques}
Ce qui diffère réellement en coulisses
Moteur de script Lua
XeLaTeX
XeLaTeX n'a pas de langage de script intégré. La logique du document doit être exprimée entièrement avec des macros ou des paquets TeX. C'est suffisant pour presque toutes les tâches de composition, mais cela limite la génération de contenu dynamique à la compilation.
LuaLaTeX
LuaLaTeX intègre un interpréteur Lua 5.3 complet, accessible depuis votre document via luacode. Vous pouvez calculer des valeurs, parcourir des données, appeler des bibliothèques Lua externes et réinjecter les résultats dans le flux de composition TeX à la compilation.
Mise en forme du texte et écritures complexes
XeLaTeX
XeLaTeX utilise les bibliothèques de mise en forme du texte ICU et SIL via le moteur XeTeX. Les écritures complexes (arabe, devanagari, thaï) sont prises en charge grâce aux paquets bidi et polyglossia. En pratique, cela couvre la plupart des besoins de composition multilingue.
LuaLaTeX
LuaLaTeX intègre HarfBuzz (via LuaHarfBuzz), le même moteur de mise en forme que celui des navigateurs, d'Android et de macOS. HarfBuzz couvre davantage d'écritures et applique plus précisément les fonctionnalités OpenType, ce qui en fait le meilleur choix pour les documents aux écritures complexes ou nécessitant des substitutions de glyphes avancées.
Vitesse de compilation
XeLaTeX est systématiquement plus rapide que LuaLaTeX. La différence vient du surcoût d'initialisation de la machine virtuelle Lua de LuaLaTeX et du pipeline de mise en forme HarfBuzz. Sur des documents simples, l'écart est faible ; sur de gros documents riches en polices, LuaLaTeX peut être 30 à 50 % plus lent.
XeLaTeX
~1.5s
document typique en une seule passe
LuaLaTeX
~2.0s
document typique en une seule passe
Compatibilité des paquets
XeLaTeX
La plupart des paquets CTAN qui fonctionnent avec pdfLaTeX fonctionnent aussi avec XeLaTeX, à l'exception des paquets de bas niveau propres à pdfLaTeX. Les paquets fontspec et unicode-math y sont des citoyens de premier rang.
LuaLaTeX
LuaLaTeX offre la même prise en charge des paquets que XeLaTeX, plus l'accès à l'écosystème Lua. Des paquets comme luacode, luacolor et luatextra sont exclusifs à LuaLaTeX.
\subsection{Matrice des fonctionnalités}
Comparaison côte à côte
\section{Recommendations}
Quel moteur pour quel type de document ?
Le bon moteur dépend de vos besoins précis, et non d'un classement universel.
Article académique (texte latin)
XeLaTeXCompilation plus rapide, excellente prise en charge de fontspec et unicode-math complet pour les polices mathématiques modernes.
Rapport multilingue (écritures complexes)
LuaLaTeXLa mise en forme HarfBuzz gère l'arabe, le devanagari et le thaï avec plus de précision que le moteur ICU de XeLaTeX.
Génération automatisée de rapports
LuaLaTeXLes scripts Lua permettent de parcourir des données et de générer des tableaux ou des sections à la compilation, sans prétraitement externe.
Thèse / mémoire
XeLaTeXItération plus rapide pendant la rédaction, large prise en charge des modèles, et fontspec couvre tous les besoins typiques en polices.
Livre ou document long
LuaLaTeXLes callbacks Lua permettent une personnalisation micro-typographique au-delà de ce que permettent les macros TeX. HarfBuzz améliore la qualité des glyphes pour les polices personnalisées.
CV
XeLaTeXDocument court, compilation rapide, et fontspec gère toutes les polices de marque personnalisées dont vous pourriez avoir besoin.
\begin{examples}
Exemples minimaux fonctionnels
Les deux exemples se compilent avec FormaTeX. Essayez-les directement dans le playground.
% XeLaTeX — Unicode native, system fonts via fontspec
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\setmathfont{XITS Math}
\begin{document}
XeLaTeX handles Unicode natively: α β γ — no inputenc needed.
Arabic: \textarabic{مرحبا} \quad Greek: Αλφαβητικό
$\int_0^\infty e^{-x^2}\, dx = \frac{\sqrt{\pi}}{2}$
\end{document}% LuaLaTeX — Lua scripting + modern font loading
\documentclass{article}
\usepackage{fontspec}
\usepackage{luacode}
\setmainfont{Linux Libertine O}
% Generate content with Lua at compile time
\begin{luacode*}
local items = {"Introduction", "Methods", "Results", "Discussion"}
for i, v in ipairs(items) do
tex.print(i .. ". " .. v .. "\\\\")
end
\end{luacode*}
\begin{document}
LuaLaTeX: Unicode + Lua scripting in a single engine.
$f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n$
\end{document}\section{FAQ}
Questions fréquentes
Compilez avec le moteur de votre choix
FormaTeX exécute XeLaTeX, LuaLaTeX, pdfLaTeX et latexmk. Changez de moteur en modifiant un seul champ de l'API, sans infrastructure à gérer.

