--- myst: html_meta: keywords: LaTeX, tableau, tableaux, alignement, aligner sur la virgule, aligner sur le point, aligner des nombres, séparateur décimal --- # Comment aligner des nombres sur le séparateur décimal ? ## 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} ``` ## Avec l'extension L'extension , 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} ``` ## Avec l'extension Toujours dans un tableau, en dehors du mode mathématique, l'extension , 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} ``` ## Avec l'extension L'extension , 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} ```