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.

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}
\begin{document}
\LARGE
$A {}^t M \neq A${}^t\!M$
\end{document}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \pagestyle{empty} \begin{document} \LARGE $A {}^t M \neq A${}^t\!M$
\end{document}
</latexdoc>
</WRAP>
<WRAP clear />
===== =====

L'inconvénient est que cette méthode n'est pas générale car 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 :

==== ====
<WRAP column 45ex>
<code latex>
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
{}^t
\begin{bmatrix}
   a & b \\  c & d \\
\end{bmatrix} 
=
\begin{bmatrix}
   a & c \\  b & d \\
\end{bmatrix}
\]
\end{document}
</code>
</WRAP>

<WRAP column 45ex>
<latexdoc>
\documentclass{article}
\usepackage[body={8cm,8cm}]{geometry}
\usepackage{lmodern}
\usepackage{mathtools}
\pagestyle{empty}
\begin{document}
\[
{}^t
\begin{bmatrix}
   a & b \\  c & d \\
\end{bmatrix} 
=
\begin{bmatrix}
   a & c \\  b & d \\
\end{bmatrix}
\]
\end{document}
</latexdoc>
</WRAP>
<WRAP clear />
===== =====

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

==== ====
<WRAP column 45ex>
<code latex>
\documentclass{article}
\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}
</code>
</WRAP>

<WRAP column 45ex>
<latexdoc>
\documentclass{article}
\usepackage[body={8cm,8cm}]{geometry}
\usepackage{lmodern}
\usepackage{mathtools}
\pagestyle{empty}
\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}
</latexdoc>
</WRAP>
<WRAP clear />
===== =====

===== Avec l'extension “mathtools” (ou “amsmath”) =====

Pour des symboles qui ne sont pas des grands opérateurs, l'extension [[ctanpkg>mathtools]] met à disposition la commande ''\prescript'' qui fournit un alignement sur la droite,
plus satisfaisant que celui de la solution du groupe vide.

==== ====
<WRAP column 45ex>
<code latex>
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\LARGE
${}^{12}_3 C

  \neq \prescript{12}{3}{C}$

\end{document} </code>

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \begin{document} \LARGE ${}^{12}_3 C \neq \prescript{12}{3}{C}$ \end{document} </latexdoc>

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{mathtools}
\begin{document}
$\sideset{_a^b}{_c^d}\prod$
\end{document}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \begin{document} $\sideset{_a^b}{_c^d}\prod$ \end{document} </latexdoc>

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{mathtools}
\begin{document}
\[
\sideset{}{'}\sum_{n<k,\;%
   \text{$n$ impair}} nE_n
\]
\end{document}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} \usepackage{mathtools} \pagestyle{empty} \begin{document} \[ \sideset{}{'}\sum_{n<k,\;%

 \text{$n$ impair}} nE_n

\] \end{document} </latexdoc>

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}}

Avec l'extension “chemsym”

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{chemsym}
\newcommand{\hH}{\kemtkn{{}^2H}}
\begin{document}
Voici une des notations du 
deutérium~: $\hH$.
\end{document}

<latexdoc> \documentclass{article} \usepackage[body={8cm,8cm}]{geometry} \usepackage{lmodern} %\usepackage{chemsym} %\newcommand{\hH}{\kemtkn2h \pagestyle{empty} \begin{document} Voici une des notations du deutérium~: ${}^2\textrm{H}$. \end{document} </latexdoc>

4_domaines_specialises/mathematiques/structures/indices/obtenir_un_indice_ou_un_exposant_a_gauche.txt · Dernière modification: 2022/01/01 13:41 de yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0