- 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}$.