Formater les colonnes avec tabular
-
bulledesavon
- Utilisateur confirmé

- Messages : 48
- Inscription : lundi 13 décembre 2021, 16:12
- Statut actuel : Autre
Formater les colonnes avec tabular
Je souhaiterais centrer le texte dans les cellules d'un tableau tabular tout en ayant une longueur de colonne définie.
J'utilise actuellement p{1cm} car c{1cm} ne fonctionne pas.
Quelle est la bonne commande ?
Merci.
-
gigiair
- Utilisateur chevronné

- Messages : 2834
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: formater les colonnes avec tabular
Code : Tout sélectionner
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{|r|>{\centering}p{1cm}|l|}
a&b&c\\
66666&11111&99999
\end{tabular}
\end{document}LaTeXien migrateur.
-
bulledesavon
- Utilisateur confirmé

- Messages : 48
- Inscription : lundi 13 décembre 2021, 16:12
- Statut actuel : Autre
Re: formater les colonnes avec tabular
Code : Tout sélectionner
>Code : Tout sélectionner
|r|>{centering}p{1cm}Par ailleurs si on a 12 colonnes que l'on veut centrer, y a t il une commande pour dire que l'on répète 12 fois
Code : Tout sélectionner
{centering}p{1cm}Merci.
-
gigiair
- Utilisateur chevronné

- Messages : 2834
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: formater les colonnes avec tabular
C'est la syntaxe qui a été choisie par l'auteur du package array. Celà évoque l'insertion de la commande \centering dans la cellule, j'imagine.bulledesavon a écrit : mercredi 17 août 2022, 07:24 Pourquoi met-on le symboledans la première ligne de commandeCode : Tout sélectionner
>?Code : Tout sélectionner
|r|>{centering}p{1cm}
Comme pour toutes les répétitions :bulledesavon a écrit : mercredi 17 août 2022, 07:24Par ailleurs si on a 12 colonnes que l'on veut centrer, y a t il une commande pour dire que l'on répète 12 foisCode : Tout sélectionner
{centering}p{1cm}
Code : Tout sélectionner
*{12}{>{\\centering}p{1cm}}Code : Tout sélectionner
\begin{tabular}{l*{3}{>{\centering}p{1cm}}r}
a&b&c&d&e\\
66666&11111&11111&11111&99999
\end{tabular}LaTeXien migrateur.
-
jcs
- Utilisateur chevronné

- Messages : 1390
- Inscription : lundi 24 novembre 2008, 22:17
- Statut actuel : Autre
Re: formater les colonnes avec tabular
Une petite question, il me semblait qu'il fallait ajouter \arraybackslash pour que \\ puisse signifier la fin d'une ligne du tableau
sinon, il fallait terminer la ligne par \tabularnewline
Cela a-t-il changé ?
Merci pour la réponse
-
gigiair
- Utilisateur chevronné

- Messages : 2834
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: formater les colonnes avec tabular
Le problème est que le mécanisme de >{} modifie la définition de la macro \\\\ de fin de ligne s'il opère dans la dernière colonne.
la macro \\arraybackslash la redéfinit comme \tabularnewline. Sa définition est
Code : Tout sélectionner
\def\arraybackslash{\let\\\tabularnewline}Les deux façons de faire suivantes sont donc équivalentes :
Code : Tout sélectionner
\begin{tabular}{>{\centering}p{1cm}}
a\tabularnewline
111
\end{tabular}
\begin{tabular}{>{\centering\arraybackslash}p{1cm}}
a\\
111
\end{tabular}LaTeXien migrateur.
-
bulledesavon
- Utilisateur confirmé

- Messages : 48
- Inscription : lundi 13 décembre 2021, 16:12
- Statut actuel : Autre
Re: formater les colonnes avec tabular
Code : Tout sélectionner
\begin{tabular}{*{12}{>{\centering}p{1cm}}}
c & d & u & c & d & u &c & d & u &c & d & u
\end{tabular}
pour avoir des traits verticaux entre chaque colonne. J'ai essayé plusieurs emplacements.barres |
Par exemple
Code : Tout sélectionner
{|*{12}{>{\centering}p{1cm}}|}Code : Tout sélectionner
{*{12}{|>{\centering}p{1cm}|}}Merci.
-
gigiair
- Utilisateur chevronné

