Discussion:
Installation des modules lua pour travailler avec lualatex
(trop ancien pour répondre)
Alain Matthes
2012-04-12 16:31:16 UTC
Permalink
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/

J'ai fini par réussir à l'utiliser avec

\directlua{require('/usr/local/share/lua/5.1/BigNum')}

mais j'ai échoué avec
\directlua{package.path = ... }

Que faut-il régler pour que les modules soient trouvés ?
Ayant deux solutions de rechange, la situation n'est pas dramatique
mais ce n'est guère élégant come façon de fonctionner

Alain
Alain Ketterlin
2012-04-12 19:28:31 UTC
Permalink
Post by Alain Matthes
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/
J'ai fini par réussir à l'utiliser avec
\directlua{require('/usr/local/share/lua/5.1/BigNum')}
mais j'ai échoué avec
\directlua{package.path = ... }
Que faut-il régler pour que les modules soient trouvés ?
Il me semble me souvenir que LuaTeX utilise kpathsea pour trouver ses
modules (il y a un mot là-dessus dans la doc, mais désolé je n'ai pas
plus de détails).

-- Alain.
Manuel Pégourié-Gonnard
2012-04-12 22:05:49 UTC
Permalink
Post by Alain Ketterlin
Il me semble me souvenir que LuaTeX utilise kpathsea pour trouver ses
modules (il y a un mot là-dessus dans la doc, mais désolé je n'ai pas
plus de détails).
En fait, quand kpathsea est initialisé (ce qui est le cas en mode TeX,
sauf si on a utilisé l'option --lua=FILE) il utilise un chargeur de
modules combiné qui fait que les modules sont trouvé aux emplacements
habituels *et* dans les arborsecences texmf (plus précisément, les
parties de ces arboresences définies par la variable LUAINPUTS, cf
texmf.cnf).

Donc la théorie est que ça doit marcher en installant les modules dnas
les emplacements Lua classiques, heureusement car certains modules
peuvent servir à LuaTeX et à Lua tout court. La pratique est que
Ça-marche-chez-moi® en installant dans /usr/local/share/lua/5.1, ce qui
semble plutôt confirmer la théorie.

Bon, au pire installer le module dans le TEXMFHOME reste une option si
le reste échoue, mais ce qui serait nettement plus satisfaisant serait
de comprendre pourquoi les emplacements normaux ne marchent pas.
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
Manuel Pégourié-Gonnard
2012-04-12 23:49:18 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Alain Ketterlin
Il me semble me souvenir que LuaTeX utilise kpathsea pour trouver ses
modules (il y a un mot là-dessus dans la doc, mais désolé je n'ai pas
plus de détails).
En fait, quand kpathsea est initialisé (ce qui est le cas en mode TeX,
sauf si on a utilisé l'option --lua=FILE) il utilise un chargeur de
modules combiné qui fait que les modules sont trouvé aux emplacements
habituels *et* dans les arborsecences texmf (plus précisément, les
parties de ces arboresences définies par la variable LUAINPUTS, cf
texmf.cnf).
Au temps pour moi, j'avais fumé la moquette. Je devrais pourtant bien
connaître cette partie-là, ayant proposé un patch portant dessus, mais
visiblement ma mémoire me joue des tours. Désolé pour le bruit.
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
zappathustra
2012-04-13 05:35:33 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Manuel Pégourié-Gonnard
Post by Alain Ketterlin
Il me semble me souvenir que LuaTeX utilise kpathsea pour trouver ses
modules (il y a un mot là-dessus dans la doc, mais désolé je n'ai pas
plus de détails).
En fait, quand kpathsea est initialisé (ce qui est le cas en mode TeX,
sauf si on a utilisé l'option --lua=FILE) il utilise un chargeur de
modules combiné qui fait que les modules sont trouvé aux emplacements
habituels *et* dans les arborsecences texmf (plus précisément, les
parties de ces arboresences définies par la variable LUAINPUTS, cf
texmf.cnf).
Au temps pour moi, j'avais fumé la moquette. Je devrais pourtant bien
connaître cette partie-là, ayant proposé un patch portant dessus, mais
visiblement ma mémoire me joue des tours. Désolé pour le bruit.
Moi-personnellement-je, je serais pas contre que quelqu'un un jour,
n'est-ce pas Manu, écrive un truc assez détaillé pour TUGboat ou la wiki
ou ailleurs, sur la gestion des fichiers en général sous LuaTeX, depuis
le rôle de texmf.cnf jusqu'à l'initialisation de kpathsea en passant par
les divers callbacks concernés et les particularités de require() en
LuaTeX, etc. Ça doit être la partie de LuaTeX qui est la plus obscure
pour moi tout étant d'une utilité telle que je ne peux pas m'en
tamponner le coquillard; et pour une raison que j'ignore, je n'ai
jamais eu envie d'explorer le sujet.

Moijdissajdirien. Voilà voilà. Hum.

Paul
Manuel Pégourié-Gonnard
2012-04-13 16:02:41 UTC
Permalink
Post by zappathustra
Moi-personnellement-je, je serais pas contre que quelqu'un un jour,
n'est-ce pas Manu, écrive un truc assez détaillé pour TUGboat ou la wiki
ou ailleurs, sur la gestion des fichiers en général sous LuaTeX, depuis
le rôle de texmf.cnf jusqu'à l'initialisation de kpathsea en passant par
les divers callbacks concernés et les particularités de require() en
LuaTeX, etc. Ça doit être la partie de LuaTeX qui est la plus obscure
pour moi tout étant d'une utilité telle que je ne peux pas m'en
tamponner le coquillard; et pour une raison que j'ignore, je n'ai
jamais eu envie d'explorer le sujet.
Moijdissajdirien. Voilà voilà. Hum.
Bah puisque tu dis rien, je pense que personne n'entends rien ;)
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
zappathustra
2012-04-15 05:39:49 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by zappathustra
Moi-personnellement-je, je serais pas contre que quelqu'un un jour,
n'est-ce pas Manu, écrive un truc assez détaillé pour TUGboat ou la wiki
ou ailleurs, sur la gestion des fichiers en général sous LuaTeX, depuis
le rôle de texmf.cnf jusqu'à l'initialisation de kpathsea en passant par
les divers callbacks concernés et les particularités de require() en
LuaTeX, etc. Ça doit être la partie de LuaTeX qui est la plus obscure
pour moi tout étant d'une utilité telle que je ne peux pas m'en
tamponner le coquillard; et pour une raison que j'ignore, je n'ai
jamais eu envie d'explorer le sujet.
Moijdissajdirien. Voilà voilà. Hum.
Bah puisque tu dis rien, je pense que personne n'entends rien ;)
Bon, alors, je n'attends pas avec impatience. Ni ne me pourlèche les
babines. Que dalle. Le mec sans espoir.

Paul, Grand Maître ès Messages Inutiles

Manuel Pégourié-Gonnard
2012-04-12 21:59:08 UTC
Permalink
Post by Alain Matthes
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/
J'ai fini par réussir à l'utiliser avec
\directlua{require('/usr/local/share/lua/5.1/BigNum')}
Juste pour être clair : ça ne marche pas avec require('BigNum') ? Quel
est le message d'erreur ?
Post by Alain Matthes
mais j'ai échoué avec
\directlua{package.path = ... }
Euh, je ne comprends pas ce que tu essayais de faire, là, tu peux préciser ?

Dans un autre message, tu disais qu'en affichant package.path dans le log ça
donnait

./?.lua;
/usr/local/share/lua/5.1/?.lua;
/usr/local/share/lua/5.1/?/init.lua;
/usr/local/lib/lua/5.1/?.lua;
/usr/local/lib/lua/5.1/?/init.lua )

Est-ce toi qui rajoutes les retours à la ligne où est-ce qu'ils y sont
vraiment ?
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
Manuel Pégourié-Gonnard
2012-04-12 22:12:27 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/
J'ai fini par réussir à l'utiliser avec
\directlua{require('/usr/local/share/lua/5.1/BigNum')}
Juste pour être clair : ça ne marche pas avec require('BigNum') ? Quel
est le message d'erreur ?
Au fait, si tu crées un fichier contenant juste

require 'BigNum'

et que tu l'exécutes avec lua (celui que tu as installé indépendamment
de luatex), ça marche ? Si tu l'exécutes avec texlua ? Dans les deux
cas, si ça ne marche pas, quel est le message d'erreur complet ?
Post by Manuel Pégourié-Gonnard
Dans un autre message, tu disais qu'en affichant package.path dans le log ça
donnait
./?.lua;
/usr/local/share/lua/5.1/?.lua;
/usr/local/share/lua/5.1/?/init.lua;
/usr/local/lib/lua/5.1/?.lua;
/usr/local/lib/lua/5.1/?/init.lua )
Est-ce toi qui rajoutes les retours à la ligne où est-ce qu'ils y sont
vraiment ?
Dans la même veine, est-ce que tu peux créer un fichier contenant juste

