IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tableaux - Graphiques - Images - Flottants Discussion :

Centrer texte verticalement dans tableau de colonne de même largeur


Sujet :

Tableaux - Graphiques - Images - Flottants

  1. #1
    Invité
    Invité(e)
    Par défaut Centrer texte verticalement dans tableau de colonne de même largeur
    Bonsoir,
    Je cherche à faire une table d'addition (esthétique et lisible) dans laquelle les nombres seraient centrés horizontalement et verticalement dans des colonnes de même largeur, quel que soit le nombre contenu dans la cellule.

    J'ai lu beaucoup de forums et j'ai tenté de ne pas me perdre entre les différents package (tabular, tabularx, array) et je n'ai pas réussi à réaliser une table facile à lire et esthétique.

    Actuellement, elle ressemble à cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    \begin{tabular}{|>{\columncolor{gray}} c || c | c | c | c | c | c | c | }
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{gray}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    Les nombres sont alignés en haut des cellules et les colonnes contenant des nombres à 2 chiffres sont plus large que les autres.
    Je ne suis pas arrivé à déterminer quel est le package le plus adapté (tabular ? tabularx? array ? un autre ?) pour faire cela, ni comment le faire le plus simplement possible.

    Quelqu'un a-t-il une piste ?
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonsoir,

    Je vous conseille de regarder l'extension tabu et sa commande \begin{tabu}{|X[cm]|} (exemple pour une colonne) qui devrait répondre à votre demande.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Winnt Voir le message
    Bonsoir,

    Je vous conseille de regarder l'extension tabu et sa commande \begin{tabu}{|X[cm]|} (exemple pour une colonne) qui devrait répondre à votre demande.
    Merci beaucoup,
    D'après ce que j'ai compris, cet environnement se greffe au dessus des autres. Les différents environnements se complètent et semblent pouvoir s'utiliser en parallèle.
    • L'environnement «array» vient d'être mis à jour il y a moins de 15 jours (le 12 avril 2015).
    • L'environnement «tabularx» a été mis à jour en octobre 2014.

    Donc, à mon avis, il est nécessaire que je comprenne bien les autres pour pouvoir résoudre mon problème avec «tabu».
    Lorsque j'aurai pigé le B.A.BA avec les autres, alors je pourrais l'utiliser.

    En lisant la doc de «tabu», je m'aperçois du chemin qu'il me reste à parcourir avant de pouvoir m'en servir !

    Avec «tabular», j'ai trouvé ce code
    Pour avoir du texte centré verticalement et horizontalement, il faut utiliser

    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
    dans la section «Alignement du texte» de cette page http://fr.wikibooks.org/wiki/LaTeX/Tableaux.

    Je l'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    \newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
    \begin{tabular}{|>{\columncolor{gray}} M{0.6cm} || *{7}{M{0.6cm}} | }
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{gray}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    Mais cela n'a pas centré verticalement les nombres. De plus, des traits de séparation ont disparu dans les zones grisées comme on peut le voir sur cette capture d'écran :

    Nom : table.jpg
