LuaTeX

LuaTeX est un système de composition informatique utilisant le langage de script Lua. Il a été choisi pour remplacer pdfTeX[2] ; pour cette raison, pdfTeX n'est plus développé. La version 2.9 de MiKTeX inclut LuaTeX pour la première fois (version 0.60.2[3]).

LuaTeX
Informations
Développé par Taco Hoekwater
Hartmut Henkel
Hans Hagen
Première version
Dernière version 1.13.1 ()[1]
Dépôt serveur-svn.lri.fr/svn/modhel/luatex
Écrit en C
Système d'exploitation Type Unix et Microsoft Windows
Environnement Multiplate-forme
Type Paquet de macro TeX (d)
Licences GNU GPL
Site web luatex.org

Description

Le paysage

Il existe actuellement trois moteurs de composition dans le monde de TeX : pdfTeX, XeTeX et LuaTeX.

Le moteur pdfTeX est une extension stable de TeX. Il permet de générer directement un fichier PDF, avec les fonctionnalités avancées du format PDF. Il est rapide et robuste. Cependant, sa gestion des fontes OpenType demeure très limitée.

XeTeX, lui, supporte l'encodage Unicode, de même que les fontes OpenType (à l’aide de bibliothèques externes). Ce moteur s'intègre très bien dans l'infrastructure des distributions TeX et supporte les extensions (packages) de macros facilement, puisqu'il n'y pas de changements fondamentaux concernant l'interface et les fonctionnalités.

De son côté, LuaTeX présente une approche différente. Grâce à l’inclusion du langage de script Lua, il se passe de bibliothèque externe, ce qui assure son indépendance et permet une grande flexibilité. L'utilisation de Lua offre un confort de développement impressionnant et permet d'ouvrir le champ des possibles. Grâce à Lua, le moteur de composition est « ouvert », et il existe des callbacks qui permettent d'obtenir des résultats divers.

Cependant, cela a un prix. Premièrement, LuaTeX n'est pas aussi rapide que ses cousins. Ensuite, l'utilisation de LuaTeX nécessite une utilisation assez « bas niveau » si on veut en tirer tout le potentiel. L'addition de scripts Lua est très intéressante, mais la puissance de LuaTeX ne se révèle vraiment que lorsque ceux-ci sont pleinement intégrés.

Exemple de document

Voici un exemple en LuaLaTeX : à gauche le code source, qui peut être produit avec n’importe quel éditeur de texte ; à droite la sortie correspondante, indépendante du type d’écran ou d’imprimante sur lequel elle est générée.

Code source d’un document en LuaLaTeX Document compilé
%% Ce code source doit être enregistré en UTF-8 et
%% compilé avec lualatex.

\documentclass[a4paper]{scrartcl}

\usepackage{polyglossia}
\setdefaultlanguage{french}

\usepackage{fontspec}
\usepackage{unicode-math}
\usepackage{luacode}

\setromanfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont{Inconsolata}[Scale=0.9]
\setmathfont{Latin Modern Roman}

\title{Document test}
\author{Boris Godounov}
\date{29 février 2020}

\begin{document}

\maketitle
\tableofcontents

\section{Polices de caractères}
À la différence de \TeX{} ou de pdf\TeX{}, Lua\TeX{} permet d’utiliser
les polices installées sur le système d’exploitation comme ici
Linux Libertine (police de labeur), Linux Biolinum (titres),
Inconsolata (police à chasse fixe)  et Latin Modern (pour
les mathématiques).

\section{Formules}
Même si l’on n’a pas besoin d’écrire de formules, Lua\TeX{} se révèle très
utile et simple d’utilisation : graphiques, tableaux, références croisées
de toutes sortes, bibliographie ou index ne posent aucun problème.

L’écriture de formules requiert un peu plus de travail, mais voici un exemple
simple :

\begin{displaymath}
    E = \frac{m_{0} c^{2}}{\sqrt{1-v^{2}/c^{2}}}
\end{displaymath}

\section{Programmation en Lua}
Lua\TeX{} est en outre capable d’exécuter du code Lua depuis le fichier
source en Lua\LaTeX{} ou Con\TeX{}t. Par exemple, \texttt{directlua}
permet de générer le nombre aléatoire \directlua{tex.print(math.random())}.
Il~n’est pas non plus nécessaire de se rappeler la valeur du nombre $π$ :
\directlua{tex.print(math.pi)}.

En recourant à l’environnement \texttt{luacode}, vous pouvez même compter,
comme ici jusqu’à soixante :
\begin{luacode}
  for x=1,60 do
    tex.print(x)
  end
\end{luacode}
.

Ici se termine le document de test.

\end{document}

Versions

La distribution TeX Live 2019 contient la version 1.10 de LuaTeX.

La version 0.0 a été présentée lors de la conférence du TeX User Group (TUG) en 2005 à Wuhan en Chine.

Notes et références

Annexes

Articles connexes

Bibliographie

Liens externes

  • Portail des logiciels libres
  • Portail de l’informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.