3
1

L'alignement des données ajoute une virgule aux nombres entiers. Comment l'éviter ?

Ouvrir dans l'éditeur
\begin{tabular}{ l| r@{,}l r@{,}l}   
\multicolumn{1}{c|}{} & \multicolumn{2}{c}{Bade-Wurtemberg} & \multicolumn{2}{c}{Nord-Pas-de-Calais-Picardie} \\
\hline    
Population (2014) & 10631278 && 5985719 &\\
Superficie (km\up{2}) & 35751 && 31721&\\
Densité & 297&37 & 188&7
\end{tabular}

Bizarre, ces « & »… Je ne voulais saisir que « & » — problème de clavier Mac, peut-être…

Posée 28 Déc '15, 19:33

fred02840's gravatar image

fred02840
4.2k17154187
Taux d'acceptation : 16%

Modifiée 28 Déc '15, 21:27

Pathe's gravatar image

Pathe ♦♦
7.4k28196245

Le titre est plutôt : « Alignement sur une virgule »…

(28 Déc '15, 20:52) fred02840 fred02840's gravatar image

Le package siunitx permet, avec son spécificateur de colonne S, d'aligner les nombres sur la virgule.

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage{siunitx}\sisetup{locale = FR}
\begin{document}
\begin{tabular}{l|S[table-format=8.2]S[table-format=7.1]}
    & {Bade-Wurtemberg} & {Nord-Pas-de-Calais-Picardie} \\\hline
    Population (2014)     & 10631278 & 5985719 \\
    Superficie (\si{km^2})& 35751    & 31721\\
    Densité               & 297,37   & 188,7
\end{tabular}
\end{document}

alt text

Lien permanent

Publiée 28 Déc '15, 20:09

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

Modifiée 28 Déc '15, 22:39

Les \multicolumn devraient être entre accolades, je pense, pour centrer les en-tête de colonnes.

(28 Déc '15, 20:41) Bernard Bernard's gravatar image

@Bernard Ah bon ? J'ignorais cette règle ! Donc, vous me dites que mes en-têtes ne sont pas centrés ?

(28 Déc '15, 20:46) unbonpetit ♦♦ unbonpetit's gravatar image

Par rapport aux nombres du reste de la colonne, visiblement non. Je pense que avez le centrage de la virgule dans la colonne, qui est le comportement par défaut, et ne convient pas ici, à mon avis.

(28 Déc '15, 22:16) Bernard Bernard's gravatar image

Mettre le \multicolumn entre accolades provoque une erreur, donc non.

Sauf erreur de ma part, la bonne solution n'est hélas pas automatique : il faut spécifier via table-format le nombre de chiffres à réserver dans chaque partie. D'ailleurs vos en-têtes ne sont pas centrées non plus, vous auriez dû écrire table-format=8.2 et table-format=7.1 pour avoir un centrage correct.

Le multicolumn semble alors inutile, il suffit de mettre l'en-tête entre accolades, comme indiqué dans le manuel de siunitx. J'édite ma réponse.

(28 Déc '15, 22:37) unbonpetit ♦♦ unbonpetit's gravatar image

Effectivement, pour mes en-têtes, j'ai vraiment compté le nombre de chiffres comme une savate! Je vais rectifier ça.

(28 Déc '15, 23:06) Bernard Bernard's gravatar image

@unbonpetit Un appel à inputenc me semblerait bienvenu pour la Densité...

(30 Déc '15, 02:50) Paul Gaborit Paul%20Gaborit's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

Avec l'extension siunitx, c'est beaucoup plus simple à faire. Je vous propose aussi une autre disposition, plus heureuse à mon gré, où les régions et länder sont mis en colonne:

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fourier, erewhon}
\usepackage{array, makecell, boldline}
\usepackage[french]{babel}
\usepackage{siunitx}
\sisetup{output-decimal-marker={,}, table-number-alignment=center}
\renewcommand\theadfont{\normalsize}

\begin{document}

\renewcommand\arraystretch{1.25}
    \begin{tabular}{lV{3}S[table-format=8.2] S[table-format=7.1] }
 & {Bade-Wurtemberg} & {Nord-Pas-de-Calais-Picardie} \\
\hline
Population (2014) & 10631278 & 5985719 \\
Superficie (\si{\km\squared}) & 35751 &31721 \\
Densité & 297,37 & 188,7
\end{tabular}
\vskip1cm
\renewcommand\arraystretch{1.25}
    \begin{tabular}{lV{3} ccS[table-format=3.2] }
 & \thead{Population \\(2014)} & \thead{Superficie \\(\si{\km\squared})} & {Densité }\\
\hline
Bade-Wurtemberg & 10631278 & 35751 & 297,37 \\
Nord-Pas-de-Calais-Picardie& 5985719 & 31721 & 188,7 \rule[-1.5ex]{0pt}{1.5ex}\\
\end{tabular}

\end{document}

alt text

Lien permanent

Publiée 28 Déc '15, 20:38

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 28 Déc '15, 23:08

Merci de cette proposition, que je note scrupuleusement. Les éléments correspondant à ces deux régions sont supérieures à trois, d'où mon choix de présentation. Le vôtre est effectivement très clair, effectivement.

(28 Déc '15, 20:49) fred02840 fred02840's gravatar image

Hum… Ça coince aux lignes \renewcommand\theadfont{\normalsize} et, consécutivement, \renewcommand\arraystretch{1.25}. Mais en validant, on peut passer outre.

(28 Déc '15, 21:08) fred02840 fred02840's gravatar image
1

La commande pour \theadfont vient du fait qu'inexplicablement, depuis quelque temps, \thead produit une taille de police plus petite. J'ai remplacé par \makecell qui n'a pas cet effet. Ce qui est utile avec makecell, c'est que si ce ne sont que quelques cellules qui posent des problèmes de largeur de tableau, on peut souvent le résoudre avec des cellules multilignes.

(28 Déc '15, 22:29) Bernard Bernard's gravatar image

Quand je compile sur mon PC (Windows 7 et MikTex 2.9), j'obtiens le message d'erreur ci-dessous et je ne sais pas comment corriger.

! Package inputenc Error: Unicode char u8:éunskiprelax not set up for use with LaTeX.

Je ne trouve pas cette extension dans le Miktex Package Manager. Comment faut-il faire ?

(30 Déc '15, 06:43) pzorba75 pzorba75's gravatar image

Quand je compile sur mon PC (Windows 7 et MikTex 2.9), j'obtiens le message d'erreur ci-dessous et je ne sais pas comment corriger. "! Package inputenc Error: Unicode char u8:éunskiprelax not set up for use wi th LaTeX.", je ne trouve pas cette extension dans le Miktex Package Manager. Comment faut-il faire?

Je n'arrive pas à supprimer cette "fausse" réponse, le site se met en erreur. Probablement réservé à un administrateur.

Lien permanent

Publiée 30 Déc '15, 06:41

pzorba75's gravatar image

pzorba75
15741522
Taux d'acceptation : 18%

Modifiée 30 Déc '15, 06:46

Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.