我有四列array
或tabular
。在第一行中,第二个单元格应该跨越两列,而在第二行中,第一个和第二个单元格都应该跨越两列。结果不是预期的结果(参见示例)。此外,使用tabular
垂直线对齐是错误的。添加第一行或最后一行“常规”行(带有数字的行)可以解决问题,但我当然不想有额外的行。为什么会发生这种情况?
\documentclass{article}
\begin{document}
\begin{tabular}{c|c|c}
& Wrong & Correct
\\
Array & $
\begin{array}{|c|c|c|c|} \hline
a & \multicolumn{2}{c|}{b} & c \\ \hline
\multicolumn{2}{|c|}{d} & \multicolumn{2}{c|}{e} \\ \hline
\end{array}
$ & $
\begin{array}{|c|c|c|c|} \hline
1 & 2 & 3 & 4 \\ \hline
a & \multicolumn{2}{c|}{b} & c \\ \hline
\multicolumn{2}{|c|}{d} & \multicolumn{2}{c|}{e} \\ \hline
\end{array}
$ \\ \hline
Tabular &
\begin{tabular}{|c|c|c|c|} \hline
a & \multicolumn{2}{c|}{b} & c \\ \hline
\multicolumn{2}{|c|}{d} & \multicolumn{2}{c|}{e} \\ \hline
\end{tabular}
&
\begin{tabular}{|c|c|c|c|} \hline
a & \multicolumn{2}{c|}{b} & c \\ \hline
\multicolumn{2}{|c|}{d} & \multicolumn{2}{c|}{e} \\ \hline
1 & 2 & 3 & 4 \\ \hline
\end{tabular}
\end{tabular}
\end{document}
答案1
恐怕这就是预期的结果:在排版表格时,单元格总是与其他单元格合并的列实际上被删除了。您需要固定宽度的列,并删除列间空间。
\documentclass{article}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\begin{document}
\begingroup\setlength{\tabcolsep}{0pt}
\begin{tabular}{|C{2em}|C{2em}|C{2em}|C{2em}|} \hline
a & \multicolumn{2}{C{4em}|}{b} & c \\ \hline
\multicolumn{2}{|C{4em}|}{d} & \multicolumn{2}{C{4em}|}{e} \\ \hline
\end{tabular}
\endgroup
\end{document}