Le paquet texgraph.sty propose également l’environnement :
\begin{tegprog}[<options>]{nom} <code TeXgraph> \end{tegprog}
Cet environnement enregistre le programme <nom>.teg, ce programme est destiné à être exécuté par la commande tegrun, les paramètres avec lesquels le programme sera exécuté seront dans la variable globale param (liste) du programme, ce programme dispose également d’une macro Return(chaîne), qui écrit la chaîne dans un fichier de sortie, ce fichier sera automatiquement inclus par la commande tegrun.
Les options possibles sont :
Une fois enregistré, on peut exécuter un programme dans un document TeX avec la commande :
\tegrun{nom}{param1 param2 ...}, celle-ci enregistre les paramètres dans le fichier <nom>.prm, demande à TeXgraph d’exécuter le programme <nom>.teg, puis inclut le fichier de résultat <nom>.res. Voici un exemple :
\begin{tegprog}{PrintPgcd} a:=param[1], b:=param[2], if a<b then Echange(a,b) fi, Return("\begin{tabular}{|c|c|c|}\par\hline{}a&b&r\tabularnewline\hline"), r:=b, while r>0 do r:=mod(a,b), Return(Concat(a,"&",b,"&",r,"\tabularnewline\hline")), a:=b, b:=r od, Return("\end{tabular}") \end{tegprog} \newcommand{\PrintPgcd}[2]{\tegrun{PrintPgcd}{#1 #2}}%
Dans cet exemple on crée le programme PrintPgcd.teg, il calcule le pgcd entre deux entiers a et b en donnant les différentes étapes de l’algorithme d’Euclide sous forme d’un tableau. La liste des paramètres est dans la variable param1. La macro Return écrit dans le fichier de sortie qui est PrintPgcd.res.
On définit ensuite une macro PrintPgcd à deux arguments, celle-ci appelle la commande \tegrun{PrintPgcd}{#1 #2}, elle a pour effet d’écrire les deux arguments dans le fichier de paramètres PrintPgcd.prm, puis de demander à TeXgraph d’exécuter le programme PrintPgcd.teg, et enfin, elle inclut le fichier PrintPgcd.res.
L’exécution de \PrintPgcd{456}{166} donne
a | b | r |
456 | 166 | 124 |
166 | 124 | 42 |
124 | 42 | 40 |
42 | 40 | 2 |
40 | 2 | 0 |
1.Le programme initialise cette variable en lisant le fichier PrintPgcd.prm qui contient la liste des paramètres.