Formules mathématiques sous LaTeX

Published: 08 janvier 2014

DMCA.com Protection Status

Introduction

Vous êtes prêts ! Dans ce chapitre nous allons aborder l’atout majeur de TEX : la composition de formules mathématiques. Mais attention, ce chapitre ne fait que décrire les commandes de base. Bien que ce qui est expliqué ici soit suffisant pour la majorité des utilisateurs, ne désespérez pas si vous n’y trouvez pas la solution à votre problème de mise en forme d’une équation mathématique. Il y a de fortes chances pour que la solution se trouve dans l’extension amsmath de AMS-LATEX.

Note (source): Cet article est extrait du document: Une courte (?) introduction à LATEX2ε (GPL Licence):

  • Télécharger le document:[attachment:298]
  • Télécharger la license GPL [attachment:299]

L’ensemble AMS-LaTeX

Si vous souhaitez saisir des textes mathématiques (avancés), vous devriez utiliser AMS-LATEX. Le paquet AMS-LATEX est une collection d’extensions et de classes pour la saisie mathématique. Nous traiterons ici principalement de l’extension amsmath qui fait partie de ce paquet. AMS-LATEX est produit par l’American Mathematical Society 1 et est utilisée extensivement pour la mise en forme de mathématiques. LATEX seul fournit bien quelques fonctionnalités et environnements basiques, mais ils sont relativement limités (voire, la logique s’appliquerait plutôt dans l’autre sens : AMS-LATEX est illimité !) et parfois incohérents.
AMS-LATEX fait partie de la distribution de base et est fournie avec toutes les distributions récentes de LATEX2. Dans ce chapitre nous supposerons qu’amsmath est chargé en préambule, via \usepackage{amsmath}.

Équations simples

Une formule mathématique peut être mise en forme au fil du texte à l’intérieur d’un paragraphe (style en-ligne) ou en interrompant le flot du texte pour que la mise en forme soit séparée (style hors-texte). Les équations mathématiques dans un paragraphe sont entrées entre deux signes $ :

    Ajoutez $a$ au carré
    et $b$ au carré pour obtenir
    $c$ au carré. Ou, en
    utilisant une approche plus
    matheuse : $a^2 + b^2 = c^2$.

    \TeX{} se prononce
    $\tau\epsilon\chi$\\[5pt]
    100~m$^{3}$ d’eau\\[5pt]
    J’$\heartsuit$ \LaTeX{}

Il vaut mieux composer les équations ou les formules plus importantes “hors-texte”, c’est-à-dire sur une ligne à part, plutôt que d’amocher le para- graphe. Pour cela, on les place entre $\begin{équation}$ et $\end{équation}$.
Vous pouvez ensuite utiliser \label pour marquer un numéro d’équation et vous y référer ailleurs dans le texte via la commande \eqref. Si vous voulez plutôt nommer l’équation, utiliser \tag à la place.

    Ajoutez $a$ au carré
    et $b$ au carré pour obtenir
    $c$ au carré. Ou, en
    utilisant une approche plus
    matheuse :
    \begin{equation}
    a^2 + b^2 = c^2
    \end{equation}
    Einstein a dit
    \begin{equation}
    E = mc^2 \label{intelligent}
    \end{equation}
    Il n’a pas dit
    \begin{equation}
    1 + 1 = 3 \tag{idiot}
    \end{equation}
    Voici une référence à
    \eqref{intelligent}.

Si vous ne voulez pas que LATEX numérote vos équations, utilisez la version étoilée d’equation, equation*3, ou mieux encore, entourez votre équation par [ et ] :

    Ajoutez $a$ au carré
    et $b$ au carré pour obtenir
    $c$ au carré. Ou, en
    utilisant une approche plus
    matheuse :
    \begin{equation*}
    a^2 + b^2 = c^2
    \end{equation*}
    ou de façon plus condensée :
    \[ a^2 + b^2 = c^2 \]

Cependant, si vous avez beaucoup d’équations dans votre document, le source LATEX risque de devenir moins lisible si vous utilisez [ et ], à moins de les laisser seuls sur une ligne. Aussi nous recommandons d’utiliser plutôt equation et equation* pour lesquels il est plus facile d’activer ou désactiver la numérotation par simple ajout ou retrait des étoiles.
Remarquez que les expressions mathématiques sont formatées différem- ment selon qu’elles sont composées “en-ligne” ou “hors-texte” :

    Style en-ligne :
    $\lim_{n \to \infty}
    \sum_{k=1}^n \frac{1}{k^2}
    = \frac{\pi^2}{6}$.
    Style hors-texte :
    \begin{equation}
    \lim_{n \to \infty}
    \sum_{k=1}^n \frac{1}{k^2}
    = \frac{\pi^2}{6}
    \end{equation}

En style en-ligne, utilisez la commande \smash sur des (sous-)expressions mathématiques à plusieurs niveaux, que ce soit vers le haut ou vers le bas. Cela incite LATEX à ne pas prendre en compte la hauteur de ces expressions et permet d’avoir un interligne régulier.

    Une expression mathématique
    $d_{e_{e_p}}$ suivie par une
    expression $h^{i^{g^h}}$. Par
    opposition à une expression
    avec smash \smash{$d_{e_{e_p}}$}
    suivie par une expression
    \smash{$h^{i^{g^h}}$}.

