Spreadsheet et plugin giac pour TeXmacs.

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

Modérateur : xcasadmin

Répondre
corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » lun. janv. 11, 2010 11:17 pm

Bonsoir,

J'ai ajouté deux entrées dans le menu du plugin Giac de TeXmacs qui permettent une utilisation assez simple de la fonction spreadsheet de Giac :

->"New spreadsheet..."
renvoie la commande " spreadsheet("table.tab") " dans Giac
puis ouvre le tableur Xcas après validation.

Après modifications, la capture du tableur est renvoyée dans TeXmacs.

->"Insert TeXmacs table associated to..."
renvoie le contenu de table.tab dans Giac
Après validation, le tableur est converti en tableau TeX par Giac.

L'ensemble fonctionne bien (sous gnu/linux au moins) mais nécessite de garder les fichiers table.tab sur le même disque pour une réouverture/modification ultérieure.
La commande précédente permet déjà de sauvegarder "spreadsheet[[[x,x,2],[0,0,2],..." dans le fichier TeXmacs.
Existe-t-il une commande giac permettant de relancer le tableur Xcas directement à partir de ce code ?
Par exemple : "spreadsheet(spreadsheet[[[x,x,2],[0,0,2],[=B0...)".
Si ce n'est pas possible, il me faudra passer par la recréation d'un fichier table.tab qui serait ensuite appelé par : "spreadsheet("table.tab").

Cordialement.

Emmanuël

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

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par parisse » mar. janv. 12, 2010 8:44 am

Je suis en train de modifier le plugin pour que spreadsheet(spreadsheet[[[...]]]) ouvre un widget tableur. Je met a jour xcas_root, les autres suivront dans la semaine. Mais le problème est que l'entrée elle-même n'est évidemment pas modifiée, et la sortie reste pour le moment le postscript. Donc il faudrait savoir comment gérer la sortie pour pouvoir sauver en quelque chose de réutilisable.

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

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par parisse » mar. janv. 12, 2010 9:25 am

Update: la sortie est maintenant la traduction latex du tableur, modifications comprises.

corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » mar. janv. 12, 2010 9:14 pm

Je viens de tester la dernière version.

Dans un terminal :
1 - spreadsheet("table") ouvre bien le widget tableur mais renvoie le message

