Précédent: \ignorespaces & \ignorespacesafterend, Monter: Definitions [Table des matières][Index]
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: \ignorespaces & \ignorespacesafterend, Monter: Definitions [Table des matières][Index]