Appel en Lua

Librairie C++ de calcul formel/ C++ symbolic computation library

Modérateur : xcasadmin

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

Appel en Lua

Message par cdeval » ven. mai 16, 2014 7:03 pm

Bonsoir Bernard,
Je regarde ce qui est faisable via LuaLaTeX pour appeler giac.
Il existe la fonction os.execute qui me permet d'appeler giac sans problème avec une commande derrière.
N'y a-t-il pas d'autre façon de récupérer la réponse que de passer par un fichier, comme le fait professor.sty ?
Dernière modification par cdeval le ven. mai 16, 2014 9:42 pm, modifié 1 fois.

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

Re: Appel en Lua

Message par cdeval » ven. mai 16, 2014 9:41 pm

Un premier jet qui fonctionne pour appeler une commande Giac en LuaTeX :
1) Mettre ce code dans un fichier (pour moi il s'appelle CmathLuaTeX.lua) :

Code : Tout sélectionner

function Giac(formule)
prg="Sortie:=fopen(\"giac.out\");Resultat:=cat(latex("..formule.."));fprint(Sortie,Unquoted,Resultat);fclose(Sortie);"
os.execute("giac ".. "'"..prg.."'")
io.input("giac.out")
t=io.read("*all")
tex.print(t)
end
2) Écrire un document tex utilisant ce fichier :

Code : Tout sélectionner

\directlua{dofile('CmathLuaTeX.lua')}
\newcommand\Giac[1]{\directlua{Giac('#1')}}
\begin{document}
Giac dans \LuaTeX :

evalf(pi,30) : $\Giac{evalf(pi,30)}$
\end{document}
3) Compiler avec LuaLaTeX
4) Résultat (tiens, il manque des chiffres ! [edit : j'avais oublié de compiler avec -shell-escape. Je récupérais un giac.out d'un précédent appel. C'est Ok avec -shell-escape]) :
Sélection_007.jpeg
Sélection_007.jpeg (10.87 Kio) Consulté 3832 fois

parisse
Messages : 5740
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: Appel en Lua

Message par parisse » lun. mai 19, 2014 9:16 am

Je ne sais pas si on peut capturer la sortie (stdout) directement, mais de toutes facons ca ne doit rien changer du point de vue efficacite, puisqu'on travaille avec des chaines de toutes facons. Il faudrait pouvoir linker la lib dynamique dans lua pour etre plus efficace.

cdeval
Messages : 192
Inscription : mer. juin 03, 2009 4:28 pm

Re: Appel en Lua

Message par cdeval » lun. mai 19, 2014 10:05 am

j'ai essayé sans trop approfondir de capturer stdout sans succès.
J'avais aussi regardé pour appeler la librairie giac via lua mais c'est très technique.
Comme j'arrive à faire ce que je veux en passant par des fichiers en entrée et en sortie je vais m'en satisfaire.
Merci

Répondre