sommaire général Les macros peuvent être définies avec ou sans arguments, et chaque argument avec ou sans séparateur. 1. Primitive \def Pour définir une macro toute simple, c'est-à-dire sans argument, il suffit d'utiliser la primitive \def suivie d'un nom valide de macro, puis de la définition de la macro entre accolades :
Pour appeler une macro sans paramètre, il suffit de donner son nom dans le programme : voici mon logo \table_logo. ¿ où vous voulez. 2. Primitive \let Une autre façon de définir une macro sans argument est d'utiliser la primitive \let :
La différence avec la \def est que \let développe la définition avant de la stocker en mémoire. Les deux définitions ci-dessous ne définissent absolument pas la même chose :
La macro \macro_non_developpee contient exactement le texte \num { 130+50 }, tandis que \macro_developpee, définie avec \let , contient le texte 180. En pratique on retiendra que \let sert à effectuer les calculs immédiatement, tandis que \def sert aux macros prenant des arguments. \let ne permet pas de définir les macros récursives. 3. Arguments 3.1. Arguments sans séparateur Pour définir une macro avec argument(s) sans séparateur, il suffit d'utiliser la primitive \def suivie d'un nom valide de macro, des arguments (les noms d'arguments commencent par le caractère « dièse » < # >), puis de la définition de la macro entre accolades :
L'appel à ces macros demandera de mettre les arguments entre accolades, de la façon suivante :
Exemple :
est en fait équivalent à :
ce qui n'est certainement pas le but recherché ! En revanche la syntaxe suivante est fiable, et peut-être plus lisible qu'avec des accolades après \width :
On remarquera que le passage de la primitive \wait en tant qu'argument doit se faire sans accolades. Voir le chapitre sur les appels de macros. 3.2. Arguments avec séparateurs Un séparateur d'argument de macro doit être un nom de macro valide : soit un bloc alphanumérique commençant par « antislash » < \ >, soit un caractère non-alphanumérique, soit un caractère non-alphanumérique précédé d'un antislash. Une même macro peut être définie de façon mixte avec des arguments sans séparateur et des arguments avec :
Voici des exemples d'utilisation des macros ci-dessus :
4. Poursuivre la navigation retour au sommaire général
|