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[12pt]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{tikz}

\begin{document}
Le chat\tikz[overlay]\draw[red] (0pt,1.5ex) -- ++(0ex,-5ex); du 
Cheshire \tikz[overlay]\draw[red] (0pt,1.5ex) -- ++(0ex,-5ex);est 
dans l'arbre.

Le chat \phantom{du Cheshire} est dans l'arbre.
\end{document}

La question « Comment exploiter les fantômes ? » détaille un peu plus ce sujet.

1.  Cas des opérateurs mathématiques#

Cependant, si vous essayez cette technique avec des opérateurs mathématiques, vous obtiendrez un résultat décevant :

\documentclass[12pt]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page

\begin{document}
  $ aa = bb $

  $ aa \phantom{=} bb $

\medskip
ou
\medskip

  $ 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). Vous pouvez les leur restaurer de deux façons :

1.1.  Avec les commandes \mathrel et \mathbin#

Cette première méthode utilise \mathrel et \mathbin pour forcer la classe des opérateurs :

\documentclass[12pt]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{tikz}

\begin{document}
$ aa = bb $

$ aa\tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex); %
\mathrel{\phantom{=}} \tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex);%
bb $

\bigskip

$ x = a + b $

$ x = a\tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex); %
\mathbin{\phantom{+}} \tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex);b $
\end{document}

1.2.  Avec un forçage manuel#

Vous pouvez forcer manuellement un contexte de relation ou d’opérateur binaire avec des termes vides, {}, pour que identifie correctement la classe des symboles en question :

\documentclass[12pt]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \pagestyle{empty}           % N'affiche pas de numéro de page
  \usepackage{tikz}

\begin{document}
$ aa = bb $

$ aa\tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex); %
\phantom{{}={}} \tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex);bb $

\bigskip

$ x = a + b $

$ x = a\tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex); %
\phantom{{}+{}} \tikz[overlay]\draw[red] (0pt,4.5ex) -- ++(0ex,-5ex);b $
\end{document}

Voir aussi

La question « Comment masquer des parenthèses dans une expression mathématique ? » illustre un autre cas courant en mathématiques.