\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|c|c|c|c|}
\hline
&
\begin{sideways}ABCD\end{sideways} &
\begin{sideways}EFGH\end{sideways} &
\begin{sideways}IJKL\end{sideways} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
\caption{Tmp}
\label{tab:tmp}
\end{table}
\end{document}
Wie kann ich Linien wie in den Bildern unten entfernen?
Und wie kann ich die erste horizontale Linie etwas anheben? Das Endergebnis sollte sein:
Antwort1
Ich fürchte, es sind vier verschiedene Maßnahmen erforderlich:
- Entfernen Sie die vertikale Linie mit
\multicolumn{1}{c|}{}
. - Entfernen Sie die horizontale Linie (das Segment) mit
\cline{2-4}
. - Fügen Sie dem längsten Etikett oben etwas Platz hinzu.
- Wenn Sie die „inneren“ vertikalen Linien für den größten Teil der Tabelle nicht möchten, würde ich sie speziell für den Kopf hinzufügen.
Ergebnis:
\begin{tabular}{|c|ccc|}
\cline{2-4}
\multicolumn{1}{c|}{}&
\multicolumn{1}{c|}{\begin{sideways}ABCD\hspace*{1mm}\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}EFGH\end{sideways}} &
\begin{sideways}IJKL\end{sideways} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
Antwort2
Hier ist eine Lösung mit tabularray
.
\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{
colspec = {*{4}{c}},
vline{1} = {2-4}{0.9pt},
vline{2,5} = 0.9pt,
vline{3-4} = {1}{0.9pt},
hline{1} = {2-5}{0.9pt},
hline{2,5} = 0.9pt,
cell{1}{2-4} = {cmd={\rotatebox[origin=c]{90}}}
}
& ABCD
& EFGH
& IJKL \\
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
\end{tblr}
\end{document}
Antwort3
Sie können \multicolumn
und verwenden, \cline
um die gewünschte Ausgabe zu erhalten:
\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{table}[h]
\centering
\begin{tabular}{|c|ccc|}
\cline{2-4}
\multicolumn{1}{c}{}&
\multicolumn{1}{|c|}{\begin{sideways}ABCD\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}EFGH\end{sideways}} &
\multicolumn{1}{c|}{\begin{sideways}IJKL\end{sideways}} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
\caption{Tmp}
\label{tab:tmp}
\end{table}
\end{document}
Meiner Meinung nach kann man die vertikalen Linien in der Kopfzeile auch ganz weglassen, ebenso wie den Rahmen oben, links und rechts, was
\begin{tabular}{c|ccc}
\multicolumn{1}{c}{}&
\multicolumn{1}{|c}{\begin{sideways}ABCD\end{sideways}} &
\multicolumn{1}{c}{\begin{sideways}EFGH\end{sideways}} &
\multicolumn{1}{c}{\begin{sideways}IJKL\end{sideways}} \\ \hline
AA & 2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
DD & 2 & 3 & 4 \\ \hline
\end{tabular}
Antwort4
Mit {NiceTabular}
von nicematrix
. In dieser Umgebung haben Sie einen Schlüssel hvlines
, der alle Regeln außer in den Blöcken (angegeben durch) \Block
und in den leeren Ecken (angegeben durch den Schlüssel corners
) zeichnet.
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{cccc}[hvlines,corners=NW] % NW = north-west
\RowStyle{\rotate}
& ABCD \;
& EFGH
& IJKL \\
\Block{3-1}{}
AA & \Block{3-3}{}
2 & 3 & 4 \\
BB & 2 & 3 & 4 \\
CC & 2 & 3 & 4 \\
\end{NiceTabular}
\end{document}