print(package.path)

et l'exécuter avec lua puis texlua, et copier-coller les sorties des
deux cas ici ?
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
Alain Matthes
2012-04-12 22:43:27 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/
J'ai fini par réussir à l'utiliser avec
\directlua{require('/usr/local/share/lua/5.1/BigNum')
Juste pour être clair : ça ne marche pas avec require('BigNum') ? Quel
est le message d'erreur ?
Au fait, si tu crées un fichier contenant juste
require 'BigNum'
et que tu l'exécutes avec lua (celui que tu as installé indépendamment
de luatex), ça marche ?
oui il le trouve
Post by Manuel Pégourié-Gonnard
Si tu l'exécutes avec texlua ? Dans les deux
cas, si ça ne marche pas, quel est le message d'erreur complet ?
This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277)
restricted \write18 enabled.
(./path_lua.tex
LaTeX2e <2011/06/27>
LuaTeX adaptation of babel <v3.8l-luatex-1.4> and hyphenation patterns for engl
ish, dumylang, nohyphenation, loaded.
./path_lua.tex:1: LuaTeX error <\directlua >:1: module 'BigNum' not found:
no field package.preload['BigNum']
[kpse lua searcher] file not found: 'BigNum'
[kpse C searcher] file not found: 'BigNum'
stack traceback:
[C]: in function 'require'
<\directlua >:1: in main chunk.
l.1 \directlua{require 'BigNum'}
Post by Manuel Pégourié-Gonnard
Post by Manuel Pégourié-Gonnard
Dans un autre message, tu disais qu'en affichant package.path dans le log ça
donnait
./?.lua;
/usr/local/share/lua/5.1/?.lua;
/usr/local/share/lua/5.1/?/init.lua;
/usr/local/lib/lua/5.1/?.lua;
/usr/local/lib/lua/5.1/?/init.lua )
Est-ce toi qui rajoutes les retours à la ligne où est-ce qu'ils y sont
vraiment ?
Dans la même veine, est-ce que tu peux créer un fichier contenant juste
print(package.path)
et l'exécuter avec lua
mundus:~ ego$ lua
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio
Post by Manuel Pégourié-Gonnard
print(package.path)
./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua
Post by Manuel Pégourié-Gonnard
puis texlua, et copier-coller les sorties des
deux cas ici ?
This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277)
restricted \write18 enabled.
(./path_lua.tex
LaTeX2e <2011/06/27>
LuaTeX adaptation of babel <v3.8l-luatex-1.4> and hyphenation patterns for engl
ish, dumylang, nohyphenation, loaded.
./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua

)
215 words of node memory still in use:
1 hlist, 1 vlist, 2 glue, 32 glue_spec, 1 write nodes
avail lists: 2:12,3:1,6:2,9:1
No pages of output.
Transcript written on path_lua.log.

