3

我有一个复杂的长表,其中包含多个级别的嵌套表格环境。为了让文本在单元格内换行并使内容在顶部对齐,我使用 \parbox[t][][t],但是,parbox 的高度是在没有任何边距的情况下计算的,因此以下 \hline 与文本重叠。

重现此行为的最小示例是

\documentclass{article}
\begin{document}

\begin{tabular} {|p{0.2\textwidth}|}
  \hline

  This cell looks good. \\
  \hline

  \parbox[t][][t]{1.0\linewidth}{
    Not so happy with this.
  } \\
  \hline

\end{tabular}

\end{document}

这会产生以下输出(抱歉,还不能发布图像): 生成输出的图像

当然,在上面的示例中没有理由使用 parbox,但我在实际文档中需要它们。

我想避免提供 parbox 的高度(例如 \parbox[t][5cm][t])。有没有一种干净的方法可以在 parbox 底部或 hline 之前添加边距?

4

1 回答 1

1

很抱歉回答我自己的问题,但我通过在 parbox的每个单元格中添加 vspace 找到了解决方案。

这是代码:

\documentclass{article}
\begin{document}

\newcommand{\pb}[1]{\parbox[t][][t]{1.0\linewidth}{#1} \vspace{-2pt}}

\begin{tabular} {|p{0.2\textwidth}|}
  \hline

  This cell looks good. \\
  \hline

  \pb{
    Now I'm happy with this.
  } \\
  \hline

\end{tabular}

\end{document}

输出:生成输出的图像

我之前错过了,因为我在 parbox 的右大括号和 vspace 之间没有空格。事实证明,空间至关重要。

于 2013-08-08T03:41:19.420 回答