[luatex] Projet cmathluatex

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Re: [luatex] Projet cmathluatex

Messagepar aldus » Dimanche 20 Décembre 2015, 17:29

Conformément à la documentation de LuaLatex, j'ai fait les substitutions suivantes :

Code: Tout sélectionner
%\usepackage{ucs}
%\usepackage[utf8x]{inputenc}
\usepackage{fontspec}% pour LuaLaTex
%\usepackage[french]{babel}
\usepackage{polyglossia}% pour LuaLaTex
\usepackage{luacode}% pour LuaLaTex
\usepackage{luatextra}% pour LuaLaTex


Après avoir restauré tmpDir à sa place, j'ai lancé les commandes en mode terminal, et çà marche !
J'ai réessayé avec
Code: Tout sélectionner
tex.print('xcas(1+2) : '..Cmath2LaTeX('xcas(1+2)'))
dans un \luaexec{ ... }, et là je n'ai rien. Plus précisément, il y a eu création de giac.in mais pas de nouveaux giac.sav noi de giac.out.
J'ai réessayé en effaçant les giac.* . Il se plaint à la ligne 1183 de ne pouvoir ouvrir '/tmp/giac.out' "(No such file or directory)". Les giac.sav et giac.out n'ont pas été générés.
J'ai réessayé en laissant les vieux fichiers giac. sav et giac.out (générés en mode terminal) et là il m'affiche "3" !
J'ai réessayé avec
Code: Tout sélectionner
tex.print('xcas(3+2) : '..Cmath2LaTeX('xcas(3+2)'))
et évidemment, il m'affiche 3, puisque giac.out n'a pas été mis à jour !

Il me semble donc que c'est au niveau du lancement de giac à partir de (Lua)Latex que le bât blesse.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: [luatex] Projet cmathluatex

Messagepar chris » Lundi 21 Décembre 2015, 13:52

Si le giac.in est créé (par luatex) et que les deux autres ne le sont pas, c'est que giac n'arrive pas à créer ces fichiers. Mais pourquoi Luatex y arriverait et pas giac ?
Sur mon ordi, je n'ai pas ce problème. Le texte ci-dessous compile sans problème et donne ce qu'il faut :
Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage{fontspec}
\usepackage{CmathLuaTeX}
\usepackage{luacode}% pour LuaLaTex
\begin{document}
\luaexec{tex.print('xcas(1+2) : '..Cmath2LaTeX('xcas(1+2)'))}
\end{document}

Peut-être que la commande
Code: Tout sélectionner
os.execute(commande)

n'est pas exécutée. C'est celle qui lance giac.
As-tu bien mis -shell-escape dans ton instruction de compilation ?
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Lundi 21 Décembre 2015, 18:59

J'ai cherché ce qui avait changé et qui pouvait expliquer que ce qui avait bien marché ne marchait plus.

J'ai pensé aux mises à jour mais j'avais oublié que TeXMaker avait planté et perdu des préférences. J'avais remis LuaLatex en compilation rapide mais je n'avais pas vérifié les préférences. Il manquait effectivement " -shell-escape" !

Dommage qu'il n'y ait pas eu d'alerte de la part de TeXMaker pour indiquer qu'une demande d'exécution externe avait été demandée et n'avait pas été exécutée, ou une erreur de Lua pour indiquer la non exécution.

Merci beaucoup de l'aide !
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Lundi 21 Décembre 2015, 19:14

Je ne voudrais pas abuser, mais j'ai deux autres sujets :
- le premier : je voudrais envoyer une succession de commandes Xcas/Giac plutôt que de faire à chaque fois un envoi, dans une démarche d'amélioration des performances. En effet, je crée des copies distinctes et je peux me retrouver avec pas mal de commandes Giac envoyée avec un coût en temps élmevé. J'ai essayé diverses ponctuations (; , :) pour cumuler diverses commandes successives, mais çà n'a pas marché. Peut-être est-ce intrinsèque au mode de récupération à partir de giac.out ? ou au contraire, CMathLuaLatex sait-il créer/récupérer à partir de giac.out une table ?
- le second, très bête mais gênant : lua ne semble pas savoir gérer -(-2 ) = 2, ni Giac (ce qui parait curieux). Ainsi j'affiche des trinômes sous la forme x² - - 2x + -2, par exemple en sortie d'une fonction "normal( ... )", ce qui n'est pas terrible pour les élèves. Y a-t-il un moyen de mieux gérer cela ?
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar chris » Lundi 21 Décembre 2015, 22:03

