我正在努力尝试将四列放在宽度相同且居中的多列下。这是代码:
\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
找到了另一篇帮助我解决该问题的帖子。它还有很多其他不同格式的选项: 由于多列单元格太长,导致表格列宽不成比例