在 \vspace 中插入一些胶水通常是个好主意吗?

在 \vspace 中插入一些胶水通常是个好主意吗?

我见过很多类似的帖子\parskip 延伸超出预期里面使用了一些胶水。我想知道在所有情况下,\vspace定义一个带有胶水的新命令来替换正常命令是否是个好主意。比如\vspace

\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}

我试图说服自己,这样的命令对于简单的情况很有用,但没有成功。例如,我使用了

some test line ffppp \vspacewithglue{2}{0}{0}\\
some test line ffppp \vspacewithglue{2}{-1}{1}\\
some test line ffppp \vspacewithglue{2}{1}{1}\\

没有任何区别。所以我有点困惑。也许有一些“特殊”情况(如上面的帖子)确实需要这样的命令,但通常没有必要。\\[...ex]如果真的需要,也许最好使用众所周知的命令并让 TeX 放置一些胶水。

我知道这个问题有点模糊,或者可能已经回答过了。欢迎在评论中编辑或提出建议。

答案1

像问题中那样,在段落的行之间设置可伸缩的粘连几乎从来都不是一个好主意。段落应设置为一致的块。根据文档设计,您可能希望或不希望显示单元(例如段落、列表等)之间的粘连是可伸缩的。特别是在两列模式下,段落之间的可伸缩粘连可能会造成干扰,因为两列中的段落空间会有所不同,并且文本的基线根本不会对齐。

此外,如果像您在段落中使用的问题一样\vspace,效果定义明确但略显奇怪:空格不是在命令处添加的,\vspace而是在段落分成几行之后,在添加的行之后添加的vspace

some test line ffppp \vspace{10pt}\\

是相同的

some test  \vspace{10pt}line ffppp\\

如果像在文章文档类中常见的那样,\raggedbottomfil在页面末尾添加粘连,因为这是无限可拉伸的,所以添加的任何有限拉伸粘连都不会拉伸,并且只会使用自然长度组件。

在某些文档类别(包括默认文档类别)中,段落之间的一些小延伸有助于分页(LaTeX 将默认值设置\parskip0pt plus 1pt),但通常这应该是文档范围的设置,而不是在每种情况下手动调整。

请注意,如果你在某些特殊情况下确实需要在换行符处进行拉伸,则不需要使用新命令\\[5pt plus 5pt]

答案2

您的命令按预期工作,但正如 David 已经写过的,在段落内使用这种可伸缩空间是一个非常糟糕的主意。

\documentclass[12pt]{book}
\usepackage{lipsum}

\newcommand{\vspacewithglue}[3]{\vspace{#1\baselineskip plus #2\baselineskip minus #3\baselineskip }}
\textheight=10cm
\begin{document}
xxxxx

some test line ffppp \\
some test line ffppp \vspacewithglue{0}{1}{1}\\
some test line ffppp \\


xxxxx
\pagebreak %to force the page to stretch

xxxx
\end{document}

在此处输入图片描述

相关内容