Précédent: , Monter: Definitions   [Table des matières][Index]


12.13 xspace package

Synopsis :

\usepackage{xspace}
  ...
\newcommand{...}{...\xspace}

La macro \xspace, quand utilisée à la fin de la définition d’une commande, ajoute une espace à moins que la commande soit suivie de certains caractères de ponctuation.

Après la séquence de contrôle d’une commande qui est un mot de contrôle (voir Control sequences, contrairement aux symboles de contrôle tels que \$), TeX avale les caractères blancs. Ainsi, dans la première phrase ci-dessous, en sortie on a ‘Provence’ placé parfaitement contre le point, sans espace entre les deux.

\newcommand{\PR}{Provence}
Notre école est en \PR .
Les étés en \PR{} sont agréables.

Mais à cause de l’avalement, la seconde phrase a besoin de l’adjonction d’accolades vides {}, sans quoi il n’y aurait pas d’espace entre ‘Provence’ et ‘sont’. (Beaucoup d’auteurs utilisent plutôt un \ pour cela. Voir \(SPACE).)

Le paquetage xspace fournit la commande \xspace. Elle sert à écrire des commandes conçues pour être utilisées essentiellement dans du texte. Elle doit être placée à la toute fin de la définition de ces commandes. Elle insère un espace après la commande à moins que ce qui la suive immédiatement soit dans une liste d’exceptions. Dans l’exemple suivant, on peut se passer de l’adjonction d’accolades vides.

\newcommand{\PR}{Provence\xspace}
Notre école est en \PR .
Les étés en \PR{} sont agréables.

La liste d’exceptions par défaut contient les caractères ,.'/?;:!~-), ainsi que l’accolade ouvrante, la commande controblique-espace discutée plus haut, et les commandes \footnote ou \footnotemark. On peut ajouter des éléments à cette liste comme avec \xspaceaddexceptions{\manotebdpi \manotebdpii} qui rajoute les séquences de contrôle \manotebdpi et \manotebdpii à la liste, et retrancher un élément de la liste comme avec \xspaceremoveexception{!}.

Comment : nombre d’experts préfèrent ne pas utiliser \xspace. La mettre dans une définition signifie que la commande sera en général suivie du bon espacement. Mais il n’est pas aisé de prédire quand ajouter les accolades vides {} parce que \xspace se sera trompé, comme lorsque elle est suivie d’une autre commande, et donc \xspace peut rendre l’édition d’une matière plus difficile et plus faillible que de mettre systématiquement les accolades vides.


Précédent: , Monter: Definitions   [Table des matières][Index]