Page 1 sur 1

Tableau et alignement

Publié : samedi 02 mai 2020, 20:51
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.

Re: Aide Tableau

Publié : samedi 02 mai 2020, 22:41
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}

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 00:03
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

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 08:44
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

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 14:09
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 16:01
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

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 16:10
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 16:22
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 16:27
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 16:37
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 :)

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 18:40
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 :)

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 19:18
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 19:24
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 20:39
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.

Re: Aide Tableau

Publié : dimanche 03 mai 2020, 20:45
par Daver10Manon
D'accord, merci pour ces commentaires constructifs.

Manon