Aligner un ensemble d’équations sous LaTeX

Que ce soit pour introduire un système d’équations ou pour développer une démonstration mathématique, l’alignement des équations est parfois complexe dès qu’on s’applique à obtenir quelque-chose d’élégant. Ce billet est donc un aperçu de certaines configurations possibles.

Note

Le package amsmath est requis pour les environnements mathématiques multiples. De plus, afin de gagner (un peu) en clarté et en compacité, les macros suivantes ont été utilisées :

\newcommand{\E}{\mathbf{E}}
\newcommand{\B}{\mathbf{B}}
\newcommand{\J}{\mathbf{J}}
\newcommand{\diff}{\mathrm{d}}
\newcommand{\ddt}[1]{\frac{\partial #1}{\partial t}}
\newcommand{\dS}{\diff\mathbf{S}}
\newcommand{\dl}{\diff\boldsymbol{\ell}}
\newcommand{\iintS}{\iint_{\Sigma}}

Alignement sur une seule colonne

Numéroter séparément chaque équation

On peut utiliser l’environnement align pour écrire plusieurs équations alignées horizontalement. Comme dans les tableaux, les esperluettes (&) servent à définir où doit se faire l’alignement, tandis que « \\ » indique une nouvelle ligne :

\begin{align}
	\nabla\cdot \E	&=\frac{\rho}{\varepsilon_0}\\
	\nabla\cdot \B	&=0\\
	\nabla\times \E	&=-\frac{\partial \B}{\partial t}\\
	\nabla\times \B	&=\mu_0\left(\J+\varepsilon_0\ddt{\E}\right)
\end{align}

Numéroter un système comme une unique équation

Le plus simple est d’utiliser l’environnement aligned, qui fonctionne exactement comme align, mais qui doit être compris dans un environnement mathématique (ex : equation) :

\begin{equation}
	\left\lbrace
		\begin{aligned}
			\nabla\cdot \E	&=\frac{\rho}{\varepsilon_0}\\
			\nabla\cdot \B	&=0\\
			\nabla\times \E	&=-\frac{\partial \B}{\partial t}\\
			\nabla\times \B	&=\mu_0\left(\J+\varepsilon_0\ddt{\E}\right)
		\end{aligned}
	\right.
\end{equation}

Numérotation des sous-équations

L’environnement subequations permet de modifier localement le système de numérotation des équations, sous forme de « sous-équations » (un peu comme subfig avec les figures) :

\begin{subequations}
	\begin{align}
		\nabla\cdot \E	&=\frac{\rho}{\varepsilon_0}\\
		\nabla\cdot \B	&=0\\
		\nabla\times \E	&=-\frac{\partial \B}{\partial t}\\
		\nabla\times \B	&=\mu_0\left(\J+\varepsilon_0\ddt{\E}\right)
	\end{align}
\end{subequations}

Alignement multiple

Il est possible de spécifier plusieurs colonnes dans le jeu d’équations. La règle étant que la première colonne sera alignée à droite, la seconde à gauche, la troisième à droite etc. Si un alignement ne vous convient pas, il suffit de définir une colonne vide (&& au lieu de &) pour inverser la direction d’alignement.

Avec l’environnement align

\begin{align}
	\nabla\times 	&\B	&=&\mu_0\Big(	&&\J	&+&\varepsilon_0	&&\frac{\partial \E}{\partial t}\Big)\\
	\oint_{\partial \Sigma}	&\B\cdot\diff\boldsymbol{\ell}	&=&\mu_0\Big(\iintS	&&\J\cdot\dS	&+&\varepsilon_0\frac{\diff}{\diff t}\iint_\Sigma &&\E\cdot\dS\Big)
\end{align}


Vous noterez que dans ce cas, les commandes \left( et \right) ont été remplacées par \Big( et \Big). Une paire left-right ne peut pas s’étendre sur plusieurs colonnes ; c’est donc à nous d’évaluer la taille à donner aux parenthèses.

Avec l’environnement alignat

Comme vous pouvez le constater dans l’exemple précédent,align rajoute des espaces à chaque colonne, ce qui peut être assez inélégant. Une solution consiste à utiliser plutôt l’environnement alignat, qui s’utilise de la même façon, mais il faut alors préciser le nombre maximal de colonnes :

\begin{alignat}{5}
	\nabla\times 	&\B	&=&\mu_0\Big(	&&\J	&+&\varepsilon_0	&\frac{\partial \E}{\partial t}	&\Big)\\
	\oint_{\partial \Sigma}	&\B\cdot\diff\boldsymbol{\ell}	&=&\mu_0\Big(\iintS	&&\J\cdot\dS	&+&\varepsilon_0\frac{\diff}{\diff t}\iint_\Sigma	&\E	&\cdot\dS\Big)
\end{alignat}

Ajouter des connecteurs entre les équations

L’environnement est alignat peut s’utiliser pour ajouter des connecteurs logiques entre les différentes lignes. Exemple :

\begin{alignat}{6}
	&	&\nabla\times	&\B	&=&\mu_0\Big(	&&\J	&+&\varepsilon_0	&\frac{\partial \E}{\partial t}	&\Big)\\
	&\implies\qquad	&\oint_{\partial \Sigma}&\B\cdot\diff\boldsymbol{\ell}	&=&\mu_0\Big(\iintS	&&\J\cdot\dS	&+&\varepsilon_0\frac{\diff}{\diff t}\iintS	&\E	&\cdot\dS\Big)
\end{alignat}

Ne pas numéroter les équations

Les environnement étoilés

Les environnement mathématiques étoilés (equation*, align* et alignat*) fonctionnent exactement comme leurs homologues non étoilés, mais sans numéroter les équations.

Numéroter certaines équations uniquement

Si vous souhaitez qu’une ligne particulière ne soit pas numérotée, vous pouvez utiliser la commande \notag :

\begin{alignat}{6}
	&&\nabla\times	&\B	&=&\mu_0\Big(	&&\J	&+&\varepsilon_0	&\frac{\partial \E}{\partial t}	&\Big) \notag\\
	&\implies\qquad	&\oint_{\partial \Sigma}&\B\cdot\diff\boldsymbol{\ell}	&=&\mu_0\Big(\iintS	&&\J\cdot\dS	&+&\varepsilon_0\frac{\diff}{\diff t}\iintS	&\E	&\cdot\dS\Big)
\end{alignat}

Pour aller plus loin

D’autre solutions existent pour les équations sur plusieurs lignes (cases, split etc.) etc. Vous pouvez consulter le Wikibook de mathématique avancée.