Comment bien aligner les indices et exposants ?#

Toutes choses étant égales par ailleurs, s’efforcera de positionner les indices et les exposants à des endroits corrects. Malheureusement, il le fait séparément pour les indices et les exposants de chaque terme de l’équation. Voici un exemple :

\documentclass{article}
  \usepackage{lmodern} % Caractères plus lisibles
  \usepackage{mathtools}
  \pagestyle{empty} % N'affiche pas de numéro de page

\begin{document}
\Huge % De grands caractères pour bien voir
$ X^{1}_{2} X_{2} $
\end{document}

Ici, le second indice semble trop haut, puisque le premier a été légèrement déplacé vers le bas pour éviter de toucher l’exposant.

1.  Avec des commandes de base#

Vous pouvez éviter ce problème, au sein d’une équation, en utilisant la méthode suivante :

\documentclass{article}
  \usepackage{lmodern} % Caractères plus lisibles
  \usepackage{mathtools}
  \pagestyle{empty} % N'affiche pas de numéro de page

\begin{document}
\Huge % De grands caractères pour bien voir
$ X^{1}_{2} X^{}_{2} $
\end{document}

Ici, l’exposant vide a pour effet nécessaire de « pousser l’indice vers le bas », ce qui restaure l’alignement visuel des deux indices.

De façon plus poussée, la commande \vphantom définit une boîte invisible dont la hauteur est celle de son argument. Elle peut être utilisée pour aligner des indices, comme dans l’exemple qui suit.

\documentclass{article}
  \usepackage{lmodern} % Caractères plus lisibles
  \usepackage{mathtools}
  \pagestyle{empty} % N'affiche pas de numéro de page

\begin{document}
\Huge % De grands caractères pour bien voir
\[
f_d = f_{\widehat{ef}}
\mathrm{\ devient\ }
f_{\vphantom{\widehat{ef}} d}
    = f_{\widehat{ef}}.
\]
\end{document}

2.  Avec l’extension subdepth#

Si la technique ci-dessus fonctionne, elle est fastidieuse et potentiellement source d’erreurs. Ainsi, pour plus d’une ou deux équations dans un document, il est conseillé d’utiliser l’extension subdepth, qui force tous les indices à apparaître à leur position basse, indépendamment de la présence d’un exposant.

\documentclass{article}
  \usepackage{lmodern} % Caractères plus lisibles
  \usepackage{mathtools}
  \usepackage{subdepth}
  \pagestyle{empty} % N'affiche pas de numéro de page

\begin{document}
\Huge % De grands caractères pour bien voir
$ X^{1}_{2} X_{2} $
\end{document}

Il faut noter que cette extension ne fonctionne pas avec lualatex. Dans ce cas, il faudra utiliser la solution suivante. Elle n’est cependant pas idéale car elle nécessite des tests d’ajustement. Le simple fait de changer la taille des caractères demanderait un ajustement des règlages effectués avec la commande \Umathsubshiftdown, commande qui sert au déplacement vers le bas pour les caractères en indice :

%!TEX engine=lualatex
\documentclass{article}
  \usepackage{lmodern} % Caractères plus lisibles
  \pagestyle{empty} % N'affiche pas de numéro de page

\begin{document}
\Huge % De grands caractères pour bien voir
Avant modification, $X_2 X_2^\dagger
X_2^+$ s'affiche ainsi hors ligne :
\[X_2 X_2^\dagger X_2^+\]

% Décalage vers le bas de 6pt pour les indices
% - des mathématiques en ligne
\Umathsubshiftdown\textstyle=6pt
% - des mathématiques hors ligne
\Umathsubshiftdown\displaystyle=6pt

Après modification, $X_2 X_2^\dagger
X_2^+$ s'affiche ainsi hors ligne :
\[X_2 X_2^\dagger X_2^+\]
\end{document}

Ce type de réglage fait partie d’un ensemble plus conséquent de réglages des mathématiques possibles avec lualatex. L’article 0.65 et les mathématiques du numéro 54-55 des Cahiers de Gutenberg liste ce type de commandes (en fin d’article).