Comment aligner des équations ?#
Pour aligner des équations sur un signe de relation,
il est possible sous LaTeX 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 environnementstabular
etarray
, 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 avecalign
;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}