\documentclass[12pt]{article}
\usepackage[showframe,nohead]{geometry}
\usepackage{fontspec}
\topskip0pt
\begin{document}
foo
\vspace*{\fill}
bar
\vspace*{\fill}
\end{document}
第二个垂直间距比第一个小。为什么?如何实现相等间距?
答案1
第一个垂直空间小于、等于或大于第二个垂直空间,具体取决于测量的位置。
添加\showoutput
你看到
首先是
....\glue 0.0 plus 1.0fill
....\glue 0.0
....\glue(\parskip) 0.0 plus 1.0
....\glue(\baselineskip) 6.05202
由于胶水拉伸顺序意味着fill
第二和第三个胶水不起作用,因此恰好有fill glue to the (invisible) notional position above
条then the 6pt required (due to the height of
b`) 将条定位在该点下方一个基线跳跃处。
第二是
....\glue 0.0 plus 1.0fill
....\glue 0.0
....\glue 0.0 plus 1.0fil
....\glue 0.0
....\glue 0.0 plus 0.0001fil
...\glue(\baselineskip) 22.02
类似地,第 2、3、4 个粘连没有任何贡献,因此在主文本框的底部(showframe 绘制规则的地方)恰好有 1 个填充粘连,然后(注意...
显示少一个框级别)到页码有 22pt 的空间。
所以换句话说,如果不是测量到b
实际存在的顶部而是测量到像 ( 这样的大符号所在的概念点,则第一个垂直空间将与第二个垂直空间相同。
你可以使用
\nointerlineskip
bar
但是文本的位置将取决于单词中的字符,而这通常不是我们想要的。