Voilà

Alain
Manuel Pégourié-Gonnard
2012-04-12 23:47:43 UTC
Permalink
Post by Alain Matthes
Post by Manuel Pégourié-Gonnard
et que tu l'exécutes avec lua (celui que tu as installé indépendamment
de luatex), ça marche ?
oui il le trouve
Ok.
Post by Alain Matthes
Post by Manuel Pégourié-Gonnard
Si tu l'exécutes avec texlua ? Dans les deux
cas, si ça ne marche pas, quel est le message d'erreur complet ?
This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277)
Je voulais vraiment dire 'texlua' et pas 'luatex', mais c'est pas grave.

Entre-temps j'ai réalisé mon erreur : quand j'ai testé chez moi, ça
marchait parce qu'une copie de BigNum.lua traînait par mégarde dans le
répertoire courant. Bref, j'ai pu retester et réaliser que la réponse
que j'ai donné à Alain K. était totalement erronée : en effet, quand
kpathsea est actif, la méthode normale de chargement des modules Lua est
désactivée, conformément à ce qui est indiqué dans la doc et en totale
contradiction avec mes souvenirs.

Donc, la solution donnée par Alain K. est la bonne : il faut installer
le module dans une arborescence texmf. Si tu veux pouvoir l'utiliser
aussi depuis des scripts Lua normaux, ce que je te conseille pour ne pas
avoir à l'installer en double, c'est de l'installer normalement dans
/usr/local/share/lua/5.1 et de créer un lien vers ce dernier répertoire
depuis TEXMFHOME/scripts/lua (TEXMFHOME étant ~/Library/texmf chez toi
il me semble).
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
Alain Matthes
2012-04-12 22:20:39 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
Je précise ma préceédente question : j'ai bien mon module BigNum.lua.
Après avoir mis le module dans le dossier contenant le fichier maître et
vue que cela fonctionnait, j'ai essayé de le mettre dans
/usr/local/share/lua/5.1/
J'ai fini par réussir à l'utiliser avec
\directlua{require('/usr/local/share/lua/5.1/BigNum')}
Juste pour être clair : ça ne marche pas avec require('BigNum') ? Quel
est le message d'erreur ?
non le message est toujous le même
Post by Manuel Pégourié-Gonnard
Latex Error: ./big.tex:19 LuaTeX error <\directlua >:1: module 'BigNum'
Post by Alain Matthes
mais j'ai échoué avec
\directlua{package.path = ... }
Euh, je ne comprends pas ce que tu essayais de faire, là, tu peux préciser ?
Sur le net j'ai trouvé un code et j'ai cru comprendre que
`package.path`servait à définir
un chemin. Apparement ce n'est pas le cas !
Post by Manuel Pégourié-Gonnard
Dans un autre message, tu disais qu'en affichant package.path dans le log ça
donnait
./?.lua;
/usr/local/share/lua/5.1/?.lua;
/usr/local/share/lua/5.1/?/init.lua;
/usr/local/lib/lua/5.1/?.lua;
/usr/local/lib/lua/5.1/?/init.lua )
Est-ce toi qui rajoutes les retours à la ligne où est-ce qu'ils y sont
vraiment ?
non le vrai log est

