Comment obtenir des indices ou exposants à gauche ?#

Il est parfois nécessaire de placer des indices ou exposants devant un symbole, par exemple pour la transposée d’une matrice. Voici quelques méthodes sur ce sujet.

1.  Avec des commandes de base#

La solution de base consiste à placer ceux-ci sur un groupe vide, afin d’éviter qu’ils n’aillent se coller au symbole précédent. Dans certains cas, il sera intéressant d’ajuster l’espace manuellement, par exemple avec la commande \!. Voici un exemple de cette méthode :

\documentclass{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}
\Huge
\[  A {}^t M \neq A{}^t\!M  \]
\end{document}

L’inconvénient est que cette méthode n’est pas générale. Elle ne positionne pas bien l’élement mis en indice ou en exposant en ne considérant pas la taille de l’élément qui sert de référence à l’indice ou l’exposant. En voici un exemple :

\documentclass{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{mathtools}

\begin{document}
\[
  {}^t
  \begin{bmatrix}
    a & b \\  c & d \\
  \end{bmatrix}
  =
  \begin{bmatrix}
    a & c \\  b & d \\
  \end{bmatrix}
\]
\end{document}

Pour contourner cette difficulté, il est possible de définir une commande \transposee utilisant la commande \vphantom.

\documentclass{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{mathtools}

  \newcommand{\transposee}[1]{{\vphantom{#1}}^{\mathit t}{#1}}

\begin{document}
\[
  \transposee{
  \begin{bmatrix}
    a & b \\ c & d \\
  \end{bmatrix}
  }
  =
  \begin{bmatrix}
    a & c \\  b & d \\
  \end{bmatrix}
\]
\end{document}

2.  Avec l’extension mathtools#

Pour des symboles qui ne sont pas des grands opérateurs, l’extension mathtools (ou amsmath) met à disposition la commande \prescript qui fournit un alignement sur la droite, plus satisfaisant que celui de la solution du groupe vide.

\documentclass{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{mathtools}

\begin{document}
\LARGE 
\[  {}^{12}_3 C \neq \prescript{12}{3}{C}  \]
\end{document}

Dans le cas des grands opérateurs (le symbole de sommation ou de produit par exemple), mathtools propose la commande \sideset dont voici un exemple :

\documentclass{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{mathtools}

\begin{document}
\[  \sideset{_a^b}{_c^d}\prod  \]
\end{document}

La documentation de l’extension amsmath (appelée par mathtools) donne d’ailleurs un exemple compliqué à traiter si \sideset n’est pas utilisé (mettre un prime sur le symbole de sommation alors que ce dernier a des éléments sous lui) :

\documentclass{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{mathtools}

\begin{document}
\[
  \sideset{}{'}\sum_{n<k,\; \text{$n$ impair}} nE_n
\]
\end{document}

Cette commande peut être utilisée dans la définition de la commande \transposee vue plus haut. Il faut cependant rester ici prudent, les auteurs de l’extension indiquant que la commande \sideset devrait être limitée aux seuls grands opérateurs.

\newcommand{\transposee}[1]{\sideset{^{\mathit{t}}}{}{#1}}

3.  Avec l’extension chemsym#

Avertissement

Pour des raisons de licence, chemsym est absent de la distribution Live.

Dans un domaine un peu différent, celui de la chimie, l’extension chemsym permet de définir et d’utiliser des symboles chimiques plus facilement. Elle permet en particulier de définir des commandes simplifiant la saisie de quelques symboles qui ont des exposants à gauche (avec des méthodes similaires à celles présentées en début de cette page). L’exemple ci-dessous est repris de la documentation de l’extension.

\documentclass{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{chemsym}

  \newcommand{\hH}{\kemtkn{{}^2H}}

\begin{document}
Voici une des notations du deutérium : \hH.
\end{document}

Sources