Fontconfig warning: "\etc\fonts\conf.d\80-delicious.conf", line 17: invalid match target "scan"
Fontconfig warning: line 73: unknown element "cachedir"
Fontconfig warning: line 74: unknown element "cachedir"
Done
(ce qu'il ne fait pas habituellement)

2 - spreadsheet(spreadsheet[[[essai,essai,2],[0,0,2]],[[0,0,2],[0,0,2]]]) ouvre maintenant le widget tableur
mais je ne sais pas où est sauvegardé le tableur.

Dans TeXmacs :
1 - spreadsheet("table") fonctionne de la même façon que dans le terminal

2 - spreadsheet(spreadsheet[[[essai,essai,2],[0,0,2]],[[0,0,2],[0,0,2]]]) renvoie la traduction LaTeX du tableur et reste "en cours" de traitement. Après une interruption, plus rien ne fonctionne.

Je pensais au départ que spreadsheet(spreadsheet[[[...]]]) pourrait ouvrir le widget tableur et sauvegarder celui-ci sous un nom générique (table.tab ou autre).

Dans le menu de la session Giac, un simple ajout du type :

Code : Tout sélectionner

("New spreadsheet" 
    (giac-insert "spreadsheet(spreadsheet[[[...]]])")
    (session-evaluate))
lancerait directement le widget tableur (en retournant la capture eps ou la traduction LaTeX)

Code : Tout sélectionner

("Insert associated TeXmacs table" 
    (insert (read-line (open-input-file "table.tab")))
    (session-evaluate)
    (field-insert #t)
    (delayed
	(:pause 1000) 
        (giac-insert "<Evaluer_cette_entree_pour_modifier_le_tableau_ci_dessus_avec_Xcas>")
        (insert-return) 
        (giac-insert (string-append "spreadsheet(" (read-line (open-input-file "table.tab")) ")"))
        (field-insert #t)))
insérerait la traduction LaTeX du tableur en sortie puis sauvegarderait le nouveau spreadsheet(spreadsheet[[[...]]]) dans l'entrée suivante (prête à une nouvelle validation).

Mais évidemment, ça reste du bricolage et la modification du plugin dans Giac serait sûrement beaucoup plus ergonomique.


Au départ, je souhaitais reprendre l'export LaTeX pour coller un peu plus à TeXmacs en exportant les cellules entre "" en texte et les autres cellules en math.

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

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par parisse » mer. janv. 13, 2010 8:37 am

Pour le 1/, ca doit venir de changements dans le fichier de config de fontconfig entre la version sur le vieux serveur qui me genere xcas_root et les versions recentes. Donc pas grave, des l'instant ou le package debian passe bien.
Pour le 2/, le tableur n'est pour le moment pas sauvegarde, mais il suffit de decider d'un nom generique, disons par exemple table.tab, je fais la modif (toujours dans xcas_root). Mais est-ce qu'il ne serait pas plus simple de mettre ce nom de fichier en argument: spreadsheet("table.tab") pour new spreadsheet? De toutes facons je ne vois toujours pas comment faire pour avor quelque chose de propre qui evite de sauvegarder un fichier a part.

corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » mer. janv. 13, 2010 12:01 pm

Le .deb fonctionne parfaitement.

Tout a l'air de bien fonctionner sous TeXmacs :

- spreadsheet("table.tab") fonctionne comme habituellement
- spreadsheet(spreadsheet[[[...]]]) ouvre un widget tableur et sauvegarde les données dans table.tab
Ces deux commandes ne retournent rien en sortie.

- spreadsheet[[[...]]] retourne bien l'export LaTeX du tableau en sortie.


À partir de là, et en utilisant les 2 entrées proposées dans le post précédent, il est possible de s'en sortir :
- "New spreadsheet"
lance le widget tableur et ne donne aucune sortie (mais sauvegarde les données dans table.tab)
- "Insert associated TeXmacs table"
retourne l'export LaTeX dans une 1ère sortie
retourne "spreadsheet(spreadsheet[[[contenu_de_table.tab]]])" dans une 2ème sortie (le contenu de table.tab est alors sauvegardé à l'intérieur du fichier TeXmacs et peut être validé pour réouvrir le widget plus tard quitte à refaire "Insert associated TeXmacs table" pour réinsérer l'export LaTeX et sauvegarder à nouveau table.tab)

Cela nécessite de faire deux opérations mais je pourrais essayer de demander à TeXmacs de les enchaîner en une seule.

Deux copies d'écran pour vous faire une idée des résultats de chaque entrée du menu :
http://dl.dropbox.com/u/246467/Giac/Tableur_Giac_02.png
http://dl.dropbox.com/u/246467/Giac/Tableur_Giac_01.png

Il serait effectivement encore plus complet de mettre le nom de fichier en argument. De quelle manière ?
spreadsheet("table.tab",[[[contenu_de_table.tab]]]) avec le 2ème argument optionnel ?

Je ne sais pas si j'ai été très clair...

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

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par parisse » mer. janv. 13, 2010 12:11 pm

Je ne comprends pas comment ca peut marcher avec le .deb, je ne l'ai pas modifie???

corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » mer. janv. 13, 2010 12:46 pm

Je parlais de l'utilisation courante (hors les dernières modifications) bien sûr.
Mais comme je disais, je ne suis pas toujours très clair.

corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » mer. janv. 13, 2010 1:40 pm

Le plugin giac si vous voulez faire un essai dans TeXmacs.

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

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par parisse » mer. janv. 13, 2010 2:54 pm

Est-ce qu'il serait possible de faire un appel a la boite de dialogue des fichiers de texmacs pour ouvrir un fichier .tab existant et a ce moment-la inserer la commande spreadsheet("nom_fichier.tab")?
Ca ne resoud evidemment pas le probleme de devoir sauvegarder a la fois le fichier texmacs et le fichier .tab
Dans l'approche ou on met spreadsheet(spreadsheet[... dans la ligne de commande, il faudrait pouvoir modifier la ligne de commande *apres* l'execution par texmacs pour ne pas avoir besoin de sauvegarder un fichier .tab a part.

corcelle
Messages : 11
Inscription : mer. oct. 28, 2009 11:33 pm
Contact :

Re: Spreadsheet et plugin giac pour TeXmacs.

Message par corcelle » mer. janv. 13, 2010 8:40 pm

Je vais me pencher sur la boîte de dialogue pour ouvrir un .tab (ça prendra peut-être un peu de temps).

L'enregistrement des contenus de .tab au sein de TeXmacs est déjà possible quitte à revalider l'entrée "Insert associated TeXmacs table" après chaque manipulation du tableau dans Xcas.
Évidemment, le remplacement du "spreadsheet(spreadsheet[...ancien..." par le "spreadsheet(spreadsheet[...nouveau..." après modification dans Xcas va être ma priorité pour obtenir quelquechose de beaucoup plus logique. Cela évitera la succession de "spreadsheet(spreadsheet[...étape_i..." qui s'affichent pour l'instant à chaque modification du tableur.

Je vous tiens au courant dès que j'arrive à quelquechose de plus convivial.
Merci pour l'aide et pour ces modifications.

Emmanuël

Répondre