This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277)
restricted \write18 enabled.
(./path_lua.tex
LaTeX2e <2011/06/27>
LuaTeX adaptation of babel <v3.8l-luatex-1.4> and hyphenation patterns for engl
ish, dumylang, nohyphenation, loaded.
./?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;/usr
/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua )
215 words of node memory still in use:
1 hlist, 1 vlist, 2 glue, 32 glue_spec, 1 write nodes
avail lists: 2:12,3:1,6:2,9:1
No pages of output.
Transcript written on path_lua.log.

Alain
Manuel Pégourié-Gonnard
2012-04-12 23:38:23 UTC
Permalink
Post by Alain Matthes
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
mais j'ai échoué avec
\directlua{package.path = ... }
Euh, je ne comprends pas ce que tu essayais de faire, là, tu peux préciser ?
Sur le net j'ai trouvé un code et j'ai cru comprendre que
`package.path`servait à définir
un chemin. Apparement ce n'est pas le cas !
Si, c'est le cas, mais le chemin défini par défaut a déjà l'air correct.
Le problème est qu'il n'est pas utilisé.
--
Manuel Pégourié-Gonnard - http://people.math.jussieu.fr/~mpg/
Alain Matthes
2012-04-13 07:10:57 UTC
Permalink
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
Post by Manuel Pégourié-Gonnard
Post by Alain Matthes
mais j'ai échoué avec
\directlua{package.path = ... }
Euh, je ne comprends pas ce que tu essayais de faire, là, tu peux préciser ?
Sur le net j'ai trouvé un code et j'ai cru comprendre que
`package.path`servait à définir
un chemin. Apparement ce n'est pas le cas !
Si, c'est le cas, mais le chemin défini par défaut a déjà l'air correct.
Le problème est qu'il n'est pas utilisé.
Merci à tous vos réponses.

Alain
Loading...