RAW HTWL
 
La portée d'une macro

retour au sommaire général


Une macro est effacée en mémoire quand :
  • on en définit une autre de même nom
  • on atteint la fin du fichier en cours de compilation

Mais on peut définir des macros qui n'auront qu'une portée locale, et qui rétabliront à la fin du bloc courant les macros qui existaient avant le début du bloc :

\def \macro_de_test { bonjour }

\macro_de_test

\* les accolades suivantes définissent un bloc d'instructions *\

{

\def \macro_de_test { au revoir~! }

\macro_de_test

}

\macro_de_test

Cet exemple produit le texte suivant : bonjour au revoir ! bonjour
C'est-à-dire que la deuxième définition de \macro_de_test n'a eu de validité qu'à l'intérieur du bloc délimité par les accolades, et qu'ensuite c'est la première définition de \macro_de_test qui a repris le relais.

Cette fonctionnalité est très peu utilisée.


 
Il ne faut pas confondre les blocs d'instructions vus ci-dessus et les blocs de définition des macros : les accolades qui servent à délimiter la définition d'une macro n'ont pas d'effet sur la portée des macros y incluses.


Poursuivre la navigation

retour au sommaire général