我如何使用类似 \vspace{\baselineskip plus 10pt}

我如何使用类似 \vspace{\baselineskip plus 10pt}

\baselineskip里面可以加一些胶水\vspace吗?

\documentclass{scrartcl}

\begin{document}
Text

\vspace{\baselineskip}
Works

\vspace{12pt plus 10pt minus 5pt}
Works

\vspace{\baselineskip plus 10pt minus 5pt}
Fails \dots
\end{document}

答案1

由于\vspace想要一个“胶水”作为其论点,并且\baselineskip 胶水参数,\vspace{\baselineskip plus 10pt minus 5pt}是不正确的;最简单的方法是说

\vspace{1\baselineskip plus 10pt minus 5pt}

1\baselineskip其变成一个简单的维度,丢弃它的可能性plusminus组成部分。

通常\baselineskip没有拉伸和收缩分量。如果要稳妥起见,将拉伸分量增加 10pt,将收缩分量增加 5pt,无论它们是什么,“正确”的方法是

\vspace{\glueexpr\baselineskip + 0pt plus 10pt minus 5pt\relax}

注意:\vspace{\dimexpr\baselineskip plus 10pt minus 5pt\relax}之所以有效,是因为当 TeX 扫描时,\dimexpr它会到达p不能成为维度表达式一部分的,并停止扫描,因为它已经转换\baselineskip为维度,丢弃了拉伸和收缩组件。所以最终结果\relax不是和 的分隔符\dimexpr将进入输入流(在那里它可能没有危害)。

相关内容