
Ich möchte eine solche Tabelle in Latex erstellen.
Dies ist mein Skript zum Erstellen einer Tabelle.
\begin{table}
\centering
\caption{Table}
\begin{tabular}{|c|c|l|} \hline
\multirow{3}{*}{DEF}&\multicolumn{3}{|c|}{ ABC} \\ \hline
A&B&C\\ \hline
1& 4 & 7 \\ \hline
2& 5 & 8 \\ \hline
3& 6 & 9 \\ \hline
\end{tabular}
\end{table}
Wenn ich dieses Skript ausführe, wird ein Fehler wie dieser angezeigt.
! Extra alignment tab has been changed to \cr.<template> \endtemplate ...row{3}{}{DEF}&\multicolumn{3}{|c|}{ ABC}
Wie erstelle ich eine Tabelle wie in diesem Bild?
Antwort1
Sie können die folgende Vorlage entziffern.
\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{array,multirow}
\let\mc=\multicolumn
\let\mr=\multirow
\let\cl=\cline
\begin{document}
\begin{tabular}{|*6{c|}l}
\cl{3-6}
\mc{2}{c|}{\mr{2}{*}{empty}} & \mc{4}{c|}{Primes} \\\cl{3-6}
\mc{2}{c|}{} & 2 & 3 & 5 & 7 \\\cl{1-6}
\mr{2}{*}{Powers} & 504 & 3 & 2 & 0 & 1 \\\cl{2-6}
& 540 & 2 & 3 & 1 & 0 \\\cl{1-6}
\mr{2}{*}{Powers} & HCF & 2 & 2 & 0 & 0 & min \\\cl{2-6}
& LCM & 3 & 3 & 1 & 1 & max \\\cl{1-6}
\end{tabular}
\end{document}
Warnung
\mr
können verschachtelt werden, \mc
umgekehrt ist das jedoch nicht möglich!
Verweise
Mein obiger Code wurde inspiriert von einem Beispiel ausWikipediawie folgt.
\begin{tabular}{cc|c|c|c|c|l}
\cline{3-6}
& & \multicolumn{4}{ c| }{Primes} \\ \cline{3-6}
& & 2 & 3 & 5 & 7 \\ \cline{1-6}
\multicolumn{1}{ |c }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{504} & 3 & 2 & 0 & 1 & \\ \cline{2-6}
\multicolumn{1}{ |c }{} &
\multicolumn{1}{ |c| }{540} & 2 & 3 & 1 & 0 & \\ \cline{1-6}
\multicolumn{1}{ |c }{\multirow{2}{*}{Powers} } &
\multicolumn{1}{ |c| }{gcd} & 2 & 2 & 0 & 0 & min \\ \cline{2-6}
\multicolumn{1}{ |c }{} &
\multicolumn{1}{ |c| }{lcm} & 3 & 3 & 1 & 1 & max \\ \cline{1-6}
\end{tabular}
Wie Sie jedoch sehen und vergleichen können, ist mein Code viel einfacher und gut überarbeitet, aber dennoch lesbar, oder?
Antwort2
Was Sie versuchen, können Sie hiermit erreichen:
\documentclass{standalone}
\usepackage{multirow}
\begin{document}
\begin{tabular}{|c|c|c|c|c} \hline
& & \multicolumn{3}{|c|}{ ABC} \\ \hline
& & A&B&C\\ \hline
\multirow{3}{*}{DEF} & D &1& 4 & 7 \\ \cline{2-5}
&E& 2& 5 & 8 \\ \cline{2-5}
&F& 3& 6 & 9 \\ \cline{2-5}
\end{tabular}
\end{document}
Aber! Mit LaTeX lassen sich Tabellen erstellen, die viel schöner sind als dieses Excel-Layout. Überlegen Sie, ob Sie so etwas machen möchten, das auch dann noch schön aussieht, wenn Sie mehr als 3 Spalten haben.
\documentclass{standalone}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{tabular}{lcccccc}
\toprule
& \multicolumn{3}{c}{ ABC} & \multicolumn{3}{c}{ ABC} \\\cmidrule(lr){2-4} \cmidrule(lr){5-7}
& A&B&C & A2&B2&C2\\ \midrule
DEF:\\
\;D &1& 4 & 7 &1& 4 & 7 \\
\;E& 2& 5 & 8 &1& 4 & 7 \\
\;F& 3& 6 & 9 &1& 4 & 7 \\
XYZ:\\
\;X &1& 4 & 7 &1& 4 & 7 \\
\;Y& 2& 5 & 8 &1& 4 & 7 \\
\;Z& 3& 6 & 9 &1& 4 & 7 \\ \bottomrule
\end{tabular}
\end{document}
Antwort3
\multirow
Befehl muss auf seine eigene Spalte angewendet werden ... Sie müssen also in jeder Spalte auf der linken Seite eine zusätzliche Spalte hinzufügen und somit wird &
auf jeder linken Seite jeder Zeile Ihrer Tabelle eine zusätzliche Spalte benötigt und ein zusätzlicher Spaltentyp (sagen wir c
) am Anfang der Argumente Ihrer Tabelle.
Außerdem sollte die mehrspaltige Zelle in Ihrem Beispiel drei Zeilen lang sein und mit der Zeile (1,4,7) beginnen. Dann \hline
würde jedoch in einer dieser oder der nächsten Zeilen auch in der Zelle mit den „mehrzeiligen“ Zeilen eine Zeile hinzugefügt, und das ist nicht erwünscht. Wir müssen also einige \hline
Zeilen ändern \cline{2-4}
, sodass eine Zeile von Spalte 2 bis Spalte 4 und nicht von der 1. bis zur letzten Spalte entsteht.
Schließlich können Sie \multicolumn{1}{c|}{}
als erstes Element Ihrer ersten beiden Zeilen „empty“ hinzufügen, um deren Verhalten von |c|
in zu ändern c|
und auf diese Weise die unerwünschte vertikale Linie von ihrer linken Seite zu entfernen:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{table}
\centering
\caption{Table}
\begin{tabular}{|c|c|c|l|} \cline{2-4}
\multicolumn{1}{c|}{}&\multicolumn{3}{|c|}{ ABC} \\ \cline{2-4}
\multicolumn{1}{c|}{}&A&B&C\\ \hline
\multirow{3}{*}{DEF}&1& 4 & 7 \\ \cline{2-4}
&2& 5 & 8 \\ \cline{2-4}
&3& 6 & 9 \\ \hline
\end{tabular}
\end{table}
\end{document}
PS: Ich habe versucht, Ihnen Ihre Fehler aufzuzeigen und nicht, einen Weg zu finden, Ihren Tisch schöner zu gestalten.