Pour les besoins de certaines fonctions, certains arguments sont interprétés sous forme alphanumérique (chaînes de caractères) et non pas sous forme numérique.
Si l’argument est une liste, alors chaque élément de la liste est interprété sous forme de chaîne et les différentes chaînes obtenues sont concaténées. Lors de cette interprétation il y a plusieurs cas de figure, TeXgraph peut rencontrer :
Une expression renvoyant une chaîne :
Les commandes : Map, Si, Loop, Seq : ces commandes fonctionnent comme dans leur contexte habituel à la différence près que les résultats ne sont pas évalués numériquement mais sous forme d’une chaîne. Par exemple : Map( ["(", Re(z), "/", Im(z), ")"], z, [1+i,2,3-i]) renverra la chaîne : (1/1)(2/0)(3/-1), alors qu’une évaluation hors de ce contexte donnerait : ["(",1,"/",1,")","(",2,"/",0,")","(",3,"/",-1,")"]].
Remarque : comme les structures for, if, repeat et while font appel à ces commandes, il est possible d’utiliser ces structures dans des arguments de type chaîne : Exemple la commande : Message(for z in [1+i,2,3-i] do if Im(z)>0 then "(", Re(z),",", Im(z),")" fi od) affichera (1,1).
Exemple(s) : supposons que la macro chaine() soit définie avec la commande "toto", et que l’on ait défini une variable globale A égale à 6, alors la liste suivante :
donnera la chaîne : Notre ami TOTO a 36 dents. Par contre, si la variable A n’a pas été définie, alors la chaîne obtenue sera Notre ami TOTO a dents, car la valeur de A est Nil.
Depuis la version 1.97, les variables de TeXgraph peuvent stocker des chaînes de caractères. Mais on peut aussi utiliser une macro pour jouer ce rôle de variable. Pour créer une macro-chaîne (cette partie est laissée pour compatibilité ascendante) :
Exemple(s) :
Pour accéder au contenu d’une macro-chaîne (cette partie est laissée pour compatibilité ascendante) :
Les macros suivantes sont définies dans le fichier TeXgraph.mac.
label( <expression> ) : l’expression est évaluée alphanumériquement et délimitée avec le symbole $ si la variable dollar a la valeur 1, la macro renvoie la chaîne qui en résulte. Par exemple : [dollar :=1, @label(2+2) ] renvoie "4".
Cette macro est utilisée par l’instruction ??.
StrNum( <valeur numérique> ) : remplace le point décimal par une virgule si la variable prédéfinie usecomma vaut 1 et renvoie la chaîne résultante. Le nombre de décimales est déterminé par la variable nbdeci, et le format d’affichage est défini par la variable numericFormat (0 : format par défaut, 1 : format scientifique, 2 : format ingénieur). Exemple : [usecomma :=1, nbdeci :=10, Message(@StrNum(10000*sqrt(2)) )] affiche : 14142,135623731.
Exemple : [usecomma :=1, nbdeci :=10, numericFormat :=1, Message(@StrNum(10000*sqrt(2)) )] affiche : 1,4142135624E4.
Exemple : [usecomma :=1, nbdeci :=10, numericFormat :=2, Message(@StrNum(10000*sqrt(2)) )] affiche : 14,1421356237E3.
Cette macro est utilisée par l’instruction ??.