Pourquoi l'espace disparaît après une commande?
Certains sont surpris de voir que de simples commandes font disparaître l'espace située après elles. C'est pourtant une règle fondamentale de . Par exemple:
Voici quelques solutions usuelles pour ne plus avoir de mauvaises surprises.
Avec l'ajout de « {} »
Leslie Lamport recommande d'ajouter systématiquement une paire d'accolades après la commande. Voici notre exemple corrigé :
Cependant, de nombreux utilisateurs trouvent que ces accolades rendent moins lisible le document source.
Avec l'ajout de « \ »
Une deuxième méthode, qui fonctionne avec , est d'utiliser la commande \
(une barre oblique inversée suivie d'une espace) après la commande à corriger.
Elle n'a pas besoin des d'accolades après elle et elle permet ainsi de réduire à un seul
le nombre de caractères supplémentaires à taper après votre commande:
Avec l'extension “xspace”
Si un simple caractère \
est encore de trop pour vous, l'extension xspace définit une commande \xspace
qui détermine automatiquement s'il doit y avoir une espace après elle ou pas, et l'ajoute si besoin.
Avec xspace
, on pourrait donc écrire :
\documentclass{article} \usepackage{xspace} \begin{document} \LaTeX\xspace est un traitement de texte. Il se base sur \TeX\xspace. \end{document}
Vous allez dire qu'on y a plutôt perdu au change, en saisissant \xspace
au lieu de \
…
En fait, cette extension est plutôt pensée pour l'écriture de macros personnelles qui pourront ainsi gérer
correctement l'espace après elles. Dans ce cas, la commande \xspace
doit être le dernier élément indiqué
dans votre définition de commande. En voici un exemple pratique :
\documentclass{article} \usepackage{xspace} \newcommand{\latex}{\LaTeX\xspace} \newcommand{\tex}{\TeX\xspace} \begin{document} \latex est un traitement de texte. Il se base sur \tex. \end{document}
Un autre exemple d'utilisation est donné au début de la question « Comment gérer des abréviations ? ».
La règle utilisée par xspace est plutôt simple:
- S'il n'y a pas d'accolades et d'espace après la commande, insérer une espace.
- S'il y a des accolades, ne rien faire.
Notez bien cependant que cette commande n'est pas totalement infaillible: elle ne sait gérer que les situations les plus courantes
dans la mise en forme du texte. Soyez donc prudent en l'utilisant, d'autant plus qu'elle change votre façon d'écrire,
ce qui peut dérouter un éventuel co-auteur (en particulier si vous créez des commandes qui utilisent ou pas \xspace
).
Ceci explique aussi pourquoi aucune commande propre à ou à ses classes et extensions standards n'utilise \xspace
.
Sources: