La commande \phantom
permet de masquer du texte, tout en disposant
le reste du document comme si le texte masqué occupait normalement sa place
(les traits rouges aident à visualiser les alignements):
\documentclass{article} \begin{document} Le chat du Cheshire est dans l'arbre. Le chat \phantom{du Cheshire} est dans l'arbre. \end{document}
Mais si vous essayez avec des opérateurs mathématiques, vous obtiendrez un résultat décevant:
\documentclass{article} \begin{document} $aa = bb$ $aa \phantom{=} bb$ ou $x = a + b$ $x = a \phantom{+} b$ \end{document}
En effet, à l'intérieur de \phantom
, les opérateurs =
et +
n'ont pas leurs propriétés
de « relation » ou d'« opérateur binaire » (respectivement).
On peut leur restaurer de deux façons:
\mathrel
\mathbin
pour forcer la classe des opérateurs:\documentclass{article} \begin{document} $aa = bb$ $aa \mathrel{\phantom{=}} bb$ \bigskip $x = a + b$ $x = a \mathbin{\phantom{+}} b$ \end{document}
{}
, pour que LaTeX identifie correctement la classe des symboles en question:
Comme précédemment, si vous essayez d'utiliser \phantom
dans un tel cas,
vous obtiendrez un alignement incorrect:
\documentclass{article} \begin{document} $ N = (-9) + (+5) $ $ N = \phantom{(}-9\phantom{)} + \phantom{(+}5\phantom{)} $ \end{document}
Dans ce cas, vous pouvez avoir l'impression que le problème vient des parenthèses,
mais il vient surtout des et qui,
suivant le contexte, peuvent être des opérateurs binaires (symboles de l'addition et de la soustraction),
ou des opérateurs unaires (signes de nombres). Suivant le cas, les espacements autour d'eux ne sont pas les mêmes.
LaTeX se débrouille en général bien pour identifier le contexte, mais la macro \phantom
l'en empêche ici.
Vous avez de nouveau deux solutions:
\mathord
pour forcer manuellement la classe des opérateurs unaires (si besoin, il existe aussi \mathopen
et \mathclose
pour forcer la classe des délimiteurs ouvrants et fermants. Il se trouve que les parenthèses de cet exemple n'en ont pas besoin ici),{}
pour aider LaTeX à deviner les bons contextes (sûrement la solution la plus simple).\documentclass{article} \begin{document} $ N = (-9) + (+5) $ $ N = \phantom{(}\mathord{-}9\phantom{)} + \phantom{(}\mathord{\phantom{+}}5\phantom{)} $ $ N = \phantom{(}{-}9\phantom{)} + \phantom{({+}}5\phantom{)} $ \end{document}
Source: