\midrule、\bottomrule 等不会延伸到我的表格的最后一列

\midrule、\bottomrule 等不会延伸到我的表格的最后一列

我观察到奇怪的行为,toprule, midrule, bottomrule无法延伸到表格的最后一列。

在下面的 MWE 中,我使用toprule,&重现了该问题bottomrule

%%% Using MDPI journal template %%%
\begin{table}[!htbp]
    \caption{My Table title} \label{tab1}
    \begin{adjustwidth}{-\extralength}{0cm}
    \centering
    \begin{tabularx}{\textwidth}{@{} ll *{10}{c}}
    \toprule
    &  & \multicolumn{2}{c}{Experiment 1} & \multicolumn{2}{c}{Experiment 2} & \multicolumn{2}{c}{Experiment 3} & \multicolumn{2}{c}{Experiment 4}  & \multicolumn{2}{c}{Experiment 5} \\
    \cmidrule(r{1ex}){3-4} \cmidrule(r{1ex}){5-6} \cmidrule(r{1ex}){7-8} \cmidrule(r{1ex}){9-10} \cmidrule(r{1ex}){11-12}
    && {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} \\
    %\midrule
    \cmidrule{1-12} %\cmidrule(lr{1em}){1-12}
   \multirow{ 3}{*}{Group 1} 
       & \textit{First Round}  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
       & \textit{Second  Round}  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
       & \textit{Last  Round}  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\  
    \bottomrule     
    \end{tabularx}
    \end{adjustwidth}
\end{table} 

输出:

在此处输入图片描述

答案1

您尝试使用tabularx环境,但未将X列类型分配给 12 列中的任何一列。您不可能成功实现表格的目标宽度,即\textwidth

由于单元格内的换行(由X列类型启用)对于手头的表格来说似乎不是一项有意义的活动,因此我建议您改用环境tabular*并重新组织标题以节省大量(水平)空间。例如,如下所示:

在此处输入图片描述

请注意,采用这种设置,就无需使用adjustwidth大锤了。

\documentclass{article}
\usepackage{booktabs}
\newcommand\mcii[1]{\multicolumn{2}{c}{#1}} % handy shortcut macro

\begin{document} 
\begin{table}[!htbp]
    \setlength\tabcolsep{0pt}
    \caption{My table title\strut} \label{tab1}
    \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} ll *{10}{c} }
    \toprule
    Group & Round & \multicolumn{10}{c}{Experiments} \\
    \cmidrule{3-12}
    & & \mcii{1} & \mcii{2} & \mcii{3} & \mcii{4} & \mcii{5} \\
    \cmidrule{3-4} \cmidrule{5-6} \cmidrule{7-8} \cmidrule{9-10} \cmidrule{11-12} 
    & & ABC & XYZ & ABC & XYZ & ABC & XYZ & ABC & XYZ & ABC & XYZ \\ 
    \midrule 
    1 & First  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
      & Second & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
      & Last   & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\  
    \bottomrule     
    \end{tabular*}
\end{table} 
\end{document}

答案2

使用tabularx 没有-columnX没有多大意义。这也是线条没有沿着整个表格绘制的原因(您固有地将宽度限制tabular为提供给 的第一个参数tabularx)。

解决方案是放弃tabularx此构造,并将其设置为常规tabular

在此处输入图片描述

\documentclass{article}

\usepackage{booktabs}

\begin{document}

