代码:
\documentclass[10pt,pageno]{jpaper}
\usepackage[british]{babel}
\usepackage{hhline}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabular}{|p{2cm}|c|c|c|c|c|c|c|c|}
\hline
\multirow{2}{5cm}{\textbf{Number of \\ Agents}} & \multicolumn{2}{c|}{\textbf{\shortstack{Baseline sampling \\ phase time~(sec)}}} & \multicolumn{2}{c|}{\textbf{\shortstack{Data layout \\ reorganization time~(sec)}}} & \multicolumn{2}{c|}{\textbf{\shortstack{Data reshaping \\ time~(sec)}}} & \multicolumn{2}{c|}{\textbf{\shortstack{Mini-batch sampling \\ phase time reduction~(sec)}}}\\
\cline{2-9}
& \textbf{PP} & \textbf{CN} & \textbf{PP} & \textbf{CN} & \textbf{PP} & \textbf{CN} & \textbf{PP} & \textbf{CN}\\
%\hhline{~--}
\hline
3 & 652 & 373 & 476 & 314 & 417 & 297 & N/R & N/R \\ \hline
6 & 2385 & 1456 & 1055 & 847 & 1577 & 896 & N/R & N/R \\ \hline
12 & 8807 & 5266 & 1994 & 1529 & 5994 & 3486 & 9.3\% & 4.8\% \\ \hline
\end{tabular}
\label{Data_reorg}
\caption{T-1}
\end{table}
\end{document}
输出:
在上图中,我尝试为表格中的每一列组织子列。但不知何故,我无法控制 PP 和 CN 列的尺寸。有人能帮我确保它们的大小相同吗?
答案1
我希望所有 PP 和 CN [列] 具有相同的 [宽度]。
为了确保 (a) 8 个数据列的宽度相等,并且 (b) 整个表格适合文本块,我建议您使用tabularx
目标宽度为 的环境\textwidth
,而不是tabular
环境。并且,允许在标题单元格中自动换行。
为了减少表格中的视觉混乱,我会 (a) 停止使用垂直线,并且 (b) 不使用大胆的在标题行的单元格中。
\documentclass[10pt,pageno]{article} % I don't have the 'jpaper' document class files
\usepackage[british]{babel}
% new code:
\usepackage{tabularx,ragged2e,booktabs}
\newcolumntype{C}{>{\Centering}X} % centered version of 'X' col. type
\newcolumntype{E}{>{\hsize=\dimexpr2\hsize+2\tabcolsep\relax}C}
\usepackage[skip=0.333\baselineskip]{caption}
\begin{document}
\begin{table}
\setlength\tabcolsep{4pt} % default is 6pt
\caption{T-1} \label{Data_reorg}
\begin{tabularx}{\textwidth}{@{} *{9}{C} @{}}
\toprule
Number of Agents &
\multicolumn{2}{E}{Baseline sampling phase time} &
\multicolumn{2}{E}{Data layout reorganization time} &
\multicolumn{2}{E}{Data reshaping time} &
\multicolumn{2}{E}{Mini-batch sampling phase time reduction} \\
\cmidrule(lr){2-3} \cmidrule(lr){4-5}
\cmidrule(lr){6-7} \cmidrule(l){8-9}
& PP & CN & PP & CN & PP & CN & PP & CN \\
\midrule
3& 652 & 373 & 476 & 314 & 417 & 297 & N/R & N/R \\
6&2385 &1456 &1055 & 847 &1577 & 896 & N/R & N/R \\
12&8807 &5266 &1994 &1529 &5994 &3486 & 9.3\% & 4.8\% \\
\bottomrule
\end{tabularx}
\smallskip
\footnotesize All times in seconds.
\end{table}
\end{document}