LuaTeX récent sur TeX Live, compléments
Dans 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 des fichiers d’initialisation)
est requise. Celle-ci doit être effectuée une fois pour toute pour permettre
d’utiliser une version supérieure à 0.39.0
, contrairement aux étapes décrites
précédemment qui sont à refaire pour chaque installation d’une nouvelle
version. (Mise à jour : cette manipulation n’est plus nécessaire depuis
TeX Live 2009.)
Le comment
Vu que l’installation des binaires se fait forcément dans l’arborescence
principale de TeX Live, toutes les explications qui suivent supposent que vous
installez les fichiers d’initialisation dans TEXMFLOCAL
, car je ne vois pas de
raison d’utiliser plutôt TEXMFHOME
. Pour connaître la valeur de TEXMFLOCAL
,
utilisez la commande suivante.
kpsewhich --var-value TEXMFLOCAL
Par ailleurs, je suppose que vous avez les privilèges suffisants pour effectuer
toutes les opérations décrites. Il est conseillé d’installer TeX Live en tant
que simple utilisateur (surtout si vous comptez la bidouiller beaucoup, comme
c’est l’objet de ces billets), mais si vous ne l’avez pas fait, n’hésitez pas à
utiliser sudo
ou su
sous Unix, ou « ouvrir une ligne de commande en tant
qu’administrateur » sous Windows au besoin.
Dans TEXMFLOCAL/tex/generic/config
, créez un fichier nommé
luatexiniconfig.tex
ayant le contenu suivant.
\begingroup
\catcode `\{=1
\catcode `\}=2
\expandafter\ifx\csname luatexversion\endcsname\relax
\let\luatexversion\undefined
\directlua{tex.enableprimitives('', tex.extraprimitives())}
\fi
\endgroup
Ensuite, trouvez l’arborescence TEXMFDIST
(utilisez kpsewhich --var-value
au besoin), et copiez de cette arborescence vers TEXMFLOCAL
les fichiers
suivants.
tex/plain/config/luatex.ini
tex/plain/config/pdfluatex.ini
tex/latex/latexconfig/lualatex.ini
tex/latex/latexconfig/pdflualatex.ini
Éditez ensuite la copie présente dans TEXMFLOCAL
de chacun de ces fichiers,
pour ajouter au tout début (juste après les commentaires initiaux) la ligne
\input luatexiniconfig
Il faut maintenant mettre à jour la base de données des fichiers de TeX. Vu
que tous les fichiers créés sont dans TEXMFLOCAL
, il suffit de se placer dans
ce répertoire et de taper
mktexlsr .
Tout ceci est à effectuer une fois avant d’installer une version supérieure ou
égale à 0.39.0
de LuaTeX, par la méthode donnée dans le billet précédent.
Le pourquoi du comment
Sans la manipulation décrite ci-dessus, vous aurez une erreur au moment de
re-générer les formats (l’étape fmtutil-sys
). En effet, les fichiers
d’initialisation des formats supposent qu’un certain nombre de primitives
fournies par e-TeX ou pdfTeX existent, ce qui est bien naturel vu qu’il sont
destinés à un moteur précis.
Or, depuis la version 0.39.0
, LuaTeX (en mode INI, c’est-à-dire sans format
pré-chargé) démarre avec exactement les même primitives que TeX82, sauf
\directlua
en plus. Si on veut accéder aux nouvelles primitives, il faut
explicitement demander leur activation avec la fonction Lua
tex.enableprimitives()
. Ceci présente deux avantages :
- si dans un futur distant on veut réellement remplacer pdfTeX par LuaTeX, on
peut (en utilisant le deuxième argument de
tex.enableprimitives()
) n’activer que les primitives pdfTeX dans ce mode-là. - en activant les primitives, on peut si on veut (premier argument de
tex.enableprimitives()
) leur ajouter un préfixe (par exemple\LuaTeXprimitive
au lieu de\primitive
) pour éviter les conflits de noms avec des macros déjà utilisés dans différents paquets.
Pour plus de détails, voir les parties 2.1 et 4.1.14 d’un version récente du manuel LuaTeX.
[...] à 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 Mark IV. Mais si l’on envisage d’utiliser [...]
Le mpg-blog » TeX Live 2009 est sortie
9 nov 09 at 2:59 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>