Comment masquer un opérateur dans une expression mathématique?
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:
- soit en utilisant
\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}
- soit forçant manuellement un contexte de relation ou d'opérateur binaire avec des termes vides,
{}
, pour que LaTeX identifie correctement la classe des symboles en question:
Comment masquer des parenthèses dans une expression mathématique?
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:
- utiliser la macro
\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), - utiliser des accolades
{}
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: