这是一个简单的 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*
不消失的种类。