Intégrer un LuaTeX récent à TeX Live
LuaTeX est une extension de TeX, activement développée, et destinée à (long) terme à remplacer pdfTeX (l’extension de TeX utilisée par toutes les distributions modernes pour compiler les documents LaTeX). Un des nouveautés de TeX Live 2008 est d’intégrer une version de LuaTeX (la beta 0.25.4). Cependant, pour le moment, il n’y a pas de mise à jour de LuaTeX entre deux versions annuelles de TeX Live. Ce billet explique comment intégrer une version plus récente de LuaTeX (la beta 0.35 est sortie hier) à sa TeX Live 2008, aussi bien sous windows que sous linux/unix, sans interférer avec le gestionnaire de paquets de TeX Live..
Avertissements préliminaires
- Mise à jour : une méthode plus pratique pour mettre à jour LuaTeX
consiste à utiliser le dépôt complémentaire tlcontrib avec
tlmgr
. La méthode ci-dessous conserve toutefois un intérêt historique ou pour les personnes désirant entretenir plusieurs versions de LuaTeX au sein d’une même installation TeX Live. - Pour les versions de LuaTeX supérieures ou égales à
0.39.0
, une étape supplémentaire est requise (à effectuer une seule fois), décrite dans le billet suivant. - Tout ceci concerne une version « nature » de TeX Live. Si vous utilisez les paquets TeX Live de Debian, des paquets pour LuaTeX existent (dans sid et testing) et fournissent des version relativement récentes de LuaTeX.
Le how-to et certaines explications
Pour une fois, c’est un peu plus qu’un « comment j’ai fait », puisqu’au moins une autre personne a testé. La première chose à faire est bien sûr de récupérer le binaire d’une version récente de LuaTeX. On en trouve pour Linux et Windows sur la page Gforge de LuaTeX, et pour d’autres plateformes, mais avec potentiellement un peu plus de délai, sur la page téléchagement de LuaTeX. (Attention, sur la page Gforge, l’ordre est trompeur et les version les plus récentes sont en bas de la page).
Il faut maintenant intégrer ce binaire à votre TeX Live. Si vous avez accepté les réglages par défaut lors de l’installation, vos binaires « normaux » de TeX Live sont sous
/usr/local/texlive/2008/bin/<arch>-linux
C:\Program Files\texlive\2008\bin\win32
selon que vous êtes sous Linux ou Windows. Nous allons placer les nouveaux
binaires dans un répertoire parallèle en remplaçant la dernière composante du
chemin ci-dessus par i386-linux-latest
ou win32-latest
par exemple. (Adaptez
au besoin.)
Cet emplacement n’est pas choisi au hasard : il y a dans TeX Live tout un tas de fichiers que TeX et ses variantes on besoin de localiser. Comme il est a priori possible d’installer TeX Live n’importe où sur le disque, il faut que les programmes aient un moyen de s’y retrouver. Le moyen retenu (sous TeX Live) est simple : le programme regarde où il se trouve sur le disque, et en déduit où se trouvent les autres fichiers. Il faut donc bien prendre garde de ne pas le placer n’importe où.
Il faut ensuite ajouter ce répertoire à son PATH
, avant le répertoire par
défaut de TeX Live. Je reviendrai là-dessus dans la partie spécifique au système
d’exploitation.
Il faut ensuite re-générer les formats. Si cette dernière phrase vous paraît
incongrue, un mot d’explication. Quand on utilise la commande latex
, il y a en
fait (essentiellement) deux fichiers en jeu : le programme pdftex
(ou
pdftex.exe
) et le « format » latex.fmt
. Ce dernier comprend des définitions
(comme par exemple celle de \documentclass
) sous une forme « pré-compilée » et
très rapide à charger. Les fichiers .fmt
utilisent un format binaire qui ne
peut pas être partagé entre différentes versions du programme sous-jacent. Je
répète donc : il faut ensuite re-générer les formats (en espérant que ça passe
mieux cette fois).
C’est très simple, en ligne de commande on fait
fmtutil-sys --byfmt luatex
fmtutil-sys --byfmt pdfluatex
fmtutil-sys --byfmt lualatex
fmtutil-sys --byfmt pdflualatex
(Muni des privilèges suffisants pour écrire dans les répertoire de TeX Live.
Pour un utilisateur d’Unix, ça peut impliquer l’usage de sudo
où su
.)
Bien, on a fait la moitié du travail pour pouvoir lancer une commande comme
pdflualatex
: créer un fichier pdflualatex.fmt
viable. L’autre moitié est de
faire comprendre à notre système d’exploitation que quand on lance la commande
pdflualatex
, c’est en fait notre nouveau programme luatex
(ou luatex.exe
)
qu’il faut utiliser. Cette partie dépend du système d’exploitation.
Sous Linux, Mac OS, ou autre variante d’Unix
C’est très simple, il suffit, dans notre répertoire ii386-linux-latest
(ou
autre) nouvellement créé, et qui ne contient que luatex
pour le moment, de
créer des liens symboliques vers celui-ci.
for l in pdfluatex lualatex pdflualatex texlua texluac; do
ln -s luatex $l; done
Hop, c’est tout. Vous avez remarqué texlua
et texluac
? C’est pour utiliser
LuaTeX comme un simple interpréteur Lua (resp. un compilateur de Lua en
bytecode). Utile si vous voulez pratiquer tranquillement Lua, ou écrire des
scripts portable à utiliser dans le contexte de TeX (par exemple, texdoc
est
un script interprété par texlua
depuis TeX Live 2008, ce qui lui permet de
fonctionner aussi sur windows, contrairement à la précédente implémentation sous
forme de script shell).
Maintenant, ça vous dérange peut-être d’avoir dans votre PATH
deux répertoires
rien que pour TeX Live. Moi ça me dérange en tout cas. Pas de problème, on fait
(par exemple)
for f in ../x86_64-linux/*; do ln -s $f; done
pour créer des liens symboliques de notre nouveau répertoire vers les fichiers
de l’ancien, et on peut ainsi ne garder que le nouveau dans le PATH
.
Attention, si lors de l’installation vous aviez choisi l’option « ajouter des
liens symboliques dans les répertoires standard », oubliez tout ce que j’ai dit
précédemment sur le PATH
. Placez simplement des liens symboliques vers
.../bin/<arch>-latest
en amont de /usr/local/bin
dans votre PATH
. En
principe, ~/bin
fait très bien l’affaire pour ça (enfin, peut-être pas sous OS
X). Il vous faut bien sûr créer des liens symboliques avec tous les noms
voulus. Par contre, il faut continuer à placer le binaire à l’endroit
indiqué (et pas par exemple directement dans votre ~/bin
, car c’est ce qui
compte pour qu’il trouve ensuite les fichiers de TeX Live.
Sous windows
Ici, on n’a pas de liens symboliques (quoi que… sous NTFS je crois que si,
mais je ne sais pas faire). Qu’à cela ne tienne, on va faire des copies. On
crée donc dans notre nouveau répertoire win32-latest
des copies de
luatex.exe
nommées pdfluatex.exe
, lualatex.exe
, pdflualatex.exe
,
texlua.exe
et texluac.exe
(voir ci-dessus pour l’utilité de ces deux
derniers).
Si vous souhaitez n’avoir qu’un seule répertoire TeX Live dans votre PATH
, le
plus simple est de commencer par recopier le précédent sous le nouveau nom, et
ensuite seulement de remplacer les fichiers dans la copie.
Dernières remarques
LuaTeX est vraiment en bêta. Ne l’utilisez qu’à des fins de test ou de
développement. Par ailleurs, une bonne raison pour en installer une version plus
récente que 0.25.4 est que cette dernière souffre d’un problème important. Elle
ne peut pas charger les fontes qui sont utilisée par défaut par LaTeX avec
usepackage[T1]{fontenc}
. (Pour l’anecdote, ce n’est pas à proprement parler un
bug de LuaTeX : c’est une anomalie dans les fichiers .tfm
de ces fontes, non
détectée par les variantes de TeX usuel. Dans un sens, LuaTeX avait « raison »
de ne pas les accepter, mais les version récentes préfèrent avoir tort et
fonctionner…)
Au passage, si vous voulez tester pdflualatex
, attention, suite à des progrès
importants réalisé par LuaTeX (par rapport à pdfTeX) en matière d’encodages
d’entrées et de fontes, inputenc
et fontenc
ne sont pas actuellement
compatibles avec LuaTeX. Il suffit de supprimer inputenc
et d’encoder son
fichier en utf-8 pour régler le premier point. Pour le deuxième, on peut quand
même utiliser fontenc
avec T1
en attendant, mais on aura des problèmes sur
certains caractères (tout ceux, heureusement rares, qui ne sont pas à la même
position dans latin1 et dans T1).
[...] un article précédent, j’expliquais comment installer une version récente de LuaTeX sur TeX Live. Suite à un changement depuis la version 0.39.0 de LuaTeX, un action supplémentaire (modification [...]
Le mpg-blog » LauTeX récent sur TeX Live 2008 (2)
20 avr 09 at 15:55 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
[...] incluse ne permettant pas de faire tourner Mark IV. On peut bien sûr mettre à jour LuaTeX comme je l’expliquais précédemment (noter que l’étape supplémentaire décrite ici n’est plus nécessaire), pour tester [...]
Le mpg-blog » TeX Live 2009 est sortie
9 nov 09 at 3:04 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>