![表格 p{...} 行之间的垂直跳跃](https://linux22.com/image/288313/%E8%A1%A8%E6%A0%BC%20p%7B...%7D%20%E8%A1%8C%E4%B9%8B%E9%97%B4%E7%9A%84%E5%9E%82%E7%9B%B4%E8%B7%B3%E8%B7%83.png)
我想稍微增加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
许多其他表格包)。