Comment gérer les espaces après une macro ?
* Pour forcer LaTeX à introduire un espace après une macro, il
suffit de faire suivre son appel d'un backslash (\).
Exemple :
texte \oe\ texte \oe, texte
texte \oe texte \oe, texte
%%%% fin exemple %%%%
* Pour que LaTeX gère lui même les espaces, il suffit d'utiliser
systématiquement les caractères {}.
Exemple :
texte \oe{} texte \oe{}, texte \oe{}uf
%%%% fin exemple %%%%
* On peut également définir une macro TeX \keepspace :
%%%% debut macro %%%%
\def\keepspace{\ifnum\catcode`\ =10
\let\next\keepspacebis \else \let\next\relax \fi
\next}
\def \keepspacebis{\obeyspaces
\afterassignment\keepspaceaux\let\next= }
{\obeyspaces%
\gdef\keepspaceaux{%
\ifx \next\space\let\next\ignorespaces\fi%
\catcode`\ =10\relax\next}}
%%%%
%%%% fin macro %%%%
puis l'utiliser dans une autre définition de macro.
Exemple :
\newcommand{\macro}{\textit{blablabla}\keepspace}
%%%% fin exemple %%%%
* Le package 'xspace' intègre ces définitions qui lui permette
de gérer automatiquement l'espace après une macro suivant le
contexte.
Exemple :
\documentclass{report}
\usepackage{french,xspace}
\pagestyle{empty}
\newcommand{\macro}{aaaaa\xspace}
\begin{document}
\macro bbbb \macro, bbbb
\end{document}
%%%% fin exemple %%%%
Remarque : à noter que le package xspace est conforme aux règles
de typographie anglo-saxones donc la gestion des
caractères de ponctuation composés tels que : où ; ne
sera pas correcte en français. La solution consiste
alors à utiliser le blanc insécable qui de toutes
façons est recommandé dans ce cas : \macro~: blabla.
On peut également se créer son propre package
'fxspace'.