Comment gérer les espaces après une macro ?

recherche d'un mot
* 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'.

Retour à la FAQ LaTeX
Proposition de modification de la FAQ LaTeX :
bayartb at edgard point fdn point fr
Commentaire sur la version HTML de cette FAQ :
Fabien Torre
© Copyright 1997 Marie-Paule Kluth. Tous droits réservés.

Valid XHTML 1.0! Valid CSS!