我创建了一个最小示例,其中错误的表格以红色表示。
\documentclass{article}
\usepackage{siunitx} % To align the numbers later on
\usepackage{booktabs}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{multirow}
\usepackage{rotating}
\begin{document}
\begin{table*}[t]
\newcommand{\rot}[1]{\rotatebox{90}{#1}}
\newcommand{\multirot}[1]{\multirow{2}{*}{\rot{#1}}}
\centering
\ra{1.3}
\begin{tabular}{ccc} \toprule
\multirot{Minimal example} &
\multicolumn{2}{c}{Minimal} \\
\cmidrule{2-3}
& exa & mple \\ \midrule
a & a & 10 \\
a & a & 0.1 \\
a & a & 0.001 \\ \bottomrule
\end{tabular}
\end{table*}
\end{document}
当内容超出右上角两行的高度时,为什么左上角的单元格没有变大?文本“最小示例”应在底部对齐(因此像这样的多列将在顶部变平)。
如何实现与示例图像右侧类似的表格?
答案1
如果你接受双行列头,makecell
那么它的命令就很简单了。我借此机会将其用于最后一列。\rotcell
siunitx
\documentclass{article}
\usepackage{siunitx} % To align the numbers later on
\usepackage{booktabs}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{multirow, makecell}
\usepackage{rotating}
\settowidth\rotheadsize{Minimal}
\begin{document}
\begin{table*}[t]
\newcommand{\rot}[1]{\rotatebox{90}{#1}}
\newcommand{\multirot}[1]{\multirow{2}{*}{\rot{#1}}}
\centering
\ra{1.3}
\begin{tabular}{@{\,}ccS[table-format=2.3]} \toprule
\multirow{2}{*}[1.5ex]{\rotcell{Minimal example}}&
\multicolumn{2}{c}{Minimal} \\
\cmidrule{2-3}
& exa & {mple} \\[0.5ex] \midrule
a & a & 10 \\
a & a & 0.1 \\
a & a & 0.001 \\ \bottomrule
\end{tabular}
\end{table*}
\end{document}
答案2
好的,我以 Bernhards 的回答作为开始,并创建了两个可能的解决方案以供将来参考。
我保留第二个较长的标题,因为所有具有旋转标题的列都保持相同的宽度。
\documentclass{article}
\usepackage{siunitx} % To align the numbers later on
\usepackage{booktabs}
\newcommand{\ra}[1]{\renewcommand{\arraystretch}{#1}}
\usepackage{multirow, makecell}
\usepackage{rotating}
\settowidth\rotheadsize{Minimal}
\begin{document}
\begin{table*}[t]
\newcommand{\rot}[1]{\rotatebox{90}{#1}}
\newcommand{\multirot}[1]{\multirow{2}{*}[1.5ex]{\rotcell{#1}}}
\centering
\ra{1.3}
\begin{tabular}{@{\,}cccS[table-format=2.3]} \toprule
\multirot{Short} &
\multirot{Extended} &
\multicolumn{2}{c}{Minimal} \\
\cmidrule{3-4}
&& exa & {mple} \\[0.5ex] \midrule
a & a & a & 10 \\
a & a & a & 0.1 \\
a & a & a & 0.001 \\ \bottomrule
\end{tabular}
\end{table*}
\begin{table*}[t]
\newcommand{\multirot}[1]{\multirow{2}{*}[1.5ex]{\rotcell{\rlap{#1}}}}
\centering
\ra{1.3}
\begin{tabular}{@{\,}cccS[table-format=2.3]} \toprule
\multirot{Short} &
\multirot{Long Example} &
\multicolumn{2}{c}{Minimal}\rule{0pt}{1.3cm} \\
\cmidrule{3-4}
&& exa & {mple} \\[0.5ex] \midrule
a & a & a & 10 \\
a & a & a & 0.1 \\
a & a & a & 0.001 \\ \bottomrule
\end{tabular}
\end{table*}
\end{document}
我对光学结果(两个版本)感到满意,但我对第二张表的工作并不满意,\settowidth\rotheadsize{Minimal}
尽管与此无关。
请随意编辑我的解决方案或者对其进行评论。