我需要一个有 4 行、3 列的表格,并在第 2-3 列中有一条部分水平线。我尝试过:
\documentclass{article}
\begin{document}
\begin{table}
{
\begin{center}
\begin{tabular}{|c|c|c|}
\hline
Col 1 & \multicolumn{2}{|c|}{Col 2-3 Heading}\\
\cline{2-3} & Col 2 & Col 3\\
\hline
- & - & -\\
\hline
- & - & - \\
\hline
- & - & - \\
\hline
\end{tabular}
\end{center}
}
\end{table}
\end{document}
结果如下:
请注意,第 2 列和第 3 列的宽度不相等。我该如何解决这个问题?
答案1
如果使用生成的跨越单元格的内容的宽度\multicolumn
大于单个单元格内容的宽度,则额外的空间将添加到最后一个跨越列,正如您所体验过的,此示例显示得更清楚:
\documentclass{article}
\begin{document}
\noindent\begin{tabular}{|c|c|c|c|}
\hline
A & \multicolumn{3}{c|}{Some text just for the example} \\
\hline
B & C & D & E \\
\hline
\end{tabular}
\end{document}
两个选项:您可以更改为居中p{...}
列(这两个选项显示有无tabularx
包时的相同方法):
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}p{1.5cm}}
\newcolumntype{Y}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}
\centering
\begin{tabular}{|c|c|c|}
\hline
Col 1 & \multicolumn{2}{c|}{Col 2-3 Heading}\\
\cline{2-3} & Col 2 & Col 3\\
\hline
- & - & -\\
\hline
- & - & - \\
\hline
- & - & - \\
\hline
\end{tabular}
\end{table}
\begin{table}
\centering
\begin{tabular}{|C|C|C|}
\hline
Col 1 & \multicolumn{2}{c|}{Col 2-3 Heading}\\
\cline{2-3} & Col 2 & Col 3\\
\hline
- & - & -\\
\hline
- & - & - \\
\hline
- & - & - \\
\hline
\end{tabular}
\end{table}
\begin{table}
\centering
\begin{tabularx}{6cm}{|Y|Y|Y|}
\hline
Col 1 & \multicolumn{2}{c|}{Col 2-3 Heading}\\
\cline{2-3} & Col 2 & Col 3\\
\hline
- & - & -\\
\hline
- & - & - \\
\hline
- & - & - \\
\hline
\end{tabularx}
\end{table}
\end{document}
与问题无关:最好在浮点数内部使用\centering
,而不是在center
环境中使用;后者会增加额外的垂直空间,而这在大多数情况下是不需要的。