====== Qu'est-ce que LuaTeX? ======

''LuaTeX'' consiste en un moteur de type <latex>\TeX</latex> avec un interpréteur [[wpfr>Lua]] intégré.

Lua est un langage de script libre, conçu de manière à pouvoir être embarqué au sein d'autres applications afin d'étendre celles-ci.
Cette aptitude est utilisée dans LuaTeX: l'interpréteur Lua a accès à de nombreuses structures de données internes que le moteur TeX
utilise pour la composition du document, de sorte que le programmeur peut insérer des morceaux de code Lua dans des commandes <latex>\TeX</latex>
ou <latex>\LaTeX</latex>, tout comme il peut placer des «rappels» (//call-backs//) pour modifier le comportement de <latex>\TeX</latex>
lors de certaines opérations. Ceci le rend particulièrement souple.

Voici un exemple dans lequel du code Lua très simple est intégré à un document LaTeX, en argument de la macro ''\directlua'':

<WRAP column 40ex>
<code latex>
\documentclass{article}

\begin{document}
On sait compter:
\directlua{
  for x=1,12 do
    tex.print(x)
  end
}%
.
\end{document}
</code>
</WRAP>
<WRAP column 30ex>
<latexdoc>
\documentclass{article}
  \usepackage[width=8cm]{geometry}
  \pagestyle{empty}

\begin{document}
On sait compter:
\directlua{
  for x=1,12 do
    tex.print(x)
  end
}%
.
\end{document}
</latexdoc>
</WRAP>
<WRAP clear />

Le moteur standard [[https://www.latex-fr.net/1_generalites/glossaire/qu_est_ce_que_pdftex|pdfTeX]] est entièrement rétrocompatible avec <latex>\TeX</latex>.
En tant que tel, il reste un système 8 bits utilisant des [[https://www.latex-fr.net/5_fichiers/fontes/que_sont_les_fichiers_tfm|métriques de polices dédiées]].
En revanche, le moteur ''LuaTeX'' est basé sur Unicode et capable de charger des polices système standards (OpenType).

Contrairement à ''[[https://www.latex-fr.net/1_generalites/glossaire/qu_est_ce_que_xetex|XeTeX]]'', la capacité à utiliser des polices système standards
n'est pas intégrée au moteur lui-même mais ajoutée en utilisant du code Lua. Malgré cette différence de conception, LuaTeX et XeTeX
arrivent à des résultats similaires en ce qui concerne la gestion des polices (avec des avantages différents à la clef).

Bien qu'il existe des différences voulues entre le comportement de ''LuaTeX'', de  <latex>\TeX</latex>
ou ''[[https://www.latex-fr.net/1_generalites/glossaire/qu_est_ce_que_pdftex|pdfTeX]]'', pour la plupart des utilisateurs,
''LuaTeX'' peut être utilisé en remplacement des deux autres.
D'ailleurs, pour la plupart des utilisateurs finaux de <latex>\LaTeX</latex>, les subtilités sont transparentes,
le noyau <latex>\LaTeX</latex> et l'extension [[ctanpkg>fontspec|fontspec]] fournissant des interfaces.

Pour davantage de détails, voir le //[[https://github.com/jejust/lualatex-doc-fr|Guide touristique de LuaLaTeX]]// 
(en français), de Manuel Pégourié-Gonnard.


<note>
[[https://www.latex-fr.net/1_generalites/glossaire/qu_est_ce_que_context|ConTeXt]] Mark 4 //nécessite// ''LuaTeX''
mais c'est maintenant transparent pour l'utilisateur.
</note>

-----
//Sources://
  * [[faquk>FAQ-xetex-luatex|What are XeTeX and LuaTeX?]]
  * [[wpfr>LuaTeX]] sur Wikipedia,
  * [[http://wiki.luatex.org/|Wiki LuaTeX]] (en anglais).

{{htmlmetatags>metatag-keywords=(LaTeX,UTF8,Unicode,LuaTeX,LuaLaTeX,utiliser les polices systèmes,programmation en Lua,polices OpenType)
metatag-og:title=(Qu'est-ce que LuaTeX)
metatag-og:site_name=(FAQ LaTeX francophone)
}}