答案1
为了实现这一点,您可以使用\cline
不应覆盖所有列的水平规则,并\multicolumn
覆盖您不想有垂直规则的列的定义以及您想要连接在一起的列的定义。
关于合并单元格宽度计算的简短说明:我们将合并单元格的单个宽度相加,但实际宽度会更大,缺少的是添加到列的每一侧的填充(3 列意味着宽度为 6 个填充\tabcolsep
,新列的填充为 2 -> 4\tabcolsep
)。现在,如果您不加载包,array
表格的垂直规则不会占用任何空间,我们就完成了。但是一旦array
加载,情况就会发生变化。所以如果,并且仅当,array
加载后您还必须\arrayrulewidth
为每个垂直规则添加,否则这些规则将位于连接的列之间(因此在这种情况下如果加载2\arrayrulewidth
则需要添加)。array
以下内容未加载,array
因此2\arrayrulewidth
被省略。
\documentclass[border=3.14]{standalone}
\begin{document}
\begin{tabular}{| p{3cm} | p{1cm} | p{1cm} | p{1cm} |
p{4cm} | p{1cm} | p{1cm} | p{1cm} |}
\cline{2-4}
\cline{6-8}
\multicolumn{1}{c}{} &
\multicolumn{3}{|p{\dimexpr3cm+4\tabcolsep\relax}|}{aaa}
& &
\multicolumn{3}{|p{\dimexpr3cm+4\tabcolsep\relax}|}{bbb} \\
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline
\end{tabular}
\end{document}
答案2
这样tabularray
您就不会遇到计算多列单元格宽度的问题:
\documentclass[border=3.14]{standalone}
\usepackage{xcolor}
\usepackage{tabularray}
\begin{document}
\begin{tblr}{hline{2-Z} = {1-Z}{solid},
vline{2-Z} = {1-Z}{solid},
vline{1} = {2-Z}{solid},
colspec = {Q[wd=3cm,l] *{3}{Q[wd=1cm,l]} Q[wd=4cm,l] *{3}{Q[wd=1cm,l]}},
row{Z} = {bg=gray9}, }
\cline{2-4}
\cline{6-8}
& \SetCell[c=3]{l}
& & & & \SetCell[c=3]{l}
& & \\
& & & & & & & \\
& & & & & & & \\
& & & & & & & \\
\end{tblr}
\end{document}
答案3
你可以在 Word 中做到这一点并不意味着应该复制它……
无论如何,您不应该p
对此应用程序使用列,而是w
使用列(array
需要包)。
\documentclass{article}
\usepackage{array}
\newlength{\tunit}
\setlength{\tunit}{0.5cm}
\begin{document}
\begin{tabular}{
| w{l}{3\tunit} |
w{c}{1\tunit} |
w{c}{1\tunit} |
w{c}{1\tunit} |
w{l}{4\tunit} |
w{c}{1\tunit} |
w{c}{1\tunit} |
w{c}{1\tunit} |
}
\cline{2-4} \cline{6-8}
\multicolumn{1}{c|}{} &
\multicolumn{3}{c|}{aaa} &
\multicolumn{1}{c|}{} &
\multicolumn{3}{c|}{bbb} \\
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline
\end{tabular}
\end{document}
注意,不需要计算。我只是引入了长度的参数,因为 13 厘米太大了。
您可以根据自己的喜好修改单元格对齐方式。
答案4
与。{NiceTabular}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}
[first-row,hvlines]
{w{l}{15mm}w{c}{5mm}w{c}{5mm}w{c}{5mm}w{l}{20mm}w{c}{5mm}w{c}{5mm}w{c}{5mm}}
& \Block[draw]{1-3}{aaa} &&&& \Block[draw]{1-3}{bbb} \\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\end{NiceTabular}
\end{document}