Tableau et alignement

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Tableau et alignement

Message par Daver10Manon »

Bonjour à tous,
Je suis assez novice en LaTeX et j'aurais besoin de votre aide. J'essaie de créer un tableau et j'aimerais que la deuxième ligne soit centrée horizontalement et alignée en bas verticalement. De plus, j'aimerais que la première ligne de mon tableau ait des caractères plus gros que le reste. C'est un peu du bricolage , et cela m'a pris un temps fou mais je vous joins le fichier que j'ai réussi à faire pour l'instant.

Code : Tout sélectionner

\documentclass[11pt,fleqn]{book}
\usepackage{booktabs} % Required for nicer horizontal rules in tables
\usepackage{tabularx,array,multirow,graphicx}
\begin{document}

\begin{table}[h]
\begin{tabular}{|c|c|c||c|c|c||c|c|c||c|c|c|}
\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}                  
\\ \hline
\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Centaines de milliards}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Dizaines de milliards}}  &\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Unités de milliards}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Centaines de millions}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Dizaines de millions}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Unités de millions}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Centaines de mille}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Dizaines de mille}}  &\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Unités de mille}}  &\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Centaines}}  &\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Dizaines}}&\multirow{4}{1cm}{\rotatebox[origin=c]{90}{Unités}}
 
\\ &&&&&&&&&&&\\&&&&&&&&&&&\\&&&&&&&&&&&\\ &&&&&&&&&&&\\ &&&&&&&&&&&\\ &&&&&&&&&&&\\ &&&&&&&&&&&\\ &&&&&&&&&&&\\ &&&&&&&&&&&\\ 
\hline
&&&&&&&&&&&\\&&&&&&&&&&&\\ \hline

\end{tabular}
\end{table}
\end{document}
Merci beaucoup pour l'aide que vous pourrez m'apporter.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 818
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Aide Tableau

Message par un bon petit »

Une façon de faire :

Code : Tout sélectionner

