Comment gérer les espaces après une macro?

$\Reponse$ Après une macro, les espaces sont « avalés » par \LaTeX, tout comme les passages (simples) à la ligne. Laisser une ligne blanche équivaut à insérer la commande \par, ce n'est donc pas pareil.

La disparition de ces espaces est parfois gênante. Par exemple lorsqu'on écrit \string\LaTeX a été écrit par Leslie Lamport, on obtient « \LaTeX{a} été écrit par Leslie Lamport », ce qui n'est pas l'effet escompté. L'idée de redéfinir la commande \LaTeX en lui ajoutant un espace final obligatoire n'est pas la bonne, puisque l'espace n'a pas lieu d'être si, par exemple, la commande est immédiatement suivie d'un signe de ponctuation.

Plusieurs solutions sont possibles. La plus systématique est de faire suivre les commandes par \marg{}.

$\Reponse$ Le package xspace fournit une commande, xspace, qui regarde le caractère qui la suit, et ajoute une espace si nécessaire. On pourra donc définir

\let\oldLaTeX=<latex>\LaTeX</latex>
\def<latex>\LaTeX</latex>{\oldLaTeX\xspace}

afin que l'espace soit placée automatiquement si nécessaire.

composition/macros/espaces_apres_une_macro.txt · Dernière modification: 2018/12/09 11:12 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0