Ich versuche, eine Latex-Tabelle zu erstellen, die wie das Bild aussieht. Unter Überschrift 1 sollten grundsätzlich 4 Spalten mit gedrehtem Text stehen, eine graue Zelle enthält zusätzliche Informationen. Ich bin neu bei Latex und habe keine Ahnung, wie ich diese Tabelle im Booktabs-Stil erstellen soll.
\documentclass{article}
\newcommand*\turn{\rotatebox[origin=b]{90}}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array, caption}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage[table,xcdraw]{xcolor}
\begin{document}
\begin{table}[]
\centering
\begin{tabular}{@{}llllll@{}}
\toprule
& \multicolumn{4}{c}{Header 1} & \\
\cmidrule(lr){2-5}
&\turn{Text1} &\turn{Text2} &\turn{Text3} & \turn{Text4} & \cellcolor{gray!25} \makecell[l]{Some line 1\\ Some line 1\\ Some line 1\\ Some line 1\\ Some line 1} \\
Header 3 & & & & &Header 3\\
\midrule
& & & & & \\
& & & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Antwort1
MWE, das diese (ungewöhnliche) Tabelle reproduziert (wie Sie in der Frage gezeigt haben), ist:
\documentclass{article}
\usepackage[table,xcdraw]{xcolor}
\usepackage{rotating}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage[skip=1ex]{caption}
\begin{document}
\begin{table}[htb]
\centering
\setlength\extrarowheight{2pt}
\settowidth\rotheadsize{Text 4}
\renewcommand\rotheadgape{}
\begin{tabularx}{0.6\linewidth}{ l llll c@{\,}X }
\Xhline{1pt}
& \multicolumn{4}{c}{Header 1}
&& \cellcolor{gray!25} \\
\Xcline{2-5}{0.6pt}
& \rothead{Text 1}
& \rothead{Text 2}
& \rothead{Text 3}
& \rothead{Text 4}
&& \cellcolor{gray!25}%
\multirow{-2.2}{=}{\noindent
Some line 1 Some line 2
Some line 3} \\
Header 3 & & & & && Header 3 \\
\Xhline{0.6pt}
A & & & & && 1 \\
B & & & & && 2 \\
\Xhline{1pt}
\end{tabularx}
\end{table}
\end{document}
Nachtrag:
\documentclass{article}
\usepackage[table,xcdraw]{xcolor}
\usepackage{rotating}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcommand\mrrc[1]{\multirow{-2.4}{*}{\rothead{#1}}} % <---
\usepackage[skip=1ex]{caption}
\begin{document}
\begin{table}[htb]
\centering
\setlength\extrarowheight{2pt}
\settowidth\rotheadsize{Text 4}
\renewcommand\rotheadgape{}
\begin{tabularx}{0.6\linewidth}{ l llll c@{\,}L }
\Xhline{1pt}
& \multicolumn{4}{c}{Header 1}
&& \cellcolor{gray!25} \\
\Xcline{2-5}{0.6pt}
& & & & && \cellcolor{gray!25} % <---
\small\linespread{0.84}\selectfont % <---
\multirow{-1.8}{=}{\noindent
Some line 1
Some line 2
Some line 3} \\[1ex]
Header 3 & \mrrc{Text 1} % <--- rotated headers moved down
& \mrrc{Text 2}
& \mrrc{Text 3}
& \mrrc{Text 4}
&& Header 3 \\
\Xhline{0.6pt}
A & & & & && 1 \\
B & & & & && 2 \\
\Xhline{1pt}
\end{tabularx}
\end{table}
\end{document}
hoffentlich produzieren, was Sie haben möchten:
Antwort2
Ist es das, was Sie haben möchten?
\documentclass{article}
\newcommand*\turn{\rotatebox[origin=b]{90}}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{array, caption}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage[table,xcdraw]{xcolor}
\begin{document}
\begin{table}[]
\centering
\begin{tabular}{@{}llllll@{}}
\toprule
& \multicolumn{4}{c}{Header 1} & \\
\cmidrule(lr){2-5}
&\multirowcell{3.5}{\turn{Text1}} &\multirowcell{3.5}{\turn{Text2}} &\multirowcell{3.5}{\turn{Text3}} & \multirowcell{3.5}{\turn{Text4}} & \cellcolor{gray!25} \makecell{Some line 1\\ Some line 1\\ Some line 1\\ Some line 1\\ Some line 1} \\
\addlinespace
Header 3 & & & & &Header 3\\
\midrule
& & & & & \\
& & & & & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Antwort3
Hier ist eine Lösung mit {NiceTabular}
von nicematrix
.
\documentclass{article}
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{booktabs}
\begin{document}
\begin{table}[htb]
\centering
\setlength\extrarowheight{2pt}
\begin{NiceTabular}{llllll}
\CodeBefore
\rectanglecolor{gray!20}{1-6}{2-6}
\Body
\toprule
& \Block{1-4}{Header 1} &&&
& \Block{2-1}{Some line 1\\ Some line 2 \\ Some line 3} \\
\cmidrule(lr){2-5}
\RowStyle{\rotate}
& Text 1
& Text 2
& Text 3
& Text 4 \\
Header 3 & & & & & Header 3 \\
\midrule
A & & & & & 1 \\
B & & & & & 2 \\
\bottomrule
\end{NiceTabular}
\end{table}
\end{document}
Diese Lösung verwendet
\booktabs
(nicematrix
ist kompatibel mit ). Daher ist es einfach, mitbooktabs
zu verkürzen (eine Dummy-Spalte ist nicht erforderlich).\cmidrule
\cmidrule(rl)
Der Befehl
\Block
vonnicematrix
platziert seinen Inhalt in der mathematischen Mitte der zusammenzuführenden Zellen. Es ist keine manuelle Anpassung wie in erforderlich\multirow
.Der Befehl
\rowstyle
wendet Formatierungsbefehle auf alle Zellen der Zeile an.In
nicematrix
werden die farbigen Felder vor allen Regeln gezeichnet (die Ausgabe ist in den PDF-Viewern besser: in einigen PDF-Viewern wie Adobe Reader scheinen die Regeln bei bestimmten Zoomstufen nicht zu verschwinden).