LuaTeX

logiciel informatique

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
Description de l'image LuaTeX logo.svg.
Description de l'image LuaTeX Output DE.svg.
Informations
Développé par Taco Hoekwater
Hartmut Henkel
Hans Hagen
Première version Voir et modifier les données sur Wikidata
Dernière version 1.16.0 ()[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.lisn.upsaclay.fr/texlive/luatexVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Type Unix et Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement Multiplate-forme
Type Paquet de macro TeX (d)Voir et modifier les données sur Wikidata
Licences GNU GPL
Site web www.luatex.orgVoir et modifier les données sur Wikidata

Description

modifier

Le paysage

modifier

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

modifier

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[french]{babel}

% Ou:
% \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

modifier

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

modifier
  1. « Final sync with TeXLive 2023 -- LuaTeX 1.16.0 », (consulté le )
  2. (en) pdfTeX et LuaTeX.
  3. (en) Page d'accueil du projet MiKTeX.

Annexes

modifier

Articles connexes

modifier

Bibliographie

modifier

Liens externes

modifier