LuaTeX
Développé par |
Taco Hoekwater Hartmut Henkel Hans Hagen |
---|---|
Première version | |
Dernière version | 1.16.0 ()[1] |
Dépôt | gitlab.lisn.upsaclay.fr/texlive/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 | www.luatex.org |
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]).
Description
[modifier | modifier le code]Le paysage
[modifier | modifier le code]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 | modifier le code]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 | modifier le code]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 | modifier le code]- « Final sync with TeXLive 2023 -- LuaTeX 1.16.0 », (consulté le )
- (en) pdfTeX et LuaTeX.
- (en) Page d'accueil du projet MiKTeX.
Annexes
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]Bibliographie
[modifier | modifier le code]- (fr) Paul Isambert : LuaTeX, vue d'ensemble [PDF], 2010
- (en) Manuel Pégourié-Gonnard : A guide to LuaLaTeX [PDF],
- (en) LuaTeX development team : « LuaTeX Reference Manual »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?) [PDF],
Liens externes
[modifier | modifier le code]- (en) Site officiel