Comment créer un tableau en utilisant \begin{table*}
en LaTeX?
Le tableau I Jessaie de créer est un peu compliqué, et cela devrait ressembler à ceci:
Désolé pour les lignes tordues de limage.
Jusquà présent, je nai pu faire que quelque chose de simple:
\begin{table*}[t] \centering \begin{tabular}{ *1c | *3c | *3c | *2c | } & & & & & & & & & & & & \\ % Keep adding as many numbers of rows, etc. \end{tabular} \end{table}
Avec ce code, jai les colonnes suivantes – Nom, Texte 1, Texte 2, Texte 3, Texte 4, Texte 5, Texte 6, Texte 7 et Texte 8. Et je peux ajouter autant de lignes que je veux sur la table.
Je nai pas les touches de catégorie 1, de catégorie 2 et de catégorie 3 à gauche et en haut de limage.
Commentaires
Réponse
Voici un point de départ . Lespacement peut et doit être ajusté, mais cela na de sens quune fois que vous avez rempli le tableau.
\documentclass{article} \usepackage{rotating} \newcommand\sw[1]{\begin{sideways}#1\end{sideways}} \usepackage{multirow} \begin{document} \begin{tabular}{r|l|*8{c|}} \multicolumn{2}{c|}{} & \multicolumn{3}{c|}{Category 1} & \multicolumn{3}{c|}{Category 2} & \multicolumn{2}{c|}{Category 3} \\\cline{3-10} & Name & \sw{Text1} & \sw{Text2} & \sw{Text3} & \sw{Text4} & \sw{Text5} & \sw{Text6} & \sw{Text7} & \sw{Text8} \\\hline \multirow{4}{*}{\sw{\small Category 1}} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\hline \multirow{4}{*}{\sw{\small Category 2}} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\cline{2-10} & & & & & & & & & \\\hline \end{tabular} \end{document}
Modifier: Comment augmenter le nombre de colonnes dans la catégorie 3 de 2 à 6, comme demandé dans les commentaires:
-
Changez la ligne commençant le tableau en
\begin{tabular}{r|l|*{12}{c|}}
-
Remplacez
\multicolumn
du titre par\multicolumn{6}{c|}{Category 3}
-
Remplacez les commandes
\cline
par\cline{3-14}
et\cline{2-14}
, respectivement. -
Vous devez ajouter des colonnes dans toutes les lignes, même si elles restent vides, pour avoir des lignes verticales. Cela signifie ajouter
& \sw{Text9} & \sw{Text10} & \sw{Text11} & \sw{Text12}
pour les en-têtes de colonne et étendre les autres lignes à
& & & & & & & & & & & & &
Commentaires
- Jessaie toujours de comprendre cela. Pourriez-vous sil vous plaît donner un conseil sur la façon daugmenter le nombre de colonnes de 2 à 6 dans la catégorie 3 (cest-à-dire que jai – Texte 7,8,9,10,11,12) Aussi comment ajuster lespacement? /
- Voir la modification de ma réponse. Vous devriez certainement lire un tutoriel sur le fonctionnement des tables dans LaTeX, sinon vous devez demander à chaque changement que vous souhaitez apporter. Concernant lespacement, remettez-le à plus tard jusquà ce que vous en ayez fini avec le tableau; puis demandez à nouveau si vous naimez pas ‘ quelque chose en particulier.
- Je nai donc quun seul problème despacement. Comment faire ça? Cela ressemble à ceci – drive.google.com/open?id=0B6unL1yNveR6eGlNUXZjaUdNVzA Oui, jai parcouru la documentation et je vais travailler sur les tables.
- Fondamentalement, le texte de la catégorie 1 et de la catégorie 2 entrent en collision sur le côté gauche du tableau et la sixième colonne est un peu plus large par défaut.
- Je lai compris. Je nutilisais pas le bon numéro sur loption multirang, mais la sixième colonne est encore plus large.
Réponse
Vous préférerez peut-être utiliser des booktabs.
\documentclass{standalone} \usepackage{booktabs} \usepackage{rotating} \newcommand\sw[1]{\small\begin{sideways}#1 \end{sideways}} \usepackage{multirow} \begin{document} \def\arraystretch{1.25} \begin{tabular}{rl*8{c}} \toprule \multicolumn{2}{c}{} & \multicolumn{3}{c}{Category 1} & \multicolumn{3}{c}{Category 2} & \multicolumn{2}{c}{Category 3} \\ & Name & \sw{Text1} & \sw{Text2} & \sw{Text3} & \sw{Text4} & \sw{Text5} & \sw{Text6} & \sw{Text7} & \sw{Text8} \\ \midrule \multirow{4}{*}{\sw{Category 1}} & a & A & & & & & & & \\ & b & B & & & & & & & \\ & c & C & & & & & & & \\ & d & D & & & & & & & \\ \multirow{4}{*}{\sw{Category 2}} & a & A & & & & & & & \\ & b & B & & & & & & & \\ & c & C & & & & & & & \\ & d & D & & & & & & & \\ \bottomrule \end{tabular} \end{document}
Réponse
Vous pouvez utiliser \rotatebox{angle}{text}
pour faire pivoter le texte (nécessite le package rotating
).
Vous pouvez utiliser \multicolumn{num_cols}{alignment}{contents}
pour créer des cellules sétendant sur plusieurs colonnes.
Vous pouvez utiliser \cline{from-to}
pour les règles horizontales qui ne pas couvre toutes les colonnes.
Vous pouvez utiliser \multirow{num_rows}{width}{contents}
pour créer des cellules sétendant sur plusieurs lignes (nécessite le multirow
package ) .
Largument du tabulaire *{11}{c|}
est un raccourci pour onze fois le c|
, autorisé par le array
package .
\documentclass{article} \usepackage{array} \usepackage{rotating}% https://en.wikibooks.org/wiki/LaTeX/Rotations \usepackage{multirow}% https://tex.stackexchange.com/a/73285/120953 \newcommand{\cat}[1]{#1} \newcommand{\thead}[1]{#1} \newcommand{\catver}[1]{\rotatebox{90}{\cat{#1}}} \newcommand{\theadver}[1]{\rotatebox{90}{\thead{#1}\hspace{.7em}}} \begin{document} \begin{tabular}{*{11}{c|}} \multicolumn{2}{l|}{} & \multicolumn{3}{l|}{\cat{Category~1}} & \multicolumn{3}{l|}{\cat{Category~2}} & \multicolumn{3}{l|}{\cat{Category~3}} % https://tex.stackexchange.com/a/8555/120953 \\\cline{3-11} & \thead{Name} & \theadver{Text~1} & \theadver{Text~2} & \theadver{Text~3} & \theadver{Text~4} & \theadver{Text~5} & \theadver{Text~6} & \theadver{Text~7} & \theadver{Text~8} & \theadver{Text~9} \\\hline \multirow{5}{*}{\catver{Category~1}} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\hline \multirow{5}{*}{\catver{Category~2}} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\hline \multirow{5}{*}{\catver{Category~3}} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\cline{2-11} &&&&&&&&&&\\\hline \end{tabular} \end{document}
En outre, vous pouvez être intéressé par cette question concernant le centrage vertical du contenu dune cellule à plusieurs rangées.
multirow
ctan .org / pkg / multirow? lang = de