我想从我的代码中删除黄色的两行
\begin{tabular}{|c|c|c|c||c|c|c|}
\hline
\multirow{3}{*}{} & \multicolumn{6}{c|}{40 Mod}\\
\hline
& \multicolumn{3}{c||}{method A} & \multicolumn{3}{c|}{method B} \\
\hline
& 1 & 2 & 3 & 1 & 2 & 3 \\
\hline
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32 \\
\hline
\end{tabular}
答案1
这是使用软件包制作的替代方案tabularray
。我包括了一张与您的表格类似的表格和另一张表格(在我看来更好看)。在这种情况下,您可能不需要该siunitx
库,但以防万一……
\documentclass{article}
\usepackage{lipsum} % dummy text
\usepackage{tabularray}
\UseTblrLibrary{booktabs,siunitx}
\begin{document}
\lipsum[1]
\begin{table}[ht]\centering
\caption{Original table with \texttt{tabularray}.}
\begin{tblr}
{% format
vlines,hlines,vline{5}={2}{-}{},
colspec={ccccccc},
cell{1}{1}={r=3,c=1}{}, % multirow
cell{1}{2}={r=1,c=6}{}, % multicolumn
cell{2}{2,5}={r=1,c=3}{}, % multicolumn
}% content
& 40 Mod\\
& method A && & method B \\
& 1 & 2 & 3 & 1 & 2 & 3 \\
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32
\end{tblr}
\end{table}
\lipsum[2]
\begin{table}[ht]\centering
\caption{Alternative table also with \texttt{tabularray}.}
\begin{tblr}
{% format
colspec={cS[table-format=1.2]
S[table-format=1.2]
S[table-format=1.2]
S[table-format=1.2]
S[table-format=1.2]
S[table-format=1.2]},
cell{1}{1}={r=3,c=1}{}, % multirow
cell{1}{2}={r=1,c=6}{}, % multicolumn
cell{2}{2,5}={r=1,c=3}{}, % multicolumn
}% content
\toprule
& {{{40 Mod}}}\\
\cmidrule[lr]{2-7}
& {{{method A}}} & & & {{{method B}}} \\
\cmidrule[lr]{2-4} \cmidrule[lr]{5-7}
& {{{1}}} & {{{2}}} & {{{3}}}& {{{1}}} & {{{2}}} & {{{3}}} \\
\midrule
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32 \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
答案2
这是一个使用tabular
环境的解决方案,即书签包装内无垂直线。
\documentclass{article}
\usepackage{array,booktabs}
\begin{document}
\begin{tabular}{@{} l cccccc @{}}
\toprule
& \multicolumn{6}{c@{}}{40 Mod}\\
\cmidrule(l){2-7}
& \multicolumn{3}{c}{Method A} & \multicolumn{3}{c@{}}{Method B} \\
\cmidrule(lr){2-4} \cmidrule(l){5-7}
& 1 & 2 & 3 & 1 & 2 & 3 \\
\midrule
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32 \\
\bottomrule
\end{tabular}
\end{document}
答案3
\multirow
没什么用。
\documentclass{article}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|c|c|c||c|c|c|}
\hline
& \multicolumn{6}{c|}{40 Mod}\\
\cline{2-7}
& \multicolumn{3}{c||}{method A} & \multicolumn{3}{c|}{method B} \\
\cline{2-7}
& 1 & 2 & 3 & 1 & 2 & 3 \\
\hline
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32 \\
\hline
\end{tabular}
\end{document}
现在问问自己垂直线在这里起什么作用。答案是它们只是妨碍阅读表格。
\documentclass{article}
\usepackage{array,booktabs,siunitx}
\begin{document}
\begin{tabular}{
@{}
r
*{3}{S[table-format=1.2]}
c
*{3}{S[table-format=1.2]}
@{}
}
\toprule
& \multicolumn{7}{c}{40 Mod} \\
\cmidrule{2-8}
& \multicolumn{3}{c}{method A} && \multicolumn{3}{c}{method B} \\
\cmidrule(lr){2-4} \cmidrule(l){6-8}
& {1} & {2} & {3} && {1} & {2} & {3} \\
\midrule
0 & 0.68 & 0.81 & 0.73 && 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 && 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 && 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 && 0.34 & 0.30 & 0.32 \\
\bottomrule
\end{tabular}
\end{document}
虚拟列取代了您的双重规则。
答案4
{NiceTabular}
以下是使用 的解决方案nicematrix
。在该环境下,您可以使用命令 合并行和列\Block
。然后,垂直规则(由 指定,|
在前言中)和水平规则(由 指定\Hline
)将遵守这些块。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{|c|c|c|c||c|c|c|}
\Hline
\Block{3-1}{} & \Block{1-6}{40 Mod}\\
\Hline
& \Block{1-3}{method A} &&& \Block{1-3}{method B} \\
\Hline
& 1 & 2 & 3 & 1 & 2 & 3 \\
\Hline
0 & 0.68 & 0.81 & 0.73 & 0.67 & 0.86 & 0.74 \\
1 & 0.93 & 0.87 & 0.90 & 0.93 & 0.89 & 0.91 \\
2 & 0.98 & 0.92 & 0.94 & 0.98 & 0.91 & 0.94 \\
3 & 0.35 & 0.30 & 0.32 & 0.34 & 0.30 & 0.32 \\
\Hline
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
booktabs
不过,我更喜欢本着(参见 Juan Castaño 的回答)精神的设计。