具有相等列的表格

具有相等列的表格

我需要一个有 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环境中使用;后者会增加额外的垂直空间,而这在大多数情况下是不需要的。

相关内容