La macro \directTeg (version 1.974)

Utilisation de code texgraph dans LateX avec l'environnement \\begin{texgraph}...\\end{texgraph} et le paquet texgraph.sty.

La macro \directTeg (version 1.974)

Messagepar P.Fradin » 12 Août 2012 21:46

Depuis la version 1.974 il est possible dans un document LaTeX d'utiliser TeXgraph en mode serveur. Ainsi, le programme est lancé une seule fois, en début de compilation, et fermé en fin de compilation. Il suffit pour cela dans le préambule d'écrire:
Code: Tout sélectionner
\usepackage[server]{texgraph}

NB: les anciennes options globales restent évidemment valables.
Lorsque l'on est dans ce mode, il est possible de demander à TeXgraph d'exécuter à la volée des commandes (sans avoir à lancer le programme puisqu'il est déjà actif), c'est le rôle de la macro \directTeg{<commande texgraph>}, dans cette commande on peut utiliser l'instruction Return(chaîne) qui écrit la chaîne dans un fichier de sortie, ce fichier sera automatiquement inclus par la macro \directTeg.
Exemple:
Code: Tout sélectionner
Le pgcd entre 12 et 79 est $\directTeg{Return(pgcd(12,79))}$.

La commande envoyée à TeXgraph est Return(pgcd(12,79)), il calcule donc le pgcd demandé (la macro pgcd est prédéfinie dans TeXgraph) et écrit le résultat dans le fichier de sortie qui va ensuite être inclus.
On peut automatiser ce calcul en créant une macro \pgcd:
Code: Tout sélectionner
\newcommand*{\pgcd}[2]{%
   \directTeg{Return(pgcd(#1,#2))}%
}%

L'exemple précédent peut alors être remplacé par:
Code: Tout sélectionner
Le pgcd entre 12 et 79 est $\pgcd{12}{79}$.


Lorsque la commande texgraph est complexe et/ou doit être utilisée plusieurs fois dans le document, il peut être intéressant de créer une (ou plusieurs) macro(s) texgraph et de les conserver en mémoire le temps de la compilation, c'est ce que propose l'environnement:
Code: Tout sélectionner
\begin{tegcode}
<fichier texgraph>
\end{tegcode}

Le code texgraph doit obéir aux règles de syntaxe d'un fichier TeXgraph (excepté la première ligne: TeXgraph# qui sera automatiquement ajoutée). Ce code va être chargé en mémoire, toutes les variables globales et macros définies dans ce code resteront en mémoire jusqu'à la fin de la compilation. Exemple:
Code: Tout sélectionner
\begin{tegcode}
Mac Pgcd = [//Pgcd(liste d’entiers)
        $L:=%1, $N:=Nops(L),
        if N<2 then "\textrm{error}"
        else
            $r:=pgcd(L[1],L[2]),
            if r=1 then 1
            elif N=2 then r
            else Pgcd( [r,L[3,0]] )
            fi
        fi
        ];
\end{tegcode}

On définit ainsi une macro (permanente) qui calcule le pgcd d'une liste d'entiers de manière récursive (L[3,0] représente tous les éléments de la liste L à partir du troisième). On peut ensuite définir la macro TeX qui lui correspond:
Code: Tout sélectionner
\newcommand*{\Pgcd}[1]{%
   \directTeg{Return(Pgcd([#1]))}%
}%

Exemple:
Code: Tout sélectionner
Le plus grand diviseur commun à $12$, $68$ et $36$ est  $\Pgcd{12,68,36}$.


direcTeg_Exemple.tex
(891 octets) Téléchargé 1167 fois
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04

Re: La macro \directTeg (version 1.974)

Messagepar samuel » 08 Oct 2012 00:23

Bonsoir Patrick,

comme tu le constates je continue de suivre de temps à autres les nouveautés ... elles me serviront sûrement quand je reviendrais aux mathématiques. Donc tout d'abord bravo pour cette nouveauté fort intéressante (ainsi que l'autre "directTeg"). Sinon une petite remarque mesquine (comme mes courtes apparitions sur le forum :oops: ) : dans ton fichier d'exemple, ce n'est pas le "plus grand multiple commun" mais "le plus grand diviseurs commun" :lol:. Allez, d'accord, je retourne dans ma tanière pour quelques temps; je suis à l'amende et gare à moi si un de ces jours je finis par renvoyer un fichier TeXgraph !

@plus

Samuel
samuel
 
Messages: 22
Inscription: 24 Avr 2011 20:43

Re: La macro \directTeg (version 1.974)

Messagepar P.Fradin » 08 Oct 2012 09:08

Bonjour Samuel,

Je vois que tu as l'oeil ! C'est rectifié maintenant.

A très bientôt j'espère.
P.Fradin
Avatar de l’utilisateur
P.Fradin
Administrateur du site
 
Messages: 1887
Inscription: 29 Oct 2008 15:04


Revenir vers TeXgraph dans LaTeX

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 7 invités

cron