- Messages : 2834
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: formater les colonnes avec tabular
Mais si l'on y tient c'est :
Code : Tout sélectionner
\begin{tabular}{|*{12}{>{\centering}p{1cm}|}}
c & d & u & c & d & u &c & d & u &c & d & u
\end{tabular}Voir par exemple
Code : Tout sélectionner
\documentclass[french]{article}
\usepackage[showframe]{geometry}
\usepackage{array}
\begin{document}
%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
}\noindent{
\begin{tabular}{|*{12}{>{\centering}p{1cm}|}}
c & d & u & c & d & u &c & d & u &c & d & u
\end{tabular}
%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
\end{document}
LaTeXien migrateur.
-
bulledesavon
- Utilisateur confirmé

- Messages : 48
- Inscription : lundi 13 décembre 2021, 16:12
- Statut actuel : Autre
Re: formater les colonnes avec tabular
Par ailleurs j'ai un problème avec le hline "du bas", les deux premiers hline fonctionnent mais le troisième pause problème.
Code : Tout sélectionner
\begin{tabular}{|*{12}{>{\centering}p{1cm}|}}
\hline
\multicolumn{3}{|c|}{Classe des milliards} & \multicolumn{3}{c|}{Classe des millions} & \multicolumn{3}{c|}{Classe des mille} & \multicolumn{3}{c|}{classe des unités simples}\\
\hline
c & d & u & c & d & u &c & d & u &c & d & u \\
\hline
\end{tabular}
! Misplaced \noalign.
\hline ->\noalign
-
gigiair
- Utilisateur chevronné

- Messages : 2834
- Inscription : samedi 08 juillet 2006, 20:56
- Localisation : Saint Bonnet Elvert
Re: formater les colonnes avec tabular
La syntaxe des répétitions estbulledesavon a écrit : jeudi 18 août 2022, 11:00 C'est surprenant d'avoir la deuxième barre avant l'avant dernière accolade alors que la première barre est après la première accolade. C'est contre intuitif (pour moi).
Code : Tout sélectionner
*{N}{<code à répéter>}À quoi ça sert que les intervenants de Mathematex ils se décarcassent si les auteurs des requêtes ne les lisent pas ?bulledesavon a écrit : jeudi 18 août 2022, 11:00 Par ailleurs j'ai un problème avec le hline "du bas", les deux premiers hline fonctionnent mais le troisième pause problème.Quand je mets le troisième hline j'obtiens le message d'erreur suivant :Code : Tout sélectionner
\begin{tabular}{|*{12}{>{\centering}p{1cm}|}} \hline \multicolumn{3}{|c|}{Classe des milliards} & \multicolumn{3}{c|}{Classe des millions} & \multicolumn{3}{c|}{Classe des mille} & \multicolumn{3}{c|}{classe des unités simples}\\ \hline c & d & u & c & d & u &c & d & u &c & d & u \\ \hline \end{tabular} [\quote]Code : Tout sélectionner
! Misplaced \noalign. \hline ->\noalign
Voir la remarque de jcsdans ce même fil, et ma réponse. Il faut
- soit remplacer \\\\ en fin de ligne de tableau par \\tabularnewline
- soit ajouter \\arraybackslash en fin de descriptif des formats de colonne.
LaTeXien migrateur.
-
bulledesavon
- Utilisateur confirmé

- Messages : 48
- Inscription : lundi 13 décembre 2021, 16:12
- Statut actuel : Autre
Re: formater les colonnes avec tabular
-
jmd
- Utilisateur confirmé

- Messages : 82
- Inscription : samedi 06 février 2016, 11:08
Re: formater les colonnes avec tabular
Vous devriez jeter un oeil au package MAKECELL...