aldus a écrit:Je ne voudrais pas abuser, mais j'ai deux autres sujets :
- le premier : je voudrais envoyer une succession de commandes Xcas/Giac plutôt que de faire à chaque fois un envoi, dans une démarche d'amélioration des performances. En effet, je crée des copies distinctes et je peux me retrouver avec pas mal de commandes Giac envoyée avec un coût en temps élmevé. J'ai essayé diverses ponctuations (; , :) pour cumuler diverses commandes successives, mais çà n'a pas marché. Peut-être est-ce intrinsèque au mode de récupération à partir de giac.out ? ou au contraire, CMathLuaLatex sait-il créer/récupérer à partir de giac.out une table ?

J'y ai pensé. Techniquement ce doit être possible puisque Asymptote le fait en numérotant les fichiers pdf créés. Mais je n'ai pas approfondi la question et je ne sais pas faire. Toute aide sera la bienvenue.
Je contourne facilement ce problème avec TeXworks et ma macro Ctrl+F9 qui appelle Cmathluatex.lua depuis TeXworks et donc fait l'appel à giac pour toute fonction xcas(). J'en parle dans ma doc au paragraphe des tableaux (https://github.com/cdevalland/cmathluatex/wiki). La traduction se fait directement dans le code source et il n'y a plus d'appel à giac à la compilation. Si texmaker sait appeler un script externe en lua et récupérer le retour, il sera facile de créer l'équivalent de mon Ctrl+F9.
aldus a écrit:- le second, très bête mais gênant : lua ne semble pas savoir gérer -(-2 ) = 2, ni Giac (ce qui parait curieux). Ainsi j'affiche des trinômes sous la forme x² - - 2x + -2, par exemple en sortie d'une fonction "normal( ... )", ce qui n'est pas terrible pour les élèves. Y a-t-il un moyen de mieux gérer cela ?

Donne moi une instruction qui pose problème, je verrai ce qui se passe.
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Jeudi 24 Décembre 2015, 05:19

Concernant le point 2, la gestion des "-".

Voici un code qui montre le problème que je rencontre :

Code: Tout sélectionner
\documentclass[french]{article}
\usepackage{luacode}% pour LuaLaTex

\begin{document}

%%%%%%%%%%%% CmathLuaTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\directlua{dofile('/home/administrateur/Projets-QCM/Transversal/CmathLuaTeX.lua')}
\newcommand\Cmath[1]{\luadirect{tex.print(Cmath2LaTeX('\detokenize{#1}'))}}
\newcommand\XcasOld[1]{$\Cmath{xcas(#1)}$}
\newcommand\Xcas[1]{$\luaexec{tex.print(Cmath2LaTeX('xcas('..#1..')'))}$}% fournir la commande à l'intérieur de xcas entre quotes


\Xcas{'restart'}


\luaexec{%
xaA=-4
xbA=3
aA=-0.2;bA=-(aA)*(xaA+xbA);cA=aA*xaA*xbA % attention à -aA
}% end \luaexec

\begin{enumerate}
\item $\luadirect{str='xcas(factor(x^2-('..xaA..')))';tex.print(Cmath2LaTeX(str))}$%OK
\item \Xcas{'normal(-2*(x-('..xaA..'))*(x-('..xbA..')))'} % manuel, long, délicat et peu lisible
\item \Xcas{string.format('normal(\%s*(x-(\%s))*(x-(\%s)))',-2,xaA,xbA)} % avec string.format ; avec les variables de l'espace lua
\item \Xcas{string.format('normal(\%s*x^2+\%s*x+\%s)',aA,bA,cA)}
\item \Xcas{string.format('factor(\%s*x^2+\%s*x+\%s)',aA,bA,cA)}
\item \Xcas{string.format('canonical_form(\%s*x^2+\%s*x+\%s)',aA,bA,cA)}
\item \Xcas{string.format('f(x):=\%s * x^2+\%s * x+\%s',aA,bA,cA)}\Xcas{'f(x)'}
\item \Xcas{'normal(f(x))'}
\end{enumerate}
\end{document}


Le premier aspect, est l'incapacité apparemment de lua de gérer -aA avec un aA négatif ! Pour gérer cela, j'écris "-(aA)". Pas très élégant ni pratique.
Deuxième aspect : il apparaît avec Xcas des "+ -" pas très heureux. Ils n'apparaissent pas quand je demande la même opération directement sous l'interface Xcas.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Jeudi 24 Décembre 2015, 12:07

Concernant le premier point, à savoir l'envoi groupé d'une succession de commandes pour optimiser les performances :
- j'imagine que l'on pourrait faire un programme Giac qui organiserait les données dans le fichier giac.out, dans un format aisément lisible par lua. On pourrait même imaginer un format adapté à Giac genre les listes ou les matrices que lua sait lire sans problème (j'ai déjà fait ce genre d'aller-retour entre les deux formats.
- plus radical, je me demande si on ne pourrait pas utiliser le côté "glue language" revendiqué par lua pour attaquer directement la bibliothèque Giac écrite en C . J'ai essayé de trouver des informations sur Giac, la bibliothèque en C mais à chaque fois je tombe sur des explications sur son interface Xcas. Il y a surement une forte proximité et peut-être y a-t-il quelque part un moyen de trouver les procédures de Giac à partir de celles de Xcas ? Je pense qu'on serait alors au meilleur de la performance possible.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar chris » Dimanche 10 Janvier 2016, 21:49

Bonsoir,
Le premier aspect, est l'incapacité apparemment de lua de gérer -aA avec un aA négatif ! Pour gérer cela, j'écris "-(aA)". Pas très élégant ni pratique.

Je compile sans problème sans les parenthèses (This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) )
Deuxième aspect : il apparaît avec Xcas des "+ -" pas très heureux. Ils n'apparaissent pas quand je demande la même opération directement sous l'interface Xcas.

Effectivement, latex(Resultat) n'a pas ce problème alors que fprint(Sortie,latex(Resultat)) l'a. C'est un problème interne à giac lié à la fonction fprint. Cela nécessite un petit signalement sur le forum Xcas.

En ce qui concerne la gestion des variables, pourquoi ne pas tout gérer avec giac ? L'exemple suivant fonctionne bien et c'est très lisible :
Code: Tout sélectionner
\Xcas{'xaA:=-4;xbA:=3;aA:=-0.2;bA:=-aA*(xaA+xbA);cA:=aA*xaA*xbA'}
\Xcas{'normal(aA*x^2+bA*x+cA)'}


Concernant le premier point, à savoir l'envoi groupé d'une succession de commandes pour optimiser les performances :
- j'imagine que l'on pourrait faire un programme Giac qui organiserait les données dans le fichier giac.out, dans un format aisément lisible par lua. On pourrait même imaginer un format adapté à Giac genre les listes ou les matrices que lua sait lire sans problème (j'ai déjà fait ce genre d'aller-retour entre les deux formats.

Cela ne résoudrait pas la multitude d'appels à giac à chaque fois. C'est cet appel qui prend du temps. Il faudrait que ce soit LuaTeX qui sache parcourir le document à la recherche de toutes les commandes xcas et n'appel giac qu'une seule fois. Je ne sais pas faire cela.
- plus radical, je me demande si on ne pourrait pas utiliser le côté "glue language" revendiqué par lua pour attaquer directement la bibliothèque Giac écrite en C . J'ai essayé de trouver des informations sur Giac, la bibliothèque en C mais à chaque fois je tombe sur des explications sur son interface Xcas. Il y a surement une forte proximité et peut-être y a-t-il quelque part un moyen de trouver les procédures de Giac à partir de celles de Xcas ? Je pense qu'on serait alors au meilleur de la performance possible.

XCAS=Giac+interface graphique.
Je sais attaquer giac en C++ (cf mon programme CmathOOoCAS) et j'ai déjà réfléchi à cette option (car c'est quand même un comble de faire communiquer deux programmes via des fichiers textes) mais je n'ai encore rien trouvé. Et puis il faudra trouver une solution pour chaque plateforme (win,linux,Mac...) puisque c'est du compilé. Par exemple pour OpenOffice, j'ai dû compiler Giac avec Visual C++ afin de le faire communiquer avec le tableur sous windows. Alors que Xcas windows tourne sous cygwin (donc moins vite que CmathOOoCAS !).
Je continue d'y réfléchir toutefois.
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Lundi 25 Janvier 2016, 08:52

J"ai posté la question concernant la différence observée entre latex(Resultat) et fprint(Sortie,latex(Resultat)).

Bonne journée.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Mardi 26 Janvier 2016, 21:04

J'ai "réussi" à créer le problème en Xcas:
Code: Tout sélectionner
factor(-.2*x^2-(-.2)*x+2.4)
-0.2*(x+-4.000000000000)*(x+3.0)


Pourquoi écrire --0.2 ? C'est l'effet du remplacement d'une variable dans ... -.2*x^2-lua_variable*x+2.4 avec lua_variable=-.2.
Il semblerait que --2 dont tout le monde sait que cela fait +3 ou 3 ne soit pas géré. Il semble même que --2 crée une erreur sous Xcas.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar chris » Mardi 26 Janvier 2016, 21:40

aldus a écrit:J'ai "réussi" à créer le problème en Xcas:
Pourquoi écrire --0.2 ? C'est l'effet du remplacement d'une variable dans ... -.2*x^2-lua_variable*x+2.4 avec lua_variable=-.2.
Il semblerait que --2 dont tout le monde sait que cela fait +3 ou 3 ne soit pas géré. Il semble même que --2 crée une erreur sous Xcas.


Est-ce bien le --0.2 qui pose problème ? Quand j'écris
Code: Tout sélectionner
factor(-0.2*x^2+0.2*x+2.4)

je récupère exactement le même résultat dans XCAS.
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Mercredi 27 Janvier 2016, 01:08

Sur la version Xcas pour Linux, si j'ai "- - x" :
Code: Tout sélectionner
factor(x^2--x-1)
:1: syntax error, unexpected T_SYMBOL line 1 col 13 at x
Syntaxe en mode compatible xcas
Erreur grammaticale ligne 1 à x&+&
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Vendredi 25 Mars 2016, 20:54

Bonsoir,

Le problème des "+-" a été exposé sur le forum de Xcas et Giac, et B. Parisse a trouvé une première solution au niveau de l'interface puis une deuxième au niveau de la bibliothèque Giac, si j'ai bien compris. Cette dernière a eu l'effet escompté sur luaLatex : les séquences qui créaient des "+-" ne le font plus.

Le problème est donc réglé :)

Merci.
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar chris » Vendredi 25 Mars 2016, 22:44

Impec ! Bernard vient à bout de tous les problèmes.
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Mercredi 04 Mai 2016, 08:02

Bonjour !

Quand on utilise des variable dans Xcas/Giac, après
Code: Tout sélectionner
temp:=sin(pi/4)
par exemple, la variable temp est disponible partout dans les bouts de code Xcas.

Par quel mécanisme peut-on créer une variable lua qui récupère cette variable Xcas ? Il me semble avoir réussi à le faire mais j'ai perdu la méthode depuis ...
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Mercredi 04 Mai 2016, 08:15

J'ai retrouvé. Sous votre contrôle :
Code: Tout sélectionner
\luaexec{luatemp=Cmath2LaTeX('xcas(temp)')}
fait le boulot ! (avec temp variable Xcas, luatemp variable lua).
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar chris » Dimanche 12 Juin 2016, 19:15

aldus a écrit:J'ai retrouvé. Sous votre contrôle :
Code: Tout sélectionner
\luaexec{luatemp=Cmath2LaTeX('xcas(temp)')}
fait le boulot ! (avec temp variable Xcas, luatemp variable lua).

je vous conseille de mettre Cmath2LaTeX('xcas(evalf(temp))') sinon vous récupérez du code latex, par exemple \frac{1}{2}. Lua risque de ne pas apprécier en tant que valeur numérique !
chris
Déca-utilisateur
 
Messages: 43
Inscription: Dimanche 17 Mars 2013, 10:09
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Lundi 13 Juin 2016, 07:21

Précision importante en effet !
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar aldus » Jeudi 08 Mars 2018, 19:16

Bonsoir,

Suite à un mauvais update d'Ubuntu 16.04LTS à 17.10, j'ai été obligé de réinstaller tout l'environnement (grrrr !!).
Tout semble bien fonctionner maintenant sauf que j'ai à nouveau l'erreur : "cannot open file '/tmp/giac.out' (No such file or directory)."
Evidemment, j'ai bien vérifié la présence du shell-escape : j'ai dans TexMaker la configuration pour LuaLatex : "lualatex -interaction=nonstopmode %.tex -shell-escape".

Auriez-vous une idée du problème ?

(j'utilise la version de fin 2015 de CmathLuaTeX.lua et .sty ; j'ai voulu mettre ces fichiers à jour à partir de GitHub mais le fichier .lua par exemple est un fichier HTML).
aldus
Déca-utilisateur
 
Messages: 19
Inscription: Samedi 19 Décembre 2015, 19:26
Statut actuel: Actif et salarié | Enseignant

Re: [luatex] Projet cmathluatex

Messagepar kojak » Jeudi 08 Mars 2018, 20:55

Bonsoir

ce ne serait pas plutôt

lualatex -shell-escape -interaction=nonstopmode %.tex : attention à l'ordre non ?

Pour enregistrer les fichiers de Christophe depuis GitHub : clic droit enregistrer sous
pas d'aide par MP
kojak
Modérateur
 
Messages: 10367
Inscription: Samedi 18 Novembre 2006, 19:50
Statut actuel: Actif et salarié | Enseignant

PrécédenteSuivante

Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: DotBot [Crawler], Grapeshot [Crawler], Proximic [Spider] et 18 invités