|
Macros, fonctions et variables
d'environnement |
|
Les combinaisons de touches que vous devez connaître pour
créer des fichiers de style sont les suivantes :
-
M-=
-
crée une nouvelle commande. Le premier argument est le nom de
la nouvelle commande, le second une expression.
-
M-w
-
permet de changer localement une ou plusieurs variables
d'environnement. Les ordres with
ont
la forme suivante :
⟨x1|a1|⋯|xn|an|b⟩,
où xi est le nom d'un
variable, ai sa valeur locale et
b le texte sur lequel s'applique l'environnement local.
-
M-m
-
crée une macro. Les arguments de la macro sont
insérés avec la touche tab.
-
M-f
-
crée une fonction. Les arguments de la fonction sont
insérés avec la touche tab.
-
M-i #
-
renvoie la valeur d'un argument de la macro.
-
M-i v
-
renvoie la valeur d'une variable d'environnement.
-
M-i e
-
développe une macro à n arguments (n positif ou nul).
-
M-i a
-
exécute une fonction à n arguments (n positif ou nul).
Plus précisément, lors de l'évaluation d'une
macro
{a|x1|⋯|xn}
créée avec M-i e, voici ce qu'il se
passe :
-
Si a n'est ni une chaîne de caractères, ni
une macro, alors a est évaluée en premier.
Le résultat est soit un nom de macro, soit une expression
f.
-
Dans le cas d'un nom de macro, on remplace f par la
valeur de la variable d'environnement f. Si, après
cela, f n'est toujours pas une macro, on retourne
f.
-
Soit
y1,…,yn
les arguments de f et b son corps (les
arguments en trop sont supprimés ; les arguments manquants
prennent une chaîne de caractère nulle par
défaut). On substitue ensuite
xi à
yi dans b et l'on
retourne le résultat du calcul.
Les fonctions sont similaires aux macros, sauf que les arguments des
fonctions sont évalués et qu'ils ne peuvent être
modifiées directement (vous devez d'abord désactiver la
fonction, modifier les arguments et la réactiver). De plus,
y1,…,yn
sont maintenant considérées comme des variables
d'environnement locales, dont les valeurs sont
x1,…,xn.
Ces variables locales sont perdues au retour de la fonction qui les
utilise.
© 1998–2002 Joris van der Hoeven, Michèle Garoche
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License".