Mode mathématique

Il y a également des différences notables entre le mode mathématique et le mode texte. Par exemple, en mode mathématique :

  1. la plupart des espaces et des retours à la ligne n’ont aucune signification. Les espaces sont déduites de la logique de la formule ou indiquées à l’aide de commandes spécifiques telles que \,, \quad ou\qquad (nous reparlerons de cela en section 3.6) ;
  2. les lignes vides ne sont pas autorisées. Un seul paragraphe par formule ;
  3. chaque lettre est considérée comme étant le nom d’une variable et sera imprimée comme telle. Pour insérer du texte normal (police et espacement standard) dans une formule, il faut utiliser la commande \text{...} (voir également la section 3.7 en page 75).

    $\forall x \in \mathbf{R}:
    \qquad x^{2} \geq 0$

    $x^{2} \geq 0\qquad
    \text{pour tout } x\in\mathbf{R}$

Une mode récente et contestable pousse à utiliser la police blackboard bold (gras tableau noir, ainsi appelée car c’est par le doublement des verticales des lettres que l’on simule le gras typographique lorsqu’on ne peut faire autrement) qui est obtenue par la commande \mathbb de l’extension amssymb4 pour désigner les ensembles de nombres entiers, réels, etc. L’exemple précédent
devient :

    $x^{2} \geq 0\qquad
    \text{pour tout } x
    \in \mathbb{R}$

Référez-vous aux tableaux 3.14 en page 86 et 6.4 en page 133 pour plus de polices mathématiques.

Éléments d’une formule mathématique

Cette section décrit les commandes les plus importantes du mode math- ématique. La plupart des commandes de cette section ne nécessitent pas amsmath, sauf mention explicite, mais chargez-la tout de même.
Les lettres grecques minuscules sont saisies de la manière suivante : \alpha, \beta, \gamma, etc. Les lettres grecques majuscules sont quant à elles saisies ainsi : \Gamma, \Delta, etc. 5

Référez-vous au tableau 3.2 en page 81 pour une liste de lettres grecques.

    $\lambda,\xi,\pi,\theta,
    \mu,\Phi,\Omega,\Delta$

Les indices, exposants et lettres supérieures sont positionnés en utilisant les caractères _ et ^.
Le tableau 3.3 en page 82 liste de nombreuses relations binaires comme ⊆ et ⊥.
La plupart des commandes du mode mathématique ne s’appliquent qu’au caractère suivant. Pour qu’une commande s’applique à un ensemble de caractères, il faut les grouper en utilisant des accolades : {...}.

    $p^3_{ij} \qquad
    m_\text{Knuth}\qquad
    \sum_{k=1}^3 k \\[5pt]
    a^x+y \neq a^{x+y}\qquad
    e^{x^2} \neq {e^x}^2$

La racine carrée est saisie via \sqrt. La racine n-ième est produite par la commande \sqrt[n]. La taille du symbole racine est calculée par LATEX. Pour obtenir le symbole seul, utilisez \surd.
Voyez d’autres sortes de flèches comme 􏰀→ et 􏲇 dans le tableau 3.6 en page 83.

    $\sqrt{x} = x^{1/2}
    \quad \sqrt[3]{2}
    \quad \sqrt{x^{2} + \sqrt{y}}
    \quad \surd[x^2 + y^2]$

Bien que les points pour indiquer les opérations de multiplication soient normalemet omis, les faire apparaître peut aider à la lecture. Utilisez alors \cdot qui imprime un seul point centré. \cdots imprime des points de suspension centrés (à la manière de points de suspension situés plus haut sur la ligne). \ldots imprime des points de suspension normaux. En plus de ces commandes vous avez également \vdots pour des points alignés verticalement et \ddots qui imprime des points en diagonale. D’autres exemples se trouvent en section 3.5.4.

    $\Psi = v_1 \cdot v_2
    \cdot \ldots \qquad
    n! = 1 \cdot 2
    \cdots (n-1) \cdot n$

Les commandes \overline et \underline créent un trait horizontal au-dessus ou au-dessous d’une expression :

    $0.\overline{3} =
    \underline{\underline{1/3}}$

Les commandes \overbrace et \underbrace créent une grande accolade horizontale au-dessus ou au-dessous d’une expression :

    $\underbrace{\overbrace{a+b+c}^6
    \cdot \overbrace{d+e+f}^9}
    _{\text{meaning of life}} = 42$

Pour ajouter des accents mathématiques tels que des flèches ou des tildes, vous pouvez utiliser les commandes du tableau 3.1 p. 81. Les chapeaux et les tildes larges, couvrant plusieurs caractères, sont produits par les commandes \widetilde et \widehat. Notez bien la différence entre \hat et \widehat ainsi que le placement de \bar pour une variable indicée. La commande ’ produit un prime :

    $f(x) = x^2 \qquad f’(x)
    = 2x \qquad f’’(x) = 2\\[5pt]
    \hat{XY} \quad \widehat{XY}
    \quad \bar{x_0} \quad \bar{x}_0$

