Comment aligner des nombres sur le séparateur décimal ?#
1. Avec un tableau#
On peut tout d’abord tricher en utilisant un tableau où une virgule sert de séparateur de colonnes. Voici un exemple de cette méthode en mode mathématique avec l’environnement array
:
\documentclass{article}
\usepackage{lmodern} % Caractères plus lisibles
\pagestyle{empty} % N'affiche pas de numéro de page
\begin{document}
\[
\begin{array}{|r @{,} l|}
1&2 \\
233&45 \\
x&y \\
\end{array}
\]
\end{document}
2. Avec l’extension dcolumn#
L’extension dcolumn, de David Carlisle, permet d’aligner les nombres d’un tableau par rapport à leur séparateur décimal. Elle met à cet effet un type de colonne D
qui demande trois paramètres à savoir D{⟨séparateur du code⟩}{⟨séparateur affiché⟩}{⟨nombre de décimales⟩}
:
le
⟨séparateur du code⟩
LaTeX comme le⟨séparateur affiché⟩
dans le document final permettent de gérer les variantes linguistiques que sont la virgule, le point ou tout autre symbole vous semblant utile ;le
⟨nombre de décimales⟩
permet de bien définir l’espace qu’occupe le nombre : des nombres avec plus de décimales iront donc déborder dans les autres colonnes.
Voici un exemple avec l’environnement array
(qu’on pourrait faire aussi avec l’environnement tabular
) pour du français avec deux décimales, en créant au passage notre propre type de colonne basé sur D avec \newcolumntype
:
\documentclass{article}
\usepackage{lmodern} % Caractères plus lisibles
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{dcolumn}
\newcolumntype{,}{D{,}{,}{2}} % Notre style de colonne "," basé sur "D"
\begin{document}
\[
\begin{array}{|,|}
1,2 \\
233,45 \\
x,y \\
10
\end{array}
\]
\end{document}
3. Avec l’extension siunitx#
Toujours dans un tableau, en dehors du mode mathématique, l’extension siunitx, de Joseph Wright, met à disposition le style de colonne S
, aligné sur le marqueur décimal mais aussi les milliers (espace en français, virgule en anglais), comme le montre l’exemple suivant.
\documentclass{article}
\usepackage{lmodern} % Caractères plus lisibles
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage[locale=FR]{siunitx} % Pour du français
\begin{document}
\begin{tabular}{lS}
A & 1,23 \\
B & 123456,123456 \\
\end{tabular}
\end{document}
4. Avec l’extension numprint#
L’extension numprint, d’Harald Harders, fournit des types de colonnes n
et N
qui permettent d’aligner les valeurs sur le séparateur décimal (le premier pour un tableau mathématique, le second pour un tableau textuel). Ils prennent tous les deux paramètres n{⟨nombre de chiffre avant la virgule⟩}{⟨nombre de chiffre après la virgule⟩}
. En voici un exemple :
\documentclass{article}
\usepackage{lmodern} % Caractères plus lisibles
\pagestyle{empty} % N'affiche pas de numéro de page
\usepackage{numprint}
\begin{document}
\[
\begin{array}{|n{3}{2}|}
1,2 \\
233,45 \\
%x,y \\ % Restituerait "x 0,0 y" sinon
10
\end{array}
\]
\end{document}