禁忌环境后的垂直间距

禁忌环境后的垂直间距

当创建具有两行的禁忌时,与创建仅一行的禁忌相比,我在环境后获得了更多的垂直间距。

在下面的文档中,第一个 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”。

相关内容