我已经创建了一个 LaTeX 表(使用tabular
)
\documentclass{article}
\begin{document}
\begin{tabular}{ c | c | c | c| c }
Heading 1 & \multicolumn{2}{c}{Heading 2} & \multicolumn{2}{c}{Heading 3} \\
1 & 2 & 3 &4 & 5\\
6 & 7 & 8 &9&10\\
\end{tabular}
\end{document}
但遇到了一些问题:
- 标题 2 和标题 3 之间没有垂直线
- “标题 2”下第 2 列和第 3 列的对齐方式未居中(而“标题 3”下第 4 列和第 5 列的对齐方式未居中)
- 第二列和第三列(以及第四列和第五列)的宽度不相等
这是为什么?任何帮助都将非常有帮助。
答案1
您需要c|
将规则放回跨度条目的末尾。
更难的是居中。如果一个跨越单元格比它所跨越的单元格宽,则所有超出的宽度都会进入跨越的最后一列。
避免这种情况的一种方法是使列自然变宽,这里我使用dcolumn
并填充它们,就像 1234.123 的形式,对齐也使得 10 和 5 可能正确对齐。
\documentclass{article}
\usepackage{dcolumn}
\newcolumntype{d}{D{.}{.}{4.3}}
\begin{document}
\begin{tabular}{ d | d | d | d| d }
\multicolumn{1}{c|}{Heading 1}&
\multicolumn{2}{c|}{Heading 2} &
\multicolumn{2}{c}{Heading 3} \\
1 & 2 & 3 &4 & 5\\
6 & 7 & 8 &9&10\\
\end{tabular}
\end{document}
答案2
有了,{NiceTabular}
您nicematrix
不必再次放入垂直规则\multicolumn
(根据设计)。
此外,您可以使用键固定所有列的宽度columns-width
。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{c|c|c|c|c}[columns-width=15mm]
Heading 1 & \multicolumn{2}{c}{Heading 2} & \multicolumn{2}{c}{Heading 3} \\
1 & 2 & 3 &4 & 5 \\
6 & 7 & 8 &9 & 10 \\
\end{NiceTabular}
\end{document}