Comment gérer l’espace après une commande ?

Pour beaucoup, il est surprenant de voir que de simples commandes engloutissent l’espace située après elles : c’est pourtant une règle classique de LaTeX. Un cas souvent observé par les personnes qui débutent est le suivant :

\LaTeX est un traitement de texte. Il se base sur \TeX.

<latex> \LaTeX est un traitement de texte. Il se base sur \TeX. </latex>

Voici quelques solutions usuelles pour ne plus avoir de mauvaises surprises.

Avec l’ajout de « {} »

Leslie Lamport recommande d’ajouter une paire d’accolades après la commande. Cependant, de nombreux utilisateurs trouvent que ces accolades rendent moins lisible le document source. Voici notre exemple corrigé :

\LaTeX{} est un traitement de texte. Il se base sur \TeX{}.

<latex> \LaTeX{} est un traitement de texte. Il se base sur \TeX{}. </latex>

Avec l’ajout de « \ »

Une méthode alternative, cohérente avec LaTeX, est d’utiliser la commande \ après la commande à corriger. Elle n’a pas besoin des d’accolades après elle et elle permet ainsi de réduire à un le nombre de caractères supplémentaires à taper après votre commande.

\LaTeX\ est un traitement de texte. Il se base sur \TeX.

<latex> \LaTeX\ est un traitement de texte. Il se base sur \TeX. </latex>

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 s’il devrait y avoir une espace après elle ou pas, quitte à l’ajouter. Sur cette base, 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}

Cependant, l’extension est plutôt pensée pour la rédaction de commandes personnelles qui gèrent correctement l’espace après la commande. 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 ? ».

Notez bien cependant que cette commande n’est pas totalement infaillible : elle résout en effet les situations les plus courantes dans la mise en forme du texte. Soyez donc prudent avec son utilisation : cela change en particulier votre syntaxe, 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 à LaTeX ou à ses classes et extensions standards n’utilise \xspace.


Source: Commands gobble following space