Suivant: xspace package, Précédent: \protect, Monter: Definitions [Table des matières][Index]
\ignorespaces & \ignorespacesafterend
Synopsis :
\ignorespaces
ou
\ignorespacesafterend
Les deux commandes ont pour effet que LaTeX ignore l’espace blanc après la commande et jusqu’à rencontrer une boîte ou un caractère non blanc. La première commande est une commande primitive de TeX, et la seconde est spécifique à LaTeX.
La commande \ignorespaces
est souvent utilisée quand on définit
des commandes au moyen de \newcommand
, ou \newenvironment
,
ou \def
. Ceci est illustré par l’exemple plus bas. Il permet à un
utilisateur d’afficher dans la marge combien de points rapporte chaque
questions d’un questionnaire, mais il est malcommode parce que, comme
illustré dans la liste enumerate
, l’utilisateur ne doit pas
mettre d’espace entre la commande et le texte de la question.
\newcommand{\points}[1]{\makebox[0pt]{\makebox[10em][l]{#1~pts}} \begin{enumerate} \item\points{10}aucun espace superflu inséré ici \item\points{15} ici un espace superflu entre le nombre et le mot « ici » \end{enumerate}
La solution est de modifier comme ci-dessous :
\newcommand{\points}[1]{% \makebox[0pt]{\makebox[10em][l]{#1~pts}}\ignorespaces}
Dans le second exemple on illustre comment l’espace blanc est enlevé de
devant le texte. Les commandes ci-dessous permettent à utilisateur
d’attacher uniformément une civilité à un nom. Mais si, quand il est
donné, une civilité commence accidentellement par un espace alors
\nomcomplet
le reproduira.
\newcommand{\honorific}[1]{\def\honorific{#1}} % mémorise le titre \newcommand{\fullname}[1]{\honorific~#1} % met le titre devant le nom \begin{tabular}{|l|} \honorific{M./Mme} \fullname{Jean} \\ % sans espace superflu \honorific{ M./Mme} \fullname{Jean} % espace superflu devant la civilité \end{tabular}
Pour réparer cela, modifier le en
\newcommand{\fullname}[1]{\ignorespaces\honorific~#1}
.
Le \ignorespaces
est aussi souvent utilisé dans un
\newenvironment
à la fin de la clause begin, comme dans
\begin{newenvironment}{env
name}{... \ignorespaces}{...}
.
Pour enlever l’espace blanc venant immédiatement après un environnement
utilisez \ignorespacesafterend
. Dans l’exemple ci-dessous on
affiche un espace vertical bien plus grand entre le premier et
le deuxième environnements qu’entre le deuxième et le troisième.
\newenvironment{eq}{\begin{equation}}{\end{equation}} \begin{eq} e=mc^2 \end{eq} \begin{equation} F=ma \end{equation} \begin{equation} E=IR \end{equation}
On peut faire disparaître l’espace vertical en mettant un
caractère %
de commentaire immédiatement après le
\end{eq}
, mais cela est malcommode. La solution est de
modifier en
\newenvironment{eq}{\begin{equation}}{\end{equation}\ignorespacesafterend}
.
Suivant: xspace package, Précédent: \protect, Monter: Definitions [Table des matières][Index]