Affichages : 3639
Taille : 30,1 Ko

    En outre, cette façon de faire exige que la largeur des cellules soit fixée d'avance et non pas calculée automatiquement en fonction de la plus large.

    Je continue mon exploration des tableaux qui est bien compliquée !

  4. #4
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Cela peut se faire avec tabular en utilisant cellspace qui permet de définir l'espace au dessus et en dessous du texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    \documentclass[10pt,a4paper]{article}
    \usepackage{cellspace}
    \usepackage{colortbl,xcolor}
    \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}% colonne de type p mais centrée
     
    \cellspacetoplimit 4pt %espace au dessus du texte
    \cellspacebottomlimit 4pt  %espace en dessous du texte
    \begin{document}
    \begin{tabular}{|>{\columncolor{black!10}} S{P{0.5cm}} || *7{S{P{0.5cm}}|}}
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{black!10}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    \end{document}

  5. #5
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    Je viens d'être devancé de quelques secondes

    De plus, des traits de séparation ont disparu dans les zones grisées comme on peut le voir sur cette capture d'écran :
    Non il s'agit juste d'un defaut d'affichage du lecteur de PDF (acrobat je suppose), si tu zommes, ces traits "reapparaissent". Dans tous les cas tu n'auras pas ce problème à l'impression.

  6. #6
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonjour,

    Citation Envoyé par AndréC
    Donc, à mon avis, il est nécessaire que je comprenne bien les autres pour pouvoir résoudre mon problème avec «tabu».
    Non ce n'est pas tout à fait cela.

    Tabu étend certaines fonctionnalité des extensions array, tabularx...
    Vous pouvez donc utiliser tabu en lieu et place de celles-ci.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Winnt Voir le message
    Bonjour,



    Non ce n'est pas tout à fait cela.

    Tabu étend certaines fonctionnalité des extensions array, tabularx...
    Vous pouvez donc utiliser tabu en lieu et place de celles-ci.
    Et comme il « étend certaines fonctionnalités », je dois apprendre les fonctionnalités de base des autres pour bien l'utiliser, non ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    Je viens d'être devancé de quelques secondes


    Non il s'agit juste d'un defaut d'affichage du lecteur de PDF (acrobat je suppose), si tu zommes, ces traits "reapparaissent". Dans tous les cas tu n'auras pas ce problème à l'impression.
    En effet, en zoomant avec adobe reader (c'est bien celui-là) le problème a disparu.
    Les autres lecteurs de pdf les affichent-ils mieux ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    Cela peut se faire avec tabular en utilisant cellspace qui permet de définir l'espace au dessus et en dessous du texte.
    J'ai ajouté ceci au préambule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    \usepackage{cellspace}
    \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}% colonne de type p mais centrée
    \cellspacetoplimit 4pt %espace au dessus du texte
    \cellspacebottomlimit 4pt  %espace en dessous du texte
    Puis le même code que vous pour la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    \begin{tabular}{|>{\columncolor{black!10}} S{P{0.5cm}} || *7{S{P{0.5cm}}|}}
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{black!10}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    Et j'obtiens une erreur que je n'ai pas encore comprise :
    Package array Error: Illegal pream-token (P{0.5cm}): `c' used.
    See the array package documentation for explanation.
    Type H <return> for immediate help.
    J'utilise TexMaker et MikTex 2.9 sur Windows 7.

  10. #10
    Invité
    Invité(e)
    Par défaut
    L'erreur vient de « S{P{0.5cm}} » car en remplaçant ce bout de code par « P{0.6cm} », il n'y a pas d'erreur de compilation, mais pas de centrage vertical non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}% colonne de type p mais centrée
    \begin{tabular}{|>{\columncolor{gray}} P{0.6cm} || *{7}{P{0.6cm}|} }
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{gray}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    Est-ce une erreur de MikTeX 2.9 ?

  11. #11
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    S{P{0.5cm} est la façon de d'écrire pour cellspace, le S devant le descripteur de colonne permet de modifier l'espace entre le texte et le filet vertical. Ici en fixant les deux paramètres à la même valeur on va centrer les cellules verticalement.
    Pour ton soucis; le code que j'ai posté compile-t-il tout seul dans un fichier à part. Il faudrait fournir un ecm afin que l'on puisse voir le problème, il se peut qu'il y ai une interaction avec une autre extension. (array est-elle chargée ? avant ou après la redéfinition de la colonne p ?)

  12. #12
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par -Nikopol- Voir le message
    S{P{0.5cm} est la façon de d'écrire pour cellspace, le S devant le descripteur de colonne permet de modifier l'espace entre le texte et le filet vertical. Ici en fixant les deux paramètres à la même valeur on va centrer les cellules verticalement.
    Oui, j'ai regardé la doc, et c'est bien pour cela que j'ai cru que l'erreur venait de MikTeX.
    Citation Envoyé par -Nikopol- Voir le message
    Pour ton soucis; le code que j'ai posté compile-t-il tout seul dans un fichier à part. Il faudrait fournir un ecm afin que l'on puisse voir le problème, il se peut qu'il y ai une interaction avec une autre extension. (array est-elle chargée ? avant ou après la redéfinition de la colonne p ?)
    En effet, j'ai fait des essais en supprimant des packages chargés et sans « siunitix » cela fonctionne très bien.
    Il y a conflit entre « cellspace » et « siunitix » !
    J'ai de la chance, je n'utilise pas siunitx dans ce document ! Ouf !

    En regardant la doc de « siunitx », on peut lire à la page 13 :
    4.6 Tabular material
    Aligning numbers in tabular content is handled by a new column type, the S column.
    This new column type can align material using a number of different strategies, with
    the aim of flexibility of output without needing to alter the input. The method used as
    standard is to place the decimal marker in the number at the centre of the cell and to
    align the material appropriately
    Ainsi, « S » est utilisé par les deux package, donc nécessairement, cela bugue !

    La doc de « cellspace » à la page 4 dit ceci :
    tabls is a package that does a similar job than cellspace.
    Reste à vérifier si avec le package « tabls » il y a conflit ou non !

    Je marque le sujet comme résolu.
    Merci encore !
    Dernière modification par Invité ; 21/04/2015 à 17h31.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par AndréC Voir le message
    Reste à vérifier si avec le package « tabls » il y a conflit ou non !
    !
    Je viens de faire le test, en chargeant le package « tabls », il y a une erreur sur le code original qui n'existe pas lorsque l'on ne le charge pas.
    J'ai fait un ECM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    \documentclass[a4paper, 11pt,landscape]{article}  % Présentation générale et mise en page
     
    \usepackage[T1]{fontenc}
    \usepackage[UTF8]{inputenc}             % Encodage des caractères accentués
    \usepackage{amsmath, amsfonts, amssymb} % Spécial maths 
    \usepackage{colortbl}
    \usepackage{xcolor}
     
    \usepackage{tabls}
     
    \begin{document}
    %\setlength\extrarulesep{4pt}  %espace autour des lignes 
    %\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}% colonne de type p mais centrée
    %\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
    \begin{tabular}{|>{\columncolor{gray}} c || c | c | c | c | c | c | c | }
    	\hline
    	5 & 5 & 6 & 7 & 8 & 9 & 10 & 11\\
    	\hline
    	4 & 4 & 5 & 6 & 7  & 8 & 9 & 10\\
    	\hline
    	3 & 3 & 4 & 5 & 6  & 7  & 8 & 9\\
    	\hline
    	2 & 2 & 3 & 4  & 5  & 6  & 7 & 8\\
    	\hline
    	1 & 1 & 2 & 3 & 4  & 5  & 6  & 7\\
    	\hline
    	0 & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
    	\hline\hline
      	\rowcolor{gray}+ & 0 & 1 & 2  & 3  & 4  & 5  & 6\\
      \hline
     \end{tabular}
    \end{document}
    Dernière modification par Invité ; 21/04/2015 à 20h04.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Orienter le texte verticalement dans tableau dynamique
    Par medhan dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 23/03/2014, 14h38
  2. Centrer un texte verticalement dans une image
    Par Jynno22 dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/12/2012, 22h04
  3. Centrer du texte verticalement dans une div
    Par piotrr dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 23/04/2009, 14h47
  4. Réponses: 2
    Dernier message: 20/11/2006, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo