![禁忌环境后的垂直间距](https://linux22.com/image/404929/%E7%A6%81%E5%BF%8C%E7%8E%AF%E5%A2%83%E5%90%8E%E7%9A%84%E5%9E%82%E7%9B%B4%E9%97%B4%E8%B7%9D.png)
当创建具有两行的禁忌时,与创建仅一行的禁忌相比,我在环境后获得了更多的垂直间距。
在下面的文档中,第一个 tabu 有两行,表格末尾和其下方的规则之间有一个小空格。在第二个 tabu 中,我只有一行,其下方有一个较大的空格。
\documentclass{article}
\usepackage{geometry}
\usepackage{tabu}
\geometry{a4paper}
\begin{document}
\begin{tabu} to \textwidth {X X}%
These are words & in the first line \\%
These are more words & in the second line%
\end{tabu}\par%
\rule{\textwidth}{0.4pt}\par%
%
%
\vspace{2em}\par%
%
%
\begin{tabu} to \textwidth {X X}%
These are words & in the first line%
\end{tabu}\par%
\rule{\textwidth}{0.4pt}\par%
%
\end{document}
我一直非常小心(我认为)处理禁忌周围的空格,除了行数不同之外,我发现这两个表没有什么区别。
我知道我可以通过\vspace{0.5em}
在禁忌之后添加一个或类似的小间距来解决这个问题,但是我在自定义命令中使用表格,如果可能的话,我想避免像这样的硬编码解决方案。
如果我用表格代替禁忌,也会出现这个问题。添加\tabulinesep=Xem
修复(或似乎修复)了大 X(> 1em)的问题,但我需要较小的间距(理想情况下,~0em)。
有任何想法吗?
答案1
这与 无关tabu
,也与tabular
或类似环境无关。
我们可以用 复制这个“问题” \parbox
。在下面的代码中, 产生的红线\test
显示了 TeX 认为的基线所在的位置。
\documentclass{article}
\usepackage{xcolor}
\newcommand{\test}{\textcolor{red}{\llap{\smash{\rule{12pt}{0.4pt}}}}}
\setlength{\parindent}{0pt}
\begin{document}
\test \parbox{4cm}{One liner xyz}\par
\test \rule{4cm}{0.4pt}
\bigskip
\test \parbox{4cm}{First line \\ second line xyz}\par
\test \rule{4cm}{0.4pt}
\bigskip
\test \parbox{4cm}{First line \\ second line \\ third line xyz}\par
\test \rule{4cm}{0.4pt}
\bigskip
\test \parbox[b]{4cm}{First line \\ second line xyz}\par
\test \rule{4cm}{0.4pt}
\end{document}
如您所见,当我们有两条或更多条线时,\parbox
相对于基线而言, 几乎处于中心位置(实际上,稍微上移了一点)。下一段只有一个规则,它的高度非常小,因此当 TeX 进行常规计算时,它会发现在“两条线”的情况下,基线之间的正常距离可以保留;在“三条线”的情况下, 的深度\parbox
非常大,因此\lineskip
会插入粘连。
如果您选择该[b]
选项(该选项也适用于tabular
类似环境),则基线之间的距离就是标准。
因此,改变的不是“下方的空间tabu
”。