多列跨度错误

多列跨度错误

我有四列arraytabular。在第一行中,第二个单元格应该跨越两列,而在第二行中,第一个和第二个单元格都应该跨越两列。结果不是预期的结果(参见示例)。此外,使用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}

在此处输入图片描述

相关内容