\multicolumn 下的表格中最后一列的宽度不同

\multicolumn 下的表格中最后一列的宽度不同

我正在努力尝试将四列放在宽度相同且居中的多列下。这是代码:

\begin{table*}[ht]
    \centering
    \begin{tabular}{c|cccc|cc}
    \toprule
            \multirow{2}{*}{Model} & \multicolumn{4}{c|}{Percentage of predictions with error value}  &   \multirow{2}{*}{$\mu$} &   \multirow{2}{*}{$\sigma$} \\
               &   $<10\%$ &   $<5\%$  &   $<2\%$  &   $<1\%$\\
    \midrule
        Omega-Csi     &   100    &   99.95  &   98.52   &   95.77   &   -0.034  &   0.48\\
        9-Input, grid training   &   99.95    &   99.53  &   96.25   &   89.13   &   0.016  &   0.92\\
        9-Input, random training  &   100    &   99.94  &   99.51   &   97.98   &   -0.031  &   0.36\\
    \bottomrule
    \end{tabular}
    \caption{Percentage error characteristics of different model predictions on internal test sets}
    \label{tab:2}
\end{table*}

生成该表:

在此处输入图片描述

\setlength\tabcolsep{width} 不起作用,因为它会修改所有列的宽度,并使表格在均衡空间之前超出文本宽度。我希望所有列的 <% 值具有相同的宽度,并精确占据 \multicolumn 标题下的空间。

答案1

  • 单元格跨越的列的宽度总和\multicolumn应大于\multicolumn内容的宽度。如果不是,则最后一列跨越的列将相应加宽
  • 解决方案(在“经典”表中)是规定跨度列的适当宽度(在第一个表下方),或者
  • 对于表格使用tabularray包(版本 2022B),其选项hspan=even是注意跨列的宽度相等(下面的第二个表格)
  • 第二个表中还使用了包S中定义的列siunitx(在示例中为tabularray库加载),这些列能够在小数点对齐数字并使用数学˙-˙符号:
\documentclass[twocolumn]{article}
\usepackage[skip=1ex, font=small, labelfont=bf]{caption}
\usepackage{multirow, tabularx}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}

\begin{document}
\begin{table*}
\centering
\begin{tabular}{l | *{4}{>{\centering\arraybackslash} p{4em}} | cc}
    \toprule
\multirow{2}{*}{Model} 
        & \multicolumn{4}{c|}{Percentage of predictions with error value}  
                &   \multirow{2}{*}{$\mu$} &   \multirow{2}{*}{$\sigma$} \\
        & $<10\%$ & $<5\%$  & $<2\%$ & $<1\%$                           &           &       \\
    \midrule
Omega-Csi                &   100    &   99.95  &   98.52   &   95.77    & -0.034    & 0.48  \\
9-Input, grid training   &   99.95  &   99.53  &   96.25   &   89.13    &  0.016    & 0.92  \\
9-Input, random training &   100    &   99.94  &   99.51   &   97.98    & -0.031    & 0.36  \\
    \bottomrule
    \end{tabular}
\caption{Percentage error characteristics of different model predictions on internal test sets}
    \label{tab:2}
\end{table*}

\begin{table*}
\caption{Percentage error characteristics of different model predictions on internal test sets}
\centering
\begin{tblr}{colspec = {l |      Q[c, si={table-format=3.2}]
                            *{3}{Q[c, si={table-format=2.2}]}
                          |      Q[c, si={table-format=-1.3}]
                                 Q[c, si={table-format=1.2}] },
             hspan  = even,
             row{1} = {guard}
             }
    \toprule
\SetCell[r=2]{c} Model
    &   \SetCell[c=4]{c} Percentage of predictions with error value
        &   &   &   &   \SetCell[r=2]{c,$} \mu
                        &   \SetCell[r=2]{c,$}    \sigma    \\
    & \qty{<10}{\%} 
                &  \qty{<5}{\%}  
                        & \qty{<2}{\%}  
                                &  \qty{<1}{\%}  
                                        &           &       \\
    \midrule
Omega-Csi
    & 100       & 99.95 & 98.52 & 95.77 & -0.034    & 0.48  \\
9-Input, grid training
    &  99.95    & 99.53 & 96.25 & 89.13 &  0.016    & 0.92  \\
9-Input, random training
    & 100       & 99.94 & 99.51 & 97.98 & -0.031    &  0.36 \\
    \bottomrule
\end{tblr}
\end{table*}
\end{document}

笔记:由于在代码片段中使用table*浮点环境,我假设文档有两列。

编辑:ups,忘记添加表格图像了:-(。现在呈现的是:

在此处输入图片描述

答案2

找到了另一篇帮助我解决该问题的帖子。它还有很多其他不同格式的选项: 由于多列单元格太长,导致表格列宽不成比例

相关内容