以多行结尾的行没有右边框?

以多行结尾的行没有右边框?

我有一张桌子:

\begin{tabularx}{\textwidth}{|>{\color{white}}>{\columncolor[gray]{0}}l X | X | X | X |}
  \cline{1-2}
  Proposal Code           & \\
  \hline
  Short Description       & \multicolumn{4}{X}{} \\
  \hline
  \multirow{2}{*}{Spread} &   &   &   &   \\
  \cline{2-5}
                          &   &   &   &   \\
  \hline
\end{tabularx}

这将创建一个包含四行的表:

  • 一排短的,有两个小的单元格。这个很好用。
  • 一排长,有一个小单元和一个大单元。
  • 两排长格,每排有五个小格,第一格为多排。

第一行工作正常。第二行没有右边框,尽管第二列和第五列在其他地方有边框。这是怎么回事?

答案1

您的代码有两个主要问题:

  • 四个窄列实际上是 类型X|,而不是X;请注意,每个列都与右侧的垂直线相关联。这解释了为什么

    \multicolumn{4}{X}{}
    

    无法在右边缘绘制垂直线。需要的是

  • 但是,这仍然不太正确,因为这个“宽”列中的任何文本都只占据四列中第一列的宽度。那么,真正需要的是

    \multicolumn{4}{>{\hsize=4\hsize}X|}{}
    

    这样,如果您开始为组合单元格提供文本材料,它将占据所有四个底层窄列。

还有一个相对次要的观点:不要把

\multirow{2}{*}{Spread}

在第三行,你应该放置

\multirow{-2}{*}{Spread}

在第四行。

我也会>{\color{white}}>{\columncolor[gray]{0}}用 来替换>{\color{white}\columncolor[gray]{0}}

结果:

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx,multirow}
\usepackage[table]{xcolor}
\begin{document}
\noindent % <-- important
\begin{tabularx}{\textwidth}{ | >{\color{white}\columncolor[gray]{0}}l *{4}{X|} }
  \cline{1-2}
  Proposal Code            & \\
  \hline
  Short Description        & \multicolumn{4}{>{\hsize=4\hsize}X|}{bla bla bla bla bla bla bla} \\
  \hline
                           &   &   &   &   \\
  \hline
  \multirow{-2}{*}{Spread} &   &   &   &   \\
  \hline
\end{tabularx}
\end{document}

相关内容