Comment aligner des équations ?#

Pour aligner des équations sur un signe de relation, il est possible sous d’appeler l’environnement eqnarray avec ou sans la commande lefteqn. Cependant, cette méthode n’est pas recommandée et il vaut mieux utiliser des extensions dédiées proposant plusieurs environnements mieux adaptés.

1.  Avec l’extension mathtools#

L’extension mathtools (ou amsmath) met à disposition différents environnements pour ce type de présentation.

1.1.  Les environnements classiques#

Les environnements couramment utilisés sont :

  • align pour un bloc d’équations centrées. L’alignement se fait sur le caractère &. Comme le montre l’exemple suivant avec la dernière équation présentée, il est possible de placer plusieurs équations sur une même ligne en répétant le caractère & (à l’image de ce qui se fait pour un tableau avec les environnements tabular et array, comme le montre la question « Comment construire un tableau ? ») ;

  • flalign pour un bloc d’équations non plus centrées mais alignées à gauche. Une nouvelle fois, l’alignement se fait sur le caractère &. De plus, chaque ligne de l’équation, exceptée la dernière, doit finir par un caractère & : sans cela, les équations seraient centrées, comme avec align ;

  • split pour faire un bloc d’équation au sein d’une équation. L’alignement se fait sur le caractère & et toutes les équations sont regroupées avec un seul numéro (ce qui est logique pour notre exemple ci-dessous avec l’équation 5). La question « Comment mettre en page des formules longues ? » illustre l’utilisation de cet environnement.

Ces environnements, hors split, disposent tous de versions avec numérotation par défaut et de versions sans numérotation en ajoutant * au nom de l’environnement, comme l’illustre la dernière équation ci-dessous.

\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}
Un exemple d'environnement \texttt{align} :
\begin{align}
  f(x) & = x^2 + 8x + 16 \\
       & = (x+4)^2
\end{align}
Un exemple d'environnement \texttt{flalign} :
\begin{flalign}
  f(x) & = x^2 + 8x + 16 & \\
       & = (x+4)^2
\end{flalign}
Un exemple d'environnement \texttt{split} dans un environnement 
\texttt{align} :
\begin{align}
  \begin{split}
    A & = B + C + D + E + F + G \\
      & \quad + H + I
  \end{split} \\
   F & = G + H
\end{align}
Un exemple d'environnement \texttt{align} non numéroté, avec deux 
équations en parallèle :
\begin{align*}
  f(x) & = x^2 + 8x + 16 & g(x) & = (3x)^2 - 9x^2 \\
       & = (x+4)^2       &      & = 0
\end{align*}
\end{document}

1.2.  L’environnement alignat#

Pour produire des systèmes d’équations, on peut utiliser l’environnement alignat. Toutefois, il faut noter que cet environnement est alors détourné de son utilisation normale. En effet, ce dernier est prévu pour aligner des objets différents sur des colonnes alternativement justifiées à droite puis à gauche. L’utilisation de colonnes vides permet alors de choisir la justification voulue. De plus, l’utilisation de {} permet d’obtenir des espacements « normaux ».

\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}
Voici quelques exemples :
\begin{alignat}{2}
  x   & = y   &&+ z   \\
  x_1 & = y_1 &&+ z_1
\end{alignat}

\begin{alignat}{5}
  10a& ={}&  3x&& 3y& +{}& 18z&&  2w&  \\
   6a& ={}& 17x&&   & +{}&  5z&& 19w&
\end{alignat}
\end{document}

2.  Avec l’extension eqnarray#

L’environnement equationarray de l’extension eqnarray associe les environnements eqnarray et array. Il n’est pas limité en nombre de colonnes.

\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{eqnarray}

\begin{document}
Voici quelques exemples :
\begin{equationarray}{ccccc}
  10a & = & 3x  3y & + & 18z  2w \\
   6a & = & 17x    & + &  5z 19w
\end{equationarray}
\end{document}