TeX 忽略文档开头的 \vskip

TeX 忽略文档开头的 \vskip

这是一个简单的 Plain TeX 代码片段,用于演示

\vskip 3in
Aaaaa
\vskip 3in
Bbbbb
\end

当我使用 pdftex 编译此文件时,我希望看到一个 3 英寸高的空白,然后是 Aaaaa,接着是另一个 3 英寸高的空白,然后是 Bbbbb。但第一个 \vskip 似乎被 TeX 忽略了。

另一方面,当我这样做时

\hrule height 0pt
\vskip 3in
Aaaaa
\vskip 3in
Bbbbb
\end

输出符合我的预期。但我看不出为什么需要虚拟 0 点规则。

答案1

分页符处的垂直空间被删除。文档的开始被视为发生在分页符处。使用\vglue代替\vskip“非消失空间”。

摘自 TeXbook,第 352 页

你可以通过说 来获得永不消失的水平空间\hglue<glue>;这个空间可以伸展或收缩。同样,有一个垂直模拟,\vglue<glue>

页面和段落的处理方式有所不同:\hskip段落开头的缩进框不会消失,因为缩进框总是插入在段落开头。

如果你注意到,TeXbook 中的第一个例子,story.tex以 开头,\hrule以避免下面的垂直空间消失。


上述考虑适用于 Plain TeX;在 LaTeX 中,应该使用\vspace“消失空间”和\vspace*不消失的种类。

相关内容