\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array,graphicx,cellspace}
\newcommand*\rtxt[1]{\hbox to.8cm{\hss\rotatebox[origin=bl]{90}{#1}\hss}}
\newcommand*\classe[2]{\multicolumn{3}{#1}{\large#2}}
\cellspacetoplimit=5pt
\cellspacebottomlimit=5pt
\begin{document}
\begin{tabular}{*4{|*3{Sc|}}}
	\hline
		\classe{|Sc||}{Classe des milliards}&
		\classe{Sc||}{Classe des millions}&
		\classe{Sc||}{Classe des mille}&
		\classe{Sc|}{Classe des unités}
	\\\hline
		\rtxt{Centaines de milliards}&
		\rtxt{Dizaines de milliards}&
		\rtxt{Unités de milliards}&
		\rtxt{Centaines de millions}&
		\rtxt{Dizaines de millions}&
		\rtxt{Unités de millions}&
		\rtxt{Centaines de mille}&
		\rtxt{Dizaines de mille}&
		\rtxt{Unités de mille}&
		\rtxt{Centaines}&
		\rtxt{Dizaines}&
		\rtxt{Unités}
	\\\hline
		&&&&&&&&&&&
	\\\hline
\end{tabular}
\end{document}

balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3970
Inscription : mercredi 02 janvier 2008, 23:18

Re: Aide Tableau

Message par balf »

Je peux vous proposer ceci, qui utilise, outre les extensions que vous avez chargées, hhline, tabularx et makecell, ainsi que geometry, poiur avoir des marges plus décentes (ceci suppose bien entendu, que vous n'utilisiez pas de notes des marge):

Code : Tout sélectionner

    \documentclass[11pt,fleqn]{book}
    \usepackage{booktabs} % Required for nicer horizontal rules in tables
    \usepackage{geometry} 
    \usepackage{tabularx, array, multirow, graphicx}
    \usepackage{rotating, makecell} 
    \usepackage{hhline}
    \newcolumntype{C}{>{\centering\arraybackslash}X}

    \begin{document}

    \begin{table}[!ht]\centering
    \setlength{\extrarowheight}{3pt}
    \setlength{\tabcolsep}{4pt}\setlength{\rotheadsize}{2.1cm}\renewcommand{\cellset}{\renewcommand{\arraystretch}{0.7}}
    \setlength{\doublerulesep}{1ex}
    \begin{tabularx}{\textwidth}{*{4}{|C|C|C|}}
    \multicolumn{12}{c}{\large\bfseries Classe des} \\
    \cmidrule(l{-0.6em}){2-11}
    \multicolumn{3}{>{\large\bfseries}c}{milliards} & \multicolumn{3}{>{\large\bfseries}c}{millions}&
    \multicolumn{3}{>{\large\bfseries}c}{milliers}&
    \multicolumn{3}{>{\large\bfseries}c}{unités}
    \\[0.5ex] \hhline{*{4}{|-|-|-|}}
    \rotcell{Centaines\\ de milliards} & \rotcell{Dizaines\\ de milliards} & \rotcell{Unités \\de milliards} & \rotcell{Centaines\\ de millions} & \rotcell{Dizaines\\ de millions} & \rotcell{Unités\\ de millions} & \rotcell{Centaines\\ de mille} & \rotcell{Dizaines\\ de mille} & \rotcell{Unités\\ de mille} & \rotcell{Centaines} & \rotcell{Dizaines} & \rotcell{Unités} \\
     \hhline{*{4}{|-|-|-|}}
     & & & & & & & & & & & \\
    \hhline{*{4}{|-|-|-|}}
    \end{tabularx}
    \end{table}

    \end{document} 
B. A.
aidetableau.pdf
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

Merci infiniment pour vos réponses. Les deux codes proposés sont différents mais me plaisent tous les deux. Je vais tenter de les analyser pour voir comment vous avez procédé afin de m'améliorer en LaTeX.

Vous m'êtes d'une grande aide, et ça donne envie de s'accrocher!!!

Manon :D :D

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2578
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Aide Tableau

Message par gigiair »

un bon petit a écrit :Une façon de faire :

Code : Tout sélectionner

\documentclass{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array,graphicx,cellspace}
\newcommand*\rtxt[1]{\hbox to.8cm{\hss\rotatebox[origin=bl]{90}{#1}\hss}}
\newcommand*\classe[2]{\multicolumn{3}{#1}{\large#2}}
\cellspacetoplimit=5pt
\cellspacebottomlimit=5pt
\begin{document}
\begin{tabular}{*4{|*3{Sc|}}}
	\hline
		\classe{|Sc||}{Classe des milliards}&
		\classe{Sc||}{Classe des millions}&
		\classe{Sc||}{Classe des mille}&
		\classe{Sc|}{Classe des unités}
	\\\hline
		\rtxt{Centaines de milliards}&
		\rtxt{Dizaines de milliards}&
		\rtxt{Unités de milliards}&
		\rtxt{Centaines de millions}&
		\rtxt{Dizaines de millions}&
		\rtxt{Unités de millions}&
		\rtxt{Centaines de mille}&
		\rtxt{Dizaines de mille}&
		\rtxt{Unités de mille}&
		\rtxt{Centaines}&
		\rtxt{Dizaines}&
		\rtxt{Unités}
	\\\hline
		&&&&&&&&&&&
	\\\hline
\end{tabular}
\end{document}
Je trouve cette solution excellente mais je m'interroge sur le choix de 0.8cm ({\hbox to.8cm). D'où provient le choix de cette valeur ? J'ai essayé d'autres valeurs qui donnent des résultats assez catastrophiques.
JJR.
LaTeXien migrateur.

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

Coucou la compagnie!

J'ai continué mon travail jusqu'à obtenir un joli tableau de numération!
Ca m'a pris beaucoup de temps mais une fois que l'on comprend le système ça va beaucoup plus vite.
J'ai même réussi à ajouter de jolies couleurs :D :D
Tout ça grâce à votre aide!

Je vous joins donc mon code final.

Code : Tout sélectionner

\documentclass[12pt,fleqn]{book} 
\usepackage[top=2cm,bottom=2cm,left=1cm,right=1cm,headsep=10pt,a4paper]{geometry} % Page margins
\usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault}
\usepackage[dvipsnames,table]{xcolor}
\definecolor{green}{RGB}{0,115,0}

\usepackage{rotating,booktabs}% Pour les tableaux

\usepackage{booktabs} % Required for nicer horizontal rules in tables

%% macro ligne épaisse
\newcommand\Ehline{\noalign{%
\global\savedwidth%
\arrayrulewidth\global\arrayrulewidth 1.5pt}
\hline \noalign{%
\global\arrayrulewidth \savedwidth}}
\newcolumntype{E}{!{\vrule width 1.5pt}}
\newlength\savedwidth
\renewcommand{\arraystretch}{1.6}
%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{array,graphicx,cellspace}

\newcommand*\rtxt[2]{\rule{0.4cm}{0pt}
\cellcolor{#1!3}
\begin{rotate}{90}
    \large\textcolor{#1}{#2}
\end{rotate}\rule{0.4cm}{0pt} }

\newcommand*\classe[3]{
\multicolumn{3}{#1}{\cellcolor{#2!20}\textcolor{#2}{\large#3}}}
\cellspacetoplimit=6pt
\cellspacebottomlimit=6pt

\begin{document}
%%%% Tableau Numération entiers %%%%%
\begin{center}
\begin{tabular}{E*4{c|c|cE}}
\Ehline
      \classe{EScE}{red}{Classe des \textbf{milliards}}&
      \classe{ScE}{green}{Classe des \textbf{millions}}&
      \classe{ScE}{blue}{Classe des \textbf{mille}}&
      \classe{ScE}{black}{Classe des \textbf{unités}}
   \\\Ehline
    \rule[0ex]{0pt}{26ex}
      \rtxt{red}{Centaines de \textbf{milliards}}&
      \rtxt{red}{Dizaines de \textbf{milliards}}&
      \rtxt{red}{Unités de \textbf{milliards}}&
      \rtxt{green}{Centaines de \textbf{millions}}&
      \rtxt{green}{Dizaines de \textbf{millions}}&
      \rtxt{green}{Unités de \textbf{millions}}&
      \rtxt{blue}{Centaines de \textbf{mille}}&
      \rtxt{blue}{Dizaines de \textbf{mille}}&
      \rtxt{blue}{Unités de \textbf{mille}}&
      \rtxt{black}{\textbf{Centaines}}&
      \rtxt{black}{\textbf{Dizaines}}&
      \rtxt{black}{\textbf{Unités}}
   \\\Ehline
   \rule{0pt}{5ex}
      &&&&&&&&&&&
   \\\Ehline
\end{tabular}
\end{center}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
Manon :) :)

Merci MB
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Daver10Manon le dimanche 03 mai 2020, 16:42, modifié 4 fois.

MB
Administrateur
Administrateur
Messages : 7189
Inscription : samedi 28 mai 2005, 14:23
Statut actuel : Enseignant

Re: Aide Tableau

Message par MB »

Daver10Manon a écrit :Ps: J'aurai souhaité vous montrer en image, ou en pièce jointe, le rendu mais je n'ai pas trouvé comment faire. Si l'un d'entre vous à une idée, je suis preneuse!!
Je viens de t'ajouter dans le groupe permettant de joindre des fichiers aux messages.
MB (Pas d'aide en Message Privé)
Merci d'utiliser MathJax (voir ici) et d'éviter le style SMS pour la lisibilité des messages.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 818
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Aide Tableau

Message par un bon petit »

gigiair a écrit :Je trouve cette solution excellente mais je m'interroge sur le choix de 0.8cm ({\hbox to.8cm). D'où provient le choix de cette valeur ?
Choisie au pif, j'avais pris 1cm, je crois et je trouvais que c'était un peu trop large. J'ai donc mis 0.8cm !
gigiair a écrit :J'ai essayé d'autres valeurs qui donnent des résultats assez catastrophiques.
Non, quelle que soit la largeur choisie, la colonne sera de la largeur demandée, dans la mesure où le cumul des 3 largeurs n'est pas inférieur à la largeur de la cellule en multicolumn, auquel cas, la dernière colonne sera élargie.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 818
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Aide Tableau

Message par un bon petit »

Daver10Manon a écrit :Je vous joins donc mon code final.
Le \rule[0ex]{0pt}{26ex} est une énorme erreur, c'est ce qu'on appelle un rafistolage bancal. Vous ne devez pas programmer comme ça !!!

Vous devriez observer que dans les codes qui vous ont été donné, rien n'est codé en dur concernant le contenu des cellules.

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

Comme je le disais je suis novice et enthousiaste à l'idée d'apprendre. C'est mon tout premier tableau en LaTeX. Je vais voir comment je peux faire autrement. J'ai vu cette méthode sur le net et m'y suis fiée.
Ce n'est pas plus mal d'avoir l'avis de plus expérimentés que moi !

Manon :)

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

Voilà ce que j'ai réussi à faire sans utiliser le rule.
Cependant je n'arrive pas à trouver comment augmenter la hauteur de ligne de la dernière ligne. :|

Code : Tout sélectionner

\documentclass[12pt,fleqn]{book} 
\usepackage[top=2cm,bottom=2cm,left=1cm,right=1cm,headsep=10pt,a4paper]{geometry} % Page margins
\usepackage{lmodern}
\renewcommand*\familydefault{\sfdefault}
\usepackage[dvipsnames,table]{xcolor}
\definecolor{green}{RGB}{0,115,0}

\usepackage{rotating,booktabs}% Pour les tableaux

\usepackage{booktabs} % Required for nicer horizontal rules in tables

%% macro ligne épaisse
\newcommand\Ehline{\noalign{%
\global\savedwidth%
\arrayrulewidth\global\arrayrulewidth 1.5pt}
\hline \noalign{%
\global\arrayrulewidth \savedwidth}}
\newcolumntype{E}{!{\vrule width 1.5pt}}
\newlength\savedwidth
\renewcommand{\arraystretch}{1.6}
%%%%%%%%%%%%%%%%%%%%%%%%

\usepackage{array,graphicx,cellspace}

\newcommand*\rtxt[2]{\hbox to 1.05cm{\cellcolor{#1!3}\hss\rotatebox[origin=bl]{90}{\large\textcolor{#1}{#2}}\hss}}

\newcommand*\classe[3]{
\multicolumn{3}{#1}{\cellcolor{#2!20}\textcolor{#2}{\large#3}}}
\cellspacetoplimit=6pt
\cellspacebottomlimit=6pt

\begin{document}
%%%% Tableau Numération entiers %%%%%
\begin{center}
\begin{tabular}{E*4{c|c|cE}}
\Ehline
      \classe{EScE}{red}{Classe des \textbf{milliards}}&
      \classe{ScE}{green}{Classe des \textbf{millions}}&
      \classe{ScE}{blue}{Classe des \textbf{mille}}&
      \classe{ScE}{black}{Classe des \textbf{unités}}
   \\\Ehline
      \rtxt{red}{Centaines de \textbf{milliards }}&
      \rtxt{red}{Dizaines de \textbf{milliards}}&
      \rtxt{red}{Unités de \textbf{milliards}}&
      \rtxt{green}{Centaines de \textbf{millions}}&
      \rtxt{green}{Dizaines de \textbf{millions}}&
      \rtxt{green}{Unités de \textbf{millions}}&
      \rtxt{blue}{Centaines de \textbf{mille}}&
      \rtxt{blue}{Dizaines de \textbf{mille}}&
      \rtxt{blue}{Unités de \textbf{mille}}&
      \rtxt{black}{\textbf{Centaines}}&
      \rtxt{black}{\textbf{Dizaines}}&
      \rtxt{black}{\textbf{Unités}}
   \\\Ehline
&&&&&&&&&&&
   \\\Ehline
\end{tabular}
\end{center}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
Manon :)

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2578
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Aide Tableau

Message par gigiair »

Le truc classique, c'est de mettre une réglure de largeur nulle dans la ligne que tu veux élargir, mais de hauteur non nulle, par exemple

Code : Tout sélectionner

\rule[4cm]{0pt}{0pt}
Tu peux essayer de faire varier les paramètres pour rendre la réglure visible,... ou lire la doc.
JJR.
LaTeXien migrateur.

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

gigiair a écrit :Le truc classique, c'est de mettre une réglure de largeur nulle
Oui c'est ce que j'avais fait au début. Cependant, un bon petit me disais que ce n'était pas une bonne solution. J'ai donc essayé de faire autrement, sans succès pour l'instant.

un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 818
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Aide Tableau

Message par un bon petit »

Daver10Manon a écrit :Oui c'est ce que j'avais fait au début. Cependant, un bon petit me disais que ce n'était pas une bonne solution.
C'était une mauvaise solution avec la façon que vous aviez de faire.

Dans ce cas, JJR a raison : pour augmenter arbitrairement la hauteur d'une colonne, vous devez mettre strut. C'est la bonne façon de faire, car cette ligne doit rester vide (si j'ai bien compris), il n'y a donc aucune liaison entre les dimensions du strut et le contenu de la ligne. Votre dernière ligne doit donc être

Code : Tout sélectionner

\vrule width0pt height2cm&&&&&&&&&&&
J'ai mis du TeX par pure habitude car c'est plus clair que la macro \rule de LaTeX. À vous d'adapter en LaTeX si vous voulez et changer 2cm en autre chose.

Daver10Manon
Utilisateur débutant
Utilisateur débutant
Messages : 7
Inscription : samedi 02 mai 2020, 14:50

Re: Aide Tableau

Message par Daver10Manon »

D'accord, merci pour ces commentaires constructifs.

Manon