我想创建一个如下所示的表格:
这就是我已经得到的:
\documentclass[]{article}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{graphicx}
\begin{document}
\begin{table}[H]
\centering
\begin{footnotesize}
\begin{tabular}{p{0.5cm}p{3cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}p{1.5cm}}
\toprule
\multicolumn{2}{c}{}
& \textbf{A}
& \textbf{B}
& \textbf{C}
& \textbf{D}
& \textbf{E} \\
\midrule
\midrule
\multirow{2}{*}{\rotatebox{90}{Texttexttext}}
& 1 & 2 & 3 & 4 \\
& 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
\end{footnotesize}
\caption{Übersicht über die verfügbaren Trainings- und Testdaten}
\label{tab:6_tabelle}
\end{table}
\end{document}
现在的问题是,我
- 希望行的大小相对于第一个单元格的高度
- 所有单元格都应垂直对齐
- A、B 和 C 的单元格应具有水平对齐
有人能给我一些提示吗?
问候!
答案1
您可以尝试这个(使用 pdftex):
\newdimen\tstrutdim
\def\tstrut{\lower.3\tstrutdim\vbox to\tstrutdim{}}
\def\crl{\cr\noalign{\hrule}}
\def\rotitem#1{\noalign{\setbox0=\hbox{ #1 }\global\tstrutdim=.5\wd0}
\ \pdfsave\pdfsetmatrix{0 1 -1 0}\llap{ #1 \kern-.7\tstrutdim}\pdfrestore
}
\vbox{\offinterlineskip \tstrutdim=16pt
\halign{\vrule\quad\hfil#\unskip\hfil\quad\vrule&&%
\tstrut\quad\hfil#\unskip\hfil\quad\vrule
\span\crl
\omit\vrule & & A & B & C \crl \rotitem{text text text}
& X & 12 & 11 & 1 \cr
& \multispan4\hrulefill \cr
& Y & 3 & 5 & 4 \crl
}}
答案2
makecell
使用允许命令换行的包,有两种可能性\rotcell
:
\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{booktabs}
\usepackage{array, multirow}
\usepackage{rotating, graphicx}
\usepackage{makecell}
\setcellgapes{4pt}
\begin{document}
\begin{table}[!h]
\centering
\footnotesize\settowidth\rotheadsize{Texttexttext}
\makegapedcells
\footnotesize
\begin{tabular}{p{0.5cm}p{3cm}*{5}{p{1.5cm}}}
\toprule
\multicolumn{2}{c}{}
& \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\
\midrule
\midrule
& 1 & 2 & 3 & 4 \\[4.5ex]
\multirow{-2}{*}[7.5ex]{\rotatebox{90}{Texttexttext}}
& 2 & 3 & 4 & 5\\
\bottomrule
\end{tabular}
\caption{Übersicht über die verfügbaren Trainings- und Testdaten}
\label{tab:6_tabelle}
\end{table}
\begin{table}[!h]
\centering
\footnotesize\settowidth\rotheadsize{Text text}
\renewcommand\cellalign{rt}
\makegapedcells
\footnotesize
\begin{tabular}{ >{\raggedleft}p{0.5cm}p{3cm}*{5}{p{1.5cm}}}
\toprule
\multicolumn{2}{c}{}
& \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} \\
\midrule
\midrule
& 1 & 2 & 3 & 4 \\[2ex]
\multirowcell{-2}[2.5ex]{\hspace{4ex}\rotcell[c]{\\Text text\\text}}
& 2 & 3 & 4 & 5\\%[-3ex]
\bottomrule
\end{tabular}
\caption{Übersicht über die verfügbaren Trainings- und Testdaten}
\label{tab:6_tabelleA}
\end{table}
\end{document}