旋转框溢出表格中的合并列

旋转框溢出表格中的合并列

抱歉,问题标题有歧义。

我正在使用 2 列乳胶模板。这是我的 MWE:

\begin{table}
\centering
\caption{My table}
\resizebox{\columnwidth}{!}{%
\begin{tabular}{ccc|cc|cc}
\toprule
\multirow{2}{*}{\rotatebox{90}{Rank}}     & \multirow{2}{*}{\rotatebox{90}{FLOPs ↓\%}}          & \multirow{2}{*}{\rotatebox{90}{Params. ↓\%}}                     & \multicolumn{2}{c|}{NMSE}    & \multicolumn{2}{c}{Accuracy (\%)}    \\
\cmidrule{4-7}
     & &     & Before    & After           & Before    & After               \\
\midrule
1       & 88.03        & 87.06          & 0.xxxx    & 0.1613          & 10        & 93.84               \\
2       & 76.44        & 75.98          & 0.xxxx    & 0.1508          & 10        & 94.11               \\
3       & 64.85        & 64.91          & 0.xxxx    & 0.1420          & 68.1      & 94.18               \\
4       & 53.27        & 53.84          & 0.xxxx    & 0.1383          & 89.96     & 94.07               \\
5       & 41.69        & 42.76          & 0.xxxx    & 0.1348          & 92.5      & 94.22               \\
6       & 30.10        & 31.69          & 0.xxxx    & 0.1541          & 93.38     & 94.15               \\
7       & 18.51        & 20.61          & 0.xxxx    & 0.1333          & 93.89     & 94.11               \\
8       & 6.93         & 9.54           & 0.xxxx    & 0.0011          & 94.03     & 94.03               \\
\bottomrule
\end{tabular}
}
\end{table}

此代码生成表格:

在此处输入图片描述

我有两个问题:

  1. FLOPs 和 Params 列溢出了单元格。我该如何修复这个问题?我的主要想法是旋转单元格,以便调整大小后的表格可以更大。
  2. 我希望两列 Params 和 NMES 以及 NMES 和 Accuracy 之间的垂直分界线与第一条线相交。

非常感谢!

答案1

一些建议:

  • 永远不要强行\resizebox将表格放入文本块的宽度(此处\columnwidth:),除非您不介意公开表达对读者的蔑视——并且不太担心因此可能遭受的强烈反对。

    如果您不相信我或者不知道我在说什么,您仍然应该不要使用\resizebox

  • 您没有为旋转的列标题留出足够的垂直空间。我建议您将所有实例更改为,\multirow{2}\multirow{4}在标题中插入两个额外的空白行。

  • 如果您想使用包的线条绘制宏,请不要使用垂直规则booktabs。没有例外。没有。

  • 为了使表格更具可读性,请将第 2 至第 7 列中的数字与小数点对齐。这可以借助包的机制来完成siunitx;请参阅下面的代码以了解此想法的实际实现。

  • 如果你认为桌子的宽度应该等于\columnwidth 确切地,考虑使用tabular*环境。请参阅下面第二个表的代码,了解此想法的实际实现。

在此处输入图片描述

\documentclass{IEEEtran} % or some other suitable document class
\usepackage{newtxtext,newtxmath} % optional (Times Roman font)
\usepackage{graphicx,booktabs,multirow}
\usepackage{siunitx}
\newcolumntype{T}[1]{S[table-format=#1]}
\usepackage{lipsum} % filler text

\begin{document}
\begin{table}[h]

\centering

\caption{with \texttt{tabular}}
\begin{tabular}{@{} l *{2}{T{2.2}} *{2}{T{1.4}} *{2}{T{2.2}} @{}}
\toprule
 \multirow{4}{*}{\rotatebox{90}{Rank}} & 
{\multirow{4}{*}{\rotatebox{90}{FLOPs ↓\%}}} & 
{\multirow{4}{*}{\rotatebox{90}{Params. ↓\%}}} & 
\multicolumn{2}{c}{NMSE} & 
\multicolumn{2}{c@{}}{Accuracy (\%)} \\
\cmidrule(lr){4-5} \cmidrule(l){6-7}
 & & & {Before} & {After} & {Before} & {After} \\
\\ \\
\midrule
1 & 88.03 & 87.06   & 0.1111 & 0.1613 & 10    & 93.84 \\
2 & 76.44 & 75.98   & 0.1111 & 0.1508 & 10    & 94.11 \\
3 & 64.85 & 64.91   & 0.1111 & 0.1420 & 68.1  & 94.18 \\
4 & 53.27 & 53.84   & 0.1111 & 0.1383 & 89.96 & 94.07 \\
5 & 41.69 & 42.76   & 0.1111 & 0.1348 & 92.5  & 94.22 \\
6 & 30.10 & 31.69   & 0.1111 & 0.1541 & 93.38 & 94.15 \\
7 & 18.51 & 20.61   & 0.1111 & 0.1333 & 93.89 & 94.11 \\
8 &  6.93 &  9.54   & 0.1111 & 0.0011 & 94.03 & 94.03 \\
\bottomrule
\end{tabular}

\bigskip\bigskip
\setlength\tabcolsep{0pt}
\caption{with \texttt{tabular*}}
\begin{tabular*}{\columnwidth}{@{\extracolsep{\fill}} l *{2}{T{2.2}} *{2}{T{1.4}} *{2}{T{2.2}} }
\toprule
 \multirow{4}{*}{\rotatebox{90}{Rank}} & 
{\multirow{4}{*}{\rotatebox{90}{FLOPs ↓\%}}} & 
{\multirow{4}{*}{\rotatebox{90}{Params. ↓\%}}} & 
\multicolumn{2}{c}{NMSE} & 
\multicolumn{2}{c}{Accuracy (\%)} \\
\cmidrule{4-5} \cmidrule{6-7}
 & & & {Before} & {After} & {Before} & {After} \\
\\ \\
\midrule
1 & 88.03 & 87.06   & 0.1111 & 0.1613 & 10    & 93.84 \\
2 & 76.44 & 75.98   & 0.1111 & 0.1508 & 10    & 94.11 \\
3 & 64.85 & 64.91   & 0.1111 & 0.1420 & 68.1  & 94.18 \\
4 & 53.27 & 53.84   & 0.1111 & 0.1383 & 89.96 & 94.07 \\
5 & 41.69 & 42.76   & 0.1111 & 0.1348 & 92.5  & 94.22 \\
6 & 30.10 & 31.69   & 0.1111 & 0.1541 & 93.38 & 94.15 \\
7 & 18.51 & 20.61   & 0.1111 & 0.1333 & 93.89 & 94.11 \\
8 &  6.93 &  9.54   & 0.1111 & 0.0011 & 94.03 & 94.03 \\
\bottomrule
\end{tabular*}
\end{table}

\lipsum[1][1-4]
\end{document}

相关内容