Les vecteurs sont en général marqués en ajoutant une flèche au-dessus des noms de variables. Ceci est obtenu par la commande \vec. Pour coder le vecteur de A à B, les commandes \overrightarrow et \overleftarrow sont bien utiles :

    $\vec{a} \qquad
    \vec{AB} \qquad
    \overrightarrow{AB}$

Les noms des fonctions doivent souvent être imprimés à l’aide d’une police droite et non en italique comme les variables. C’est pourquoi LATEX fournit les commandes suivantes pour les fonctions les plus utilisées :

Tableau |
------------- | ------------- | ------------- | ------------- | ------------- | -------------
\arccos | \cos | \csc | \exp | \ker | \limsup
\arcsin | \cosh | \deg | \gcd | \lg | \ln
\arctan | \cot | \det | \hom | \lim | \log
\arg | \coth | \dim | \inf | \liminf | \max
\sinh | \sup | \tan | \tanh | \min | \Pr
\sec | \sin | | | |

    \begin{equation*}
    \lim_{x \rightarrow 0}
    \frac{\sin x}{x}=1
    \end{equation*}

Les fonctions n’apparaissant pas dans la liste peuvent être déclarées avec \DeclareMathOperator. Il y a même une version étoilée pour les fonctions avec des indices ou exposants placés en dessous et en dessus6. Cette com- mande ne peut être utilisée qu’en préambule, aussi les lignes commentées de l’exemple doivent être ajoutées en préambule pour fonctionner.

    %\DeclareMathOperator{\argh}{argh}
    %\DeclareMathOperator*{\Nut}{Nut}
    \begin{equation*}
    3\argh = 2\Nut_{x=1}
    \end{equation*}

Pour la fonction modulo, il y a deux commandes possibles : \bmod pour l’opérateur binaire et \pmod pour l’opérateur unaire :

    $a\bmod b \\
    x\equiv a \pmod{b}$

Une fraction est produite avec \frac{numérateur}{dénominateur}. Pour les équations en-ligne, la fraction est réduite pour tenir sur la ligne. Ce style peut aussi s’obtenir hors-texte avec \tfrac. L’inverse, c’est-à-dire obtenir des fractions en-ligne selon le style hors-texte, est obtenu avec \dfrac. La forme utilisant une barre oblique (1/2) est souvent préférable pour des petits éléments.

    En style hors-texte :
    \begin{equation*}
    3/8 \qquad \frac{3}{8}
    \qquad \tfrac{3}{8}
    \end{equation*}

    En style en-ligne :
    $1\frac{1}{2}$~heures \\
    ou bien $1\dfrac{1}{2}$~heures

Ici nous utilisons la commande \partial utilisée habituellement pour une dérivée partielle :

    \begin{equation*}
    \sqrt{\frac{x^2}{k+1}}\qquad
    x^\frac{2}{k+1}\qquad
    \frac{\partial^2f}
    {\partial x^2}
    \end{equation*}

Pour imprimer des coefficients binomiaux (à l’américaine) ou d’autres structures semblables, utilisez la commande \binom d’amsmath :

    La règle de Pascal est
    \begin{equation*}
    \binom{n}{k} =\binom{n-1}{k}
    + \binom{n-1}{k-1}
    \end{equation*}

