\engines{comparison}

LuaLaTeX ou pdfLaTeX

Les deux moteurs produisent des PDF de haute qualité, mais LuaLaTeX ajoute un environnement d'exécution Lua complet et un chargement de polices moderne, au prix de la vitesse. Ce guide couvre toutes les différences significatives pour que vous choisissiez le bon moteur pour chaque document.

pdfLaTeX— rapide et universelLuaLaTeX— scripts Lua et polices modernes
Utilisez pdfLaTeX quand…
  • La vitesse compte : c'est le moteur le plus rapide
  • Compatibilité maximale avec les paquets requise
  • Documents standard en texte latin
  • Crénage et protrusion microtype nécessaires
Utilisez LuaLaTeX quand…
  • Scripts Lua pour la génération de contenu dynamique
  • Chargement de polices moderne avec fontspec
  • Texte Unicode au-delà du latin de base
  • Composition algorithmique complexe

\section{Différences techniques}

Différences techniques

Comprendre l'architecture sous-jacente vous aide à prévoir le comportement lorsque des paquets interagissent, que des polices sont chargées ou que des scripts s'exécutent.

Capacité de scripts Lua

LuaLaTeX intègre un interpréteur Lua 5.3 complet. Vous pouvez écrire du code procédural, boucler sur des données, appeler tex.print() et manipuler le moteur de composition par programmation. pdfLaTeX n'a pas de couche de scripts de ce type.

Chargement des polices

LuaLaTeX utilise fontspec pour charger n'importe quelle police OpenType ou système par son nom, sans configuration manuelle de .tfm. pdfLaTeX s'appuie sur le système de polices TeX et nécessite inputenc + fontenc pour un encodage correct.

Prise en charge de l'Unicode

LuaLaTeX lit l'UTF-8 nativement au niveau du moteur. pdfLaTeX approxime l'Unicode via le paquet inputenc, qui couvre la plupart des écritures latines mais exige des contournements pour le CJK, l'arabe ou les symboles mathématiques avancés.

Vitesse de compilation

pdfLaTeX est le moteur LaTeX le plus rapide : généralement 0.6 à 1 seconde pour un document simple. LuaLaTeX initialise la VM Lua et un système de polices plus volumineux, ce qui le rend en moyenne 2 à 3 fois plus lent. Pour les pipelines CI ou l'aperçu en direct, cette différence est significative.

\section{Comparaison des fonctionnalités}

Comparaison des fonctionnalités

FonctionnalitépdfLaTeXLuaLaTeX
Entrée Unicode
Via inputenc
Native
Polices système
Non
Oui (fontspec)
Scripts Lua
Non
Oui (luacode)
Vitesse de compilation
Rapide (~0.8s)
Plus lent (~2–3×)
Compat. des paquets
Excellente
Bonne
Microtype
Prise en charge complète
Partielle
Langues RTL
Limitée
Oui (luabidi)
Utilisation de la mémoire
Faible
Plus élevée (VM Lua)

\section{Exemples de code}

Exemples de code

Documents minimaux côte à côte pour chaque moteur.

pdfLaTeX
% pdfLaTeX — fast, maximum compatibility
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype}

\begin{document}
Standard pdfLaTeX document. Fast compilation, excellent package support.
$f(x) = \int_0^x t^2\, dt = \frac{x^3}{3}$
\end{document}
LuaLaTeX
% LuaLaTeX — Lua scripting, modern fonts
\documentclass{article}
\usepackage{fontspec}
\usepackage{luacode}

% Lua scripting inside LaTeX
\begin{luacode}
  local n = 10
  local sum = 0
  for i = 1, n do sum = sum + i end
  tex.print("Sum 1.." .. n .. " = " .. sum)
\end{luacode}

\begin{document}
LuaLaTeX natively handles Unicode and supports Lua scripts.
\end{document}

\section{Quand utiliser LuaLaTeX}

Quand utiliser LuaLaTeX

LuaLaTeX est le bon choix dans ces scénarios précis.

Génération de contenu dynamique

Utilisez des boucles et des conditions Lua pour générer par programmation, dans LaTeX, des lignes de tableau répétitives, des listes de chapitres ou des sorties structurées.

Rendu de polices personnalisées

Chargez n'importe quelle police OpenType ou système par son nom avec fontspec : idéal pour les rapports de marque, la typographie personnalisée ou les écritures non latines.

Algorithmes complexes

Intégrez du code Lua de calcul directement dans votre document : statistiques, transformations ou mise en forme de données avant la composition.

Soumissions arXiv modernes

Certains modèles de revues récents et soumissions arXiv exigent ou privilégient explicitement LuaLaTeX pour la gestion moderne des polices et de l'Unicode.

\section{Guide de migration}

Migrer de pdfLaTeX vers LuaLaTeX

La plupart des documents pdfLaTeX se compilent avec LuaLaTeX moyennant quelques changements dans le préambule.

ActionPaquet / commande
Supprimer\usepackage[utf8]{inputenc}
Supprimer\usepackage[T1]{fontenc}
Ajouter\usepackage{fontspec}
Facultatif\usepackage{luacode}
À envisager\usepackage{polyglossia}

\api{FormaTeX}

Utiliser LuaLaTeX via l'API

Passez "engine": "lualatex" dans votre requête de compilation pour sélectionner LuaLaTeX.

curl -X POST https://api.formatex.io/api/v1/compile \
  -H "X-API-Key: $FORMATEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "engine": "lualatex",
    "latex": "\\documentclass{article}\\usepackage{fontspec}\\begin{document}Hello\\end{document}"
  }' \
  --output document.pdf

\begin{document}

Compilez LuaLaTeX dans le cloud

FormaTeX prend en charge pdfLaTeX, LuaLaTeX et XeLaTeX. Aucune installation locale de TeX Live requise : compilez via l'API ou le playground dans le navigateur.