Wie erstelle ich eine Tabelle mit \begin{table*}
in LaTeX?
Die Tabelle I. Ich versuche zu erstellen ist etwas kompliziert und es sollte so aussehen:
Entschuldigen Sie die krummen Linien des Bildes.
Bisher konnte ich nur etwas Einfaches machen:
\begin{table*}[t] \centering \begin{tabular}{ *1c | *3c | *3c | *2c | } & & & & & & & & & & & & \\ % Keep adding as many numbers of rows, etc. \end{tabular} \end{table}
Mit diesem Code habe ich die folgenden Spalten: Name, Text 1, Text 2, Text 3, Text 4, Text 5, Text 6, Text 7 und Text 8. Und ich kann hinzufügen so viele Zeilen wie ich will über die Tabelle.
Ich habe nicht die Patts der Kategorien 1, 2 und 3 auf der linken und oberen Seite des Bildes.
Kommentare
- Sie benötigen
multirow
ctan .org / pkg / multirow? lang = de
Antwort
Hier ist ein Ausgangspunkt . Der Abstand kann und sollte angepasst werden. Dies ist jedoch erst sinnvoll, wenn Sie die Tabelle ausgefüllt haben.
\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}
Bearbeiten: So erhöhen Sie die Anzahl der Spalten in Kategorie 3 von 2 auf 6, wie in den Kommentaren angegeben:
-
Ändern Sie die Zeile, in der die Tabelle beginnt, in
\begin{tabular}{r|l|*{12}{c|}}
-
Ändern Sie die
\multicolumn
für die Überschrift in -
Ändern Sie die Befehle
\cline
in\cline{3-14}
und\cline{2-14}
. -
Sie müssen Spalten in alle Zeilen einfügen, auch wenn sie leer bleiben, um vertikale Linien zu erhalten. Dies bedeutet, dass Sie
& \sw{Text9} & \sw{Text10} & \sw{Text11} & \sw{Text12}
für die Spaltenüberschriften hinzufügen und die anderen Zeilen auf
Kommentare
- Ich versuche immer noch, dies zu verstehen. Könnten Sie bitte einen Tipp geben, wie Sie die Anzahl der Spalten in Kategorie 3 von 2 auf 6 erhöhen können (dh ich habe – Text 7,8,9,10,11,12). Wie kann ich auch den Abstand anpassen? /
- Siehe die Bearbeitung meiner Antwort. Sie sollten auf jeden Fall ein Tutorial über die Funktionsweise von Tabellen in LaTeX lesen, andernfalls müssen Sie bei jeder Änderung, die Sie vornehmen möchten, nachfragen. Verschieben Sie den Abstand, bis Sie mit dem Tisch fertig sind. Fragen Sie dann erneut, ob Sie ‚ etwas Besonderes nicht mögen.
- Ich habe also nur ein Abstandsproblem. Wie mache ich das gut? Es sieht so aus – drive.google.com/open?id=0B6unL1yNveR6eGlNUXZjaUdNVzA Ja, ich habe die Dokumentation durchgesehen und werde an Tabellen arbeiten.
- Grundsätzlich kollidieren der Text der Kategorien 1 und 2 auf der linken Seite der Tabelle und die sechste Spalte ist standardmäßig etwas breiter.
- Ich habe es herausgefunden. Ich habe bei der Mehrzeilenoption nicht die richtige Nummer verwendet, aber die sechste Spalte ist noch breiter.
Antwort
Möglicherweise bevorzugen Sie die Verwendung von 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}
Antwort
Sie können \rotatebox{angle}{text}
zum Drehen von Text (erfordert das Paket rotating
).
Sie können \multicolumn{num_cols}{alignment}{contents}
verwenden, um Zellen zu erstellen, die sich über mehrere erstrecken Spalten.
Sie können \cline{from-to}
für horizontale Regeln verwenden, die nicht alle Spalten überspannen.
Mit \multirow{num_rows}{width}{contents}
können Sie Zellen erstellen, die sich über mehrere Spalten erstrecken mehrere Zeilen (erfordert das Paket multirow
)
Das Argument der tabellarischen *{11}{c|}
ist eine Verknüpfung für das Elffache der c|
, die von der array
Paket .
\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}
Außerdem könnten Sie diese Frage bezüglich der vertikalen Zentrierung des Inhalts einer Mehrzeilenzelle interessieren.