Il est parfois utile, notamment pour des relations binaires, de pouvoir su- perposer des symboles. La commande \stackrel{#1}{#2} place l’argument #1 en taille réduite au-dessus de l’argument #2, lui-même mis en position normale :

    \begin{equation*}
    f_n(x) \stackrel{*}{\approx} 1
    \end{equation*}

Les intégrales sont produites par la commande \int, les sommes par la commande \sum et les produits par la commande \prod. Les limites inférieures et supérieures sont indiquées avec _ et ^ comme pour les indices et les exposants :

    \begin{equation*}
    \sum_{i=1}^n \qquad
    \int_0^{\frac{\pi}{2}} \qquad
    \prod_\epsilon
    \end{equation*}

Pour superposer des indices, l’extension amsmath propose la commande \substack :

    \begin{equation*}
    \sum^n_{\substack{0<i<n \\
    j\subseteq i}}
    P(i,j) = Q(i,j)
    \end{equation*}

LATEX fournit toutes sortes de symboles pour les crochets et autres délimiteurs (par exemple [ ⟨ ∥ ↕). Les parenthèses et les crochets sont obtenus avec les caractères correspondants, les accolades avec {, mais les autres délimiteurs ne sont obtenus que par des commandes spéciales (par exemple \updownarrow) :

    \begin{equation*}
    {a,b,c} \neq \{a,b,c\}
    \end{equation*}

Si vous ajoutez \left avant un délimiteur ouvrant et \right avant le délimiteur fermant correspondant, LATEX détermine automatiquement la taille appropriée pour ces symboles. Remarquez qu’il est nécessaire de fermer chaque délimiteur ouvrant (\left) avec un délimiteur fermant (\right). Si vous ne voulez pas de délimiteur fermant, utilisez le délimiteur invisible
“\right.” :

    \begin{equation*}
    1 + \left(\frac{1}{1-x^{2}}
    \right)^3 \qquad
    \left. \ddagger \frac{~}{~}\right)
    \end{equation*}

Dans certains cas, il est nécessaire d’indiquer la taille exacte des délimi- teurs mathématiques à la main. Vous pouvez alors utiliser les commandes \big, \Big, \bigg et \Bigg comme préfixes des commandes qui impriment les délimiteurs :

    $\Big((x+1)(x-1)\Big)^{2}$\\
    $\big( \Big( \bigg( \Bigg( \quad
    \big\} \Big\} \bigg\} \Bigg\}\quad
    \big\| \Big\| \bigg\| \Bigg\|\quad
    \big\Downarrow \Big\Downarrow
    \bigg\Downarrow \Bigg\Downarrow$

Pour une liste de tous les délimiteurs disponibles, reportez-vous au tableau 3.8, page 84.

Formules trop longues : multline

Si une équation est trop longue, il faut trouver un moyen de la répartir sur plusieurs lignes. Malheureusement, l’équation a alors tendance à devenir moins lisible. Pour préserver la lisibilité, voici quelques règles sur la façon de découper les équations.

  1. En général, une équation devrait toujours être coupée avant un signe d’égalité ou un opérateur.
  2. Une coupure devant un signe d’égalité est préférable à une coupure devant un opérateur.
  3. Une coupure devant un signe “plus”ou moins est préférable à une coupure devant un signe de multiplication.
  4. Il faut éviter autant que possible les coupures à tous les autres endroits.
    La façon la plus simple pour réaliser un tel découpage est d’utiliser l’environnement
    multline 7.

    \begin{multline} 
    a+b+c+d+e+f 
    +g+h+i
    \\ =j+k+l+m+n
    \end{multline}

La différence avec l’environnement equation est qu’il est possible d’insérer un saut de ligne où l’on veut (voire plusieurs), en utilisant \ là où l’équation doit être coupée. Comme pour equation, il existe un environnement multline qui supprime la numérotation.
Souvent le résultat sera meilleur avec l’environnement IEEEeqnarray (voir section 3.5). Par exemple, considérons la situation suivante.

    \begin{equation} 
     a=b+c+d+e+f 
    +g+h+i+j 
    +k+l+m+n+o+p
     \label{eq:formule_trop_longue}
    \end{equation}

Ici, c’est en fait le membre de droite qui est trop long pour tenir sur une ligne. L’usage de multline produit alors :

    \begin{multline} 
    a=b+c+d+e+f
    + g + h + i + j
    \\ +k+l+m+n+o+p
    \end{multline}

C’est nettement mieux que (3.5), mais l’inconvénient est que le signe d’égalité perd son importance naturelle, en principe supérieure à celle du signe “plus”devant k. Une meilleure solution est d’utiliser IEEEeqnarray, qui sera présenté en détails en section 3.5.

Formules multiples

Dans le cas le plus général, considérons une suite d’équations qui ne tiennent pas en entier sur une ligne. Il s’agit d’ajuster l’alignement vertical de façon à obtenir une structure lisible et agréable à l’œil pour l’ensemble.
Avant les conseils pour obtenir ce résultat, commençons par quelques mauvais exemples qui montrent les principaux inconvénients de certaines solutions courantes.

Problèmes des commandes traditionnelles

Pour grouper ensemble plusieurs équations, on peut utiliser l’environnement align 8 comme ceci :

    \begin{align}
     a & = b + c \\ 
    &=d+e
    \end{align}

Cette approche pose problème dès qu’une ligne est trop longue.

    \begin{align}
     a & = b + c \\ 
    &=d+e+f+g+h+i 
     + j + k + l \nonumber \\ 
    & + m + n + o \\ 
    &=p+q+r+s
    \end{align}

Ici, on voudrait que + m soit placé exactement sous le d et non sous le signe d’égalité. Bien sûr, il est possible d’ajouter un peu d’espace avec \hspace{...}, mais il est difficile d’obtenir un alignement précis ainsi (et ce n’est pas un très bon style de programmation).
L’environnement eqnarray offre à première vue une meilleure solution.

    \begin{eqnarray}
     a & = & b + c \\
     &=&d+e+f+g+h+i 
     + j + k + l \nonumber \\
    && +\: m + n + o \\ &=&p+q+r+s
    \end{eqnarray}

Ça n’est cependant toujours pas une solution optimale puisque les espaces autour du signe d’égalité sont trop grands. En particulier, ce ne sont pas les mêmes qu’avec les environnements multline ou equation :

    \begin{eqnarray} 
     a&=&a=a
    \end{eqnarray}

. . . De plus, la formule et le numéro d’équation peuvent se chevaucher, même quand il y a suffisamment de place à gauche pour pousser la formule :

    \begin{eqnarray} 
     a&=&b+c
    \\
    & = & d + e + f + g + h^2
     + i^2 + j \label{eq:eqnarrayfautif}
    \end{eqnarray}

Alors que l’environnement propose une commande \lefteqn qui peut être
utilisée quand le membre de gauche est trop long.

    \begin{eqnarray}
    \lefteqn{a + b + c + d
     + e + f + g + h}\nonumber\\ 
    &=&i+j+k+l+m
    \\
     &=&n+o+p+q+r+s
    \end{eqnarray}

Ça n’est toujours pas optimal étant donné que le membre de droite est trop court et l’ensemble n’est pas centré correctement :

    \begin{eqnarray}
    \lefteqn{a + b + c + d
     + e + f + g + h} \nonumber \\
     &=&i+j
    \end{eqnarray}

Après avoir suffisamment dénigré la compétition, nous pouvons nous diriger vers le glorieux. . .

L’environnement IEEEeqnarray

L’environnement IEEEeqnarray est très puissant et offre beaucoup d’options. Nous n’en couvrirons ici que les fonctionnalités de base. Pour plus d’information, nous renvoyons à son manuel 9.
Pour commencer, il faut charger l’extension10 IEEEtrantools afin de pouvoir utiliser IEEEeqnarray. Pour cela, ajoutez la ligne suivante à votre préambule.

     \usepackage[retainorgcmds]{IEEEtrantools}

Ce qui fait la force d’IEEEeqnarray, c’est la capacité de spécifier le nombre de colonnes dans le tableau d’équation. Le plus souvent, cette spécification sera {rCl}, c’est-à-dire trois colonnes dont la première est alignée à droite, la deuxième centrée et avec un peu plus d’espace autour d’elle (c’est le sens du C majuscule au lieu de c minuscule), et la troisième alignée à gauche.

     \begin{IEEEeqnarray}{rCl} 
      a&=&b+c
     \\
     &=&d+e+f+g+h
      + i + j + k \nonumber\\ 
     && +\: l + m + n + o
     \\
     &=&p+q+r+s 
     \end{IEEEeqnarray}

On peut choisir n’importe quel nombre de colonnes. Par exemple, {c} donnera une seule colonne dans laquelle toutes les lignes seront centrées, ou bien {rCll} donnera une quatrième colonne alignée à gauche, par exemple pour des commentaires. Mieux, en plus de l, c, r, L, C, R pour les entrées en mode mathématique, on dispose aussi de s, t, u pour des colonnes en mode texte, respectivement alignées à gauche, centrées ou alignées à droite. Par ailleurs, on peut ajouter de l’espace entre deux colonnes avec 11 “.”, “/”et
“?”en ordre croissant. Remarquons les espaces autour des signes d’égalité, par rapport au cas d’utilisation de l’environnement eqnarray.

Usages courants

Nous décrivons ici comment utiliser IEEEeqnarray pour résoudre les problèmes les plus courants.
Si une ligne et le numéro d’équation se superposent comme dans (3.17), la commande

     \IEEEeqnarraynumspace

permet de résoudre le problème : il suffit de l’ajouter à la fin de la ligne en question, et l’ensemble de la formule est décalée vers la gauche de la longueur nécessaire (le décalage dépend de la taille du numéro d’équation). Par exemple, partant de :

     \begin{IEEEeqnarray}{rCl} 
      a&=&b+c
     \\ 
     &=&d+e+f+g+h +i+j+k
     \\
     &=&l+m+n 
     \end{IEEEeqnarray}

on obtient :

     \begin{IEEEeqnarray}{rCl}
      a&=&b+c
     \\ 
     &=&d+e+f+g+h 
      +i+j+k 
     \IEEEeqnarraynumspace\\ 
     & = & l + m + n.
     \end{IEEEeqnarray}

Si le membre de gauche est trop long, IEEEeqnarray propose la com- mande \IEEEeqnarraymulticol, qui fonctionne dans tous les cas, comme remplacement de \lefteqn.

     \begin{IEEEeqnarray}{rCl}
     \IEEEeqnarraymulticol{3}{l}{
      a+b+c+d+e+f
      +g+h 
     }\nonumber\\ \quad 
     &=&i+j
     \\
     &=&k+l+m
     \end{IEEEeqnarray}

Son usage est identique à celui de la commande \multicolumns dans l’environnement tabular : le premier argument 3 dit qu’il faut combiner trois colonnes pour n’en former qu’une, et le deuxième argument l dit que son contenu sera aligné à gauche.
Remarquons qu’en insérant \quad dans l’exemple précédent, on peut facilement adapter l’alignement vertical 12 du signe égal, par exemple :

     \begin{IEEEeqnarray}{rCl}
     \IEEEeqnarraymulticol{3}{l}{
      a+b+c+d+e+f
      +g+h
     }\nonumber\\ \qquad\qquad &=&i+j
     \\
     &=&k+l+m
     \end{IEEEeqnarray}

Si une formule est découpée en deux ou plusieurs lignes, LATEX croit que le signe + ou − au début d’une ligne est un opérateur unaire (comme dans −2) et non binaire (comme dans 2 − 2). C’est pourquoi il faut ajouter un peu d’espace \: entre ce signe et le terme qui suit. Par exemple, au lieu de

     \begin{IEEEeqnarray}{rCl} 
      a&=&b+c
     \\ 
     &=&d+e+f+g+h 
      + i + j + k \nonumber\\ 
     && + l + m + n + o
     \\
     &=&p+q+r+s 
     \end{IEEEeqnarray}

il vaut mieux écrire

     \begin{IEEEeqnarray}{rCl} 
      a&=&b+c
     \\ 
     &=&d+e+f+g+h 
      + i + j + k \nonumber\\ 
     && +\: l + m + n + o
     \\
     &=&p+q+r+s 
     \end{IEEEeqnarray}

Observez l’espace entre + et l dans les deux cas !
Parfois, un espacement adéquat suffit, comme par exemple devant
– un nom d’opérateur comme \log, \sin, \det, \max, etc. ;
– une intégrale \int ou une somme \sum ;
– une parenthèse dont la taille s’adapte en utilisant \left ou \right
(par opposition à une parenthèse simple, ou dont la taille est fixée avec par exemple \big) ;
un signe + ou − ne peut pas être unaire et doit être un opérateur binaire. Dans ces cas, LATEX ajuste correctement l’espace après le signe, et il ne faut pas en rajouter.

Formules Mathématiques
Pour supprimer la numérotation sur une ligne particulière, on dispose de la commande \nonumber (ou bien \IEEEnonumber). Si un label \label{...} est défini sur cette ligne, il est alors transmis à la prochaine ligne dont la numérotation n’est pas supprimée. Placez plutôt les labels juste avant le \ à la fin de la ligne concernée ou avant la fin de la formule. En plus d’améliorer la lisibilité du code source, ceci évite des erreurs de compilation dans le cas où une commande \IEEEmulticol se trouverai après la définition du label.
Il existe également une version étoilée de l’environnement, qui supprime to- talement la numérotation. Dans ce cas, on peut ajouter un numéro d’équation sur une ligne particulière avec \IEEEyesnumber.

     \begin{IEEEeqnarray*}{rCl}
      a & = & b + c \\
     & = & d + e \IEEEyesnumber\\ 
     &=&f+g
     \end{IEEEeqnarray*}

On peut également obtenir des numéros de sous-équation avec la com- mande \IEEEyessubnumber.

     \begin{IEEEeqnarray}{rCl} 
      a&=&b+c \IEEEyessubnumber\\ 
     &=&d+e
     \nonumber\\ 
     &=&f+g 
     \IEEEyessubnumber
     \end{IEEEeqnarray}

Tableaux et matrices

Pour composer des tableaux mathématiques, utilisez l’environnement array. Il fonctionne de manière similaire à l’environnement tabular. La commande \ est utilisée pour séparer les lignes :

     \begin{equation*}
     \mathbf{X} =
     \left(
     \begin{array}{ccc}
      x_1 & x_2 & \ldots \\
      x_3 & x_4 & \ldots \\
     \vdots & \vdots & \ddots
     \end{array}
     \right)
     \end{equation*}

L’environnement array peut également être utilisé pour imprimer des fonctions définies par morceaux en utilisant “.” comme délimiteur (invisible) de droite :

      begin{equation*}
      |x| =
     \left\{
     \begin{array}{rl}
     -x & \text{si } x < 0,\\
      0 & \text{si } x = 0,\\
      x & \text{si } x > 0.
     \end{array}
     \right.
     \end{equation*}

L’environnement cases d’amsmath offre une syntaxe plus simple.

     \begin{equation*}
      |x| =
     \begin{cases}
     -x & \text{si } x < 0,\\
      0 & \text{si } x = 0,\\
      x & \text{si } x > 0.
     \end{cases}
     \end{equation*}

L’environnement array peut servir à mettre en page des matrices, mais amsmath fournit une meilleure solution avec l’environnement matrix et ses variantes. Elles sont au nombre de six (avec des délimiteurs différents) : matrix (aucun délimiteur ), pmatrix (, bmatrix [, Bmatrix {, vmatrix | et Vmatrix ∥. Vous n’avez pas à spécifier le nombre de colonnes comme avec array. Leur nombre maximal est de 10 par défaut mais il est mod- ifiable (bien que ce ne soit pas fréquent d’avoir besoin de 10 colonnes ou plus !) :

      \begin{equation*}
      \begin{matrix}
       1 & 2 \\
       3&4 \end{matrix} \qquad \begin{bmatrix}
       p_{11} & p_{12} & \ldots
      & p_{1n} \\
       p_{21} & p_{22} & \ldots
      & p_{2n} \\
      \vdots & \vdots & \ddots
      & \vdots \\
       p_{m1} & p_{m2} & \ldots
      & p_{mn}
      \end{bmatrix}
      \end{equation*}

Espacement en mode mathématique

Si l’espacement choisi par LATEX dans une formule n’est pas satisfaisant,
il peut être ajusté en insérant des commandes d’espacement. Les plus im-
portantes sont : \, pour une espace fine ( 3 quad, ), \: pour une espace 18
moyenne ( 4 quad, ) et \; pour une espace grande ( 5 quad, ). L’espace 18 18
échappée \␣ crée une espace moyenne similaire à l’espace entre mots. and \quad ( ) et \qquad ( ) produisent des espaces plus larges. La largeur d’un \quad 13 correspond approximativement à la largeur du caractère “M” dans la police courante. La commande ! produit une espace fine négative de − 3 quad (−).

      \begin{equation*}
      \int_1^2 \ln x \mathrm{d}x
      \qquad
      \int_1^2 \ln x \,\mathrm{d}x
      \end{equation*}

Remarquez que “d” est imprimée en police romaine. Dans l’exemple suivant, nous définissons une commande \ud qui produit “d” (remarquez l’espace avant le d), de manière à ne pas avoir à le saisir à chaque fois. La commande \newcommand est placée en préambule.

      \newcommand{\ud}{\,\mathrm{d}}
      \begin{equation*}
      \int_a^b f(x)\ud x
      \end{equation*}

Lorsque vous utilisez des intégrales multiples, vous constatez que l’espace entre celles-ci est trop grand. Vous pouvez certes utiliser !, mais AMS-LATEX propose un ensemble de commandes pour réaliser cet ajustement : \iint, \iiint, \iiiint et \idotsint.

      \newcommand{\ud}{\,\mathrm{d}}
      \begin{IEEEeqnarray*}{c}
      \int\int f(x)g(y)
      \ud x \ud y \\
      \int\!\!\!\int
       f(x)g(y) \ud x \ud y \\
      \iint f(x)g(y)  \ud x \ud y
      \end{IEEEeqnarray*}

Reportez-vous au document testmath.tex distribué avec AMS-LATEX, au chapitre 8 de le LATEX Companion [3] ou au chapitre 9 de LATEX, apprentissage, guide et référence [5] pour plus de détails.

Fantômes.

Il arrive que LATEX en fasse un peu trop dans des alignements verticaux d’indices ou d’exposants. La commande \phantom permet de réserver de l’espace pour des caractères qui ne seront pas imprimés, comme le montrent les exemples suivants :

      \begin{equation*}
      {}^{14}_{6}\text{C}
      \qquad \text{à comparer à} \qquad
      {}^{14}_{\phantom{1}6}\text{C}
      \end{equation*}

Si vous souhaitez mettre en forme des isotopes comme dans l’exemple ci-avant, l’extension mhchem dédiée aux formules chimiques peut vous y aider.

Manipuler les polices mathématiques

Plusieurs polices mathématiques sont listées au tableau 3.14 page 86.

       $\Re \qquad
      \mathcal{R} \qquad
      \mathfrak{R} \qquad
      \mathbb{R} \qquad $

Les deux dernières nécessitent amssymb ou amsfonts.

Parfois, il peut être nécessaire d’indiquer à LATEX la taille de fonte désirée. En mode mathématique, cette taille est ajustable avec les quatre commandes :

\displaystyle (123), \textstyle (123), \scriptstyle (123) et  \scriptscriptstyle (123).

Si 􏰕 est placé dans une fraction, il sera imprimé dans le style “en-ligne”à moins d’indiquer à LATEX le contraire :

      \begin{equation*}
       P = \frac{\displaystyle{
      \sum_{i=1}^n (x_i-x)
      (y_i-y)}}
      {\displaystyle{\left[
      \sum_{i=1}^n(x_i-x)^2
      \sum_{i=1}^n(y_i-y)^2
      \right]^{1/2}}}
      \end{equation*}

Changer de style modifie également la façon dont les limites et les grands opérateurs sont affichés.

Symboles gras

Il est relativement ardu d’obtenir des symboles gras avec LATEX ; cela est sans doute fait exprès car les typographes amateurs ont tendance à en abuser. La commande de changement de graisse \mathbf permet d’obtenir des caractères gras, mais romains (donc droits) alors que les symboles mathé- matiques sont normalement en italique. De plus elle ne fonctionne pas sur les minuscules grecques. Il y a bien une commande \boldmath, mais elle ne peut être utilisée qu’en dehors du mode mathématique. Cependant elle fonctionne aussi pour les symboles :

       $\mu, M \qquad
      \mathbf{\mu}, \mathbf{M}$
      \qquad \boldmath{$\mu, M$}

L’extension amsbsy (appelée par amsmath) ainsi que l’extenstion bm dans le paquet tools simplifient beaucoup ce problème puisqu’ils fournissent une commande \boldsymbol :

       $\mu, M \qquad
      \boldsymbol{\mu}, \boldsymbol{M}$

Théorèmes, lemmes, etc.

En rédigeant des documents mathématiques, on a besoin d’un moyen de présenter des lemmes, des définitions, des axiomes et d’autres structures similaires :

 \newtheorem{nom}[compteur]{texte}[section]

L’argument nom est un mot-clef utilisé pour identifier le théorème. L’argument texte définit le nom réel du théorème tel qu’il sera imprimé dans le document final.
Les arguments entre crochets sont optionnels. Ils servent à indiquer la numérotation à utiliser sur le théorème. Utilisez le compteur pour indiquer le nom d’un théorème déjà déclaré. Le nouveau théorème sera alors numéroté dans la même séquence. Avec section vous indiquez dans quel niveau de sectionnement vous voulez numéroter votre théorème.
Après avoir exécuté \newtheorem dans le préambule de votre document, vous pouvez utiliser la commande suivante :

      \begin{nom}[texte]
       Ceci est mon premier théorème \end{nom}

L’extension amsthm (qui fait partie d’AMS-LaTeX) met à disposition la commande \theoremstyle{style} offrant un choix de type de théorème parmi trois styles préféfinis : definition (titre gras, corps romain), plain
(titre gras, corps italique) or remark (titre italique, corps romain).
Voilà pour la théorie. Les exemples qui suivent devraient lever tout doute et montrer clairement que la commande \newtheorem est trop complexe à
comprendre.
D’abord définissez les théorèmes :

Tableau |
------------- | -------------
\theoremstyle{definition} | \newtheorem{loi}{loi}
\theoremstyle{plain} | \newtheorem{decret}[loi]{Décret}
\theoremstyle{remark} | \newtheorem*{lechef}{Le chef}

      \begin{loi} \label{chef}
       Le chef a raison.
      \end{loi}
      \begin{decret}[Important]
       Le chef a toujours raison,
       voir la loi~\ref{chef}.
      \end{decret}
      \begin{lechef}
       Et si le chef a tort, se référer
       à la loi~\ref{chef}.
      \end{lechef}

L’environnement “decret” utilise le même compteur que l’environnement “loi”, donc il obtient un numéro dans la même séquence que les autres “lois”.
L’argument entre crochets permet de spécifier un titre ou quelque chose de ce genre pour l’environnement.

       \newtheorem{mur}{Murphy}[section]
       \begin{mur} Tout ce qui peut
        aller mal ira mal.\end{mur}

Les environnements “Murphy” sont numérotés à l’intérieur de la section en cours. On aurait pu utiliser un autre niveau tel que chapter ou subsection.
Si vous voulez personnaliser vos théorèmes au point près, l’extension ntheorem vous offrira la pléthore d’options dont vous avez besoin.

Preuves et symbole de fin de preuve

L’extension amsthm fournit aussi l’environnement de preuve proof.

       \begin{proof}
        Trivial, utilisez
       \begin{equation*}
        E=mc^2.
       \end{equation*}
       \end{proof}

La commande \qedhere permet de déplacer le symbole de fin de preuve
(CQFD) pour les cas où il finirait seul sur une ligne.

       \begin{proof}
        Trivial, utilisez
       \begin{equation*}
        E=mc^2. \qedhere
       \end{equation*}
       \end{proof}

Malheureusement, cette correction ne fonctionne pas avec l’environnement IEEEeqnarray.

       \begin{proof}
        Voici une preuve qui termine
        par un alignement d’équations.
       \begin{IEEEeqnarray*}{rCl}
        a & = & b + c \\
       & = & d + e. \qedhere
       \end{IEEEeqnarray*}
       \end{proof}

La raison provient de la structure interne d’IEEEeqnarray, qui place systéma- tiquement une colonne invisible de chaque côté de l’équation, qui contiennent seulement des espaces étirables, de façon à ce que le tableau d’équations soit correctement centré. Il faudrait en fait placer le \qedhere à l’extérieur de cet espace étirable, mais ce n’est pas possible car ces colonnes sont invisibles pour l’utilisateur.
Il y a une solution très simple : définir ces colonnes étirables explicitement !

       \begin{proof}
        Voici une preuve qui termine
        par un alignement d’équations.
       \begin{IEEEeqnarray*}{+rCl+x*}
        a & = & b + c \\
       & = & d + e. & \qedhere
       \end{IEEEeqnarray*}
       \end{proof}

Ici, le + dans {+rCl+x*} indique un espace étirable : un à gauche de l’équation qui, s’il n’était pas présent, serait ajouté d’office par IEEEeqnarray, et un à droite de l’équation. Mais cette fois à droite, après cette colonne étirable, nous ajoutons une colonne vide x, qui ne sera utilisée que sur la dernière ligne, si la commande \qedhere est utilisée. Enfin, nous ajoutons un * : c’est un espace sans épaisseur, qui empêche IEEEeqnarray d’ajouter un autre espace + indésirable.
Dans le cas d’équations numérotées, le problème est similaire. Comparons

       \begin{proof}
        Voici une preuve qui termine
        par une équation numérotée.
       \begin{equation}
        a = b + c.
       \end{equation}
       \end{proof}

avec

       \begin{proof}
        Voici une preuve qui termine
        par une équation numérotée.
       \begin{equation}
        a = b + c. \qedhere
       \end{equation}
       \end{proof}

Vous remarquerez que dans la deuxième version, qui est correcte, le symbole 2 est bien plus proche de l’équation que dans la première.

De façon analogue, la bonne manière de placer le symbole de fin de preuve à la fin d’un alignements d’équations est la suivante.

        \begin{proof}
         Voici une preuve qui termine
         par un alignement d’équations.
        \begin{IEEEeqnarray}{+rCl+x*}
         a & = & b + c \\
        & = & d + e. \\
        &&& \qedhere\nonumber
        \end{IEEEeqnarray}
        \end{proof}

par opposition à

        \begin{proof}
         Voici une preuve qui termine
         par un alignement d’équations.
        \begin{IEEEeqnarray}{rCl}
         a & = & b + c \\
        & = & d + e.
        \end{IEEEeqnarray}
        \end{proof}

Références

Lien(s) Description
Lien (externe) 1 The not so short introduction to LaTeX2e (CTAN Comprehensive TEX Archive Network)
Image

of