\begin{table}
  \caption{My Table title}
  \begin{tabular}{@{} ll *{10}{c}}
    \toprule
    & & 
      \multicolumn{2}{c}{Experiment 1} & 
      \multicolumn{2}{c}{Experiment 2} & 
      \multicolumn{2}{c}{Experiment 3} & 
      \multicolumn{2}{c}{Experiment 4} & 
      \multicolumn{2}{c}{Experiment 5} \\
    \cmidrule(r{1ex}){3-4} 
      \cmidrule(r{1ex}){5-6} 
      \cmidrule(r{1ex}){7-8} 
      \cmidrule(r{1ex}){9-10} 
      \cmidrule(r{1ex}){11-12}
      &                       & ABC  & XYZ  & ABC  & XYZ  & ABC  & XYZ  & ABC  & XYZ  & ABC  & XYZ  \\
    \midrule
            & \textit{First Round}  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
    Group 1 & \textit{Second Round} & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
            & \textit{Last Round}   & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\  
    \bottomrule     
  \end{tabular}
\end{table} 

\end{document}

答案3

为了完整性,使用tabularray包的版本:

\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs}

\begin{document}
    \begin{table}[ht]
\caption{My table title\strut} 
\label{tab1}
    \begin{tblr}{colsep=3pt,
                 colspec = {@{} lQ[l, font=\itshape] *{10}{X[c]} @{}},
                 cell{1}{3} = {c=10}{c},
                 cell{1}{1,2} = {r=3}{h},
                 cell{2}{odd[3]} = {c=2}{}
                 }
    \toprule
        & Round &   Experiments
                    &   &   &   &   &   &   &   &   &   \\
    \cmidrule{3-12}
        &       & 1 &   & 2 &   & 3 &   & 4 &   & 5 &   \\
    \cmidrule[lr]{3-4} \cmidrule[lr]{5-6} \cmidrule[lr]{7-8} \cmidrule[lr]{9-10} \cmidrule[lr]{11-12}
        &       & ABC   & XYZ   & ABC   & XYZ   & ABC   & XYZ   & ABC   & XYZ   & ABC   & XYZ \\
    \midrule
        & First & 0.87  & 0.67  & 0.50  & 0.61  & 0.47  & 0.58  & 0.49  & 0.50  & 0.41  & 0.52 \\
Group 1 & Second& 0.87  & 0.67  & 0.50  & 0.61  & 0.47  & 0.58  & 0.49  & 0.50  & 0.41  & 0.52 \\
        & Last  & 0.87  & 0.67  & 0.50  & 0.61  & 0.47  & 0.58  & 0.49  & 0.50  & 0.41  & 0.52 \\
    \bottomrule
\end{tblr}
    \end{table}
\end{document}

在此处输入图片描述

答案4

请注意,tabularx至少需要一X列,但没有实际用途。

表格中应尽可能避免重复,这里有(长)单词“实验”:进一步的标题使表格更紧凑。

为群组保留一列也会浪费宝贵的空间。

\documentclass{article}
\usepackage{booktabs,siunitx,caption}

\begin{document}

\begin{table}[!htbp]

\caption{My Table title} \label{tab1}

\setlength{\tabcolsep}{0pt}

\begin{tabular*}{\textwidth}{
  @{\extracolsep{\fill}}
  l
  *{10}{S[table-format=1.2]}
}
\toprule
& \multicolumn{10}{c}{Experiment} \\
\cmidrule{2-11}
& \multicolumn{2}{c}{1}
& \multicolumn{2}{c}{2}
& \multicolumn{2}{c}{3}
& \multicolumn{2}{c}{4}
& \multicolumn{2}{c}{5} \\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9} \cmidrule{10-11}
& {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} & {ABC} & {XYZ} \\
\midrule
\multicolumn{11}{l}{\itshape Group 1} \\
First Round  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
Second Round & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
Last  Round  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\  
\midrule
\multicolumn{11}{l}{\itshape Group 2} \\
First Round  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
Second Round & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\
Last  Round  & 0.87 & 0.67 & 0.50 & 0.61 & 0.47 & 0.58 & 0.49 & 0.50 & 0.41 & 0.52 \\  
\bottomrule
\end{tabular*}

\end{table} 

\end{document}

在此处输入图片描述

如果每个表只有一个组,则将“组 1”放在标题的第一列,“实验”的左边。

相关内容