Bien nommer ses macros et environnements

La première chose chose à savoir pour nommer ses macros où environnements est quels sont les noms autorisés. Pour les macros, ils sont de deux types : les caractères de contrôle et les mots de contrôle. Dans un caractère de contrôle (p. ex. \!), la contre-oblique est suivie d'un unique caractère qui n'est pas une lettre. Dans un mot de contrôle, la contre-oblique est suivie d'une suite de lettres et le nom de la commande se termine au premier caractère non-lettre (typiquement un espace ou une accolade).

TeX reconnaît les 52 caractères auxquels vous pensez comme des lettres. En particulier, A et a sont différents, et é, @ ou 1 ne sont pas des lettres. On peut parfois demander à TeX de changer sa notion de lettre : voir par exemple le cas de \makeatletter.

Pour les noms d'environnements, c'est plus simple : les caractères autorisés sont les lettres et le caractère * et ce, quelle que soit la longueur. Vous pouvez essayer d'utiliser d'autres caractères comme des espaces, cela marchera sans doute. Cependant, il n'est écrit nulle part dans le manuel que ça doit marcher, donc il n'est pas certain que cela marchera encore à l'avenir et je vous conseille de ne pas le faire.

Le deuxième élément à prendre en compte est le sens du nom. Même si je suis le premier à ne pas (toujours) suivre ce conseil, je vous encourage à ne pas le choisir trop court : votre source gagnera en lisibilité, et c'est sans doute plus important que d'économiser quelques frappes de touches. Par ailleurs, choisissez toujours un nom qui se rapporte au sens de la commande et pas à sa mise en forme (par exemple, \lebesgue pour la mesure de Lebesgue, indépendamment du fait que vous la notiez 'lambda'' ou autre chose).

Archived copy: https://web.archive.org/web/20170314080827/https://elzevir.fr/imj/latex/tips.html#names

composition/macros/bien_nommer_ses_macros_et_environnements.txt · Dernière modification: 2017/03/14 08:08 par mpg
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0