表格 p{...} 行之间的垂直跳跃

表格 p{...} 行之间的垂直跳跃

我想稍微增加tabular表格的垂直间距。我做了类似的事情:

\documentclass{article}

\begin{document}

\begin{tabular}{p{4cm}p{4cm}}
  Lorem ipsum dolor sit amet consectetur & adipisicing elit \\[6pt]
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}

\end{document}

但令我惊讶的是,它不起作用——似乎额外的垂直空间[12pt]不知何故被(较短的) parbox 下方的空间所吞噬。我该怎么办?

答案1

您可以在第一列放置一个支柱。

\documentclass{article}
\begin{document}
\begin{tabular}{p{4cm}p{4cm}}
  Lorem ipsum dolor sit amet consectetur\rule[-6pt]{0pt}{6pt} & adipisicing elit \\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}
\end{document}

答案2

可以使用该\\机制,但必须考虑 的高度\parbox,无论是手动还是自动。如果要调整所有行,另一个选项是使用包\extrarowheight的参数array,否则\arraystretch如评论中所述。

\documentclass{article}
\usepackage{array}
\begin{document}

ORIGINAL

\begin{tabular}{p{4cm}p{4cm}}
  Lorem ipsum dolor sit amet consectetur & adipisicing elit \\[6pt]
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}

\hrulefill

CAN DO A SINGLE ROW, MANUALLY ACCOUNT FOR \verb|\parbox| HEIGHT

\begin{tabular}{p{4cm}p{4cm}}
  Lorem ipsum dolor sit amet consectetur & adipisicing elit \\[18pt]%
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}

\hrulefill

CAN DO A SINGLE ROW,AUTO- ACCOUNT FOR \verb|\parbox| HEIGHT

\def\x{Lorem ipsum dolor sit amet consectetur}
\setbox0=\hbox{\parbox[t]{4cm}{\x}}

\begin{tabular}{p{4cm}p{4cm}}
  \x & adipisicing elit \\[\dimexpr\dp0+6pt\relax]%
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}

\hrulefill

AFFECTS EVERY ROW:

\setlength\extrarowheight{6pt}
\begin{tabular}{p{4cm}p{4cm}}
  Lorem ipsum dolor sit amet consectetur & adipisicing elit \\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
\end{tabular}

\end{document}

在此处输入图片描述

答案3

如果没有垂直线,则可以通过以下方法解决

\noalign{\vspace{6pt}}

完整示例:

\documentclass{article}

\begin{document}
  \begin{tabular}{p{4cm}p{4cm}}
    Lorem ipsum dolor sit amet consectetur & adipisicing elit\\
  \noalign{\vspace{6pt}}%
    sed do eiusmod tempor incididunt ut labore & et dolore magna aliqua.\\
  \end{tabular}
\end{document} 

结果

使用\noalign垂直模式可以添加不受当前表格对齐限制的材料。

这种方法的主要缺点是垂直线会被打断:

结果中断垂直线

因此 LaTeX 使用这个实现消极的长度。那么垂直线的问题就小得多,因为它们在大多数情况下只是重叠。

如果值为正,则 LaTeX 会添加一条不可见的规则。高度和宽度为零,深度是给定值与深度之和标准表格线,支撑箱的深度增加了\arraystretch

更好的实现是跟踪行中所有单元格的最大深度。内存使用量的增加和运行时间的变慢可能是 LaTeX 早期的一个明显问题。如今实现这样的功能一点也不好玩,因为 99% 的实现都必须处理包兼容性(array以及colortbl许多其他表格包)。

相关内容