\topskip
由于地址字段的原因,我尝试在第一页上写一封具有不同值的信件。这很有效:
\tracingoutput=1%
\pdfpagewidth=210mm%
\pdfpageheight=297mm%
\hsize=\pdfpagewidth \advance\hsize by -50mm%
\vsize=\pdfpageheight \advance\vsize by -50mm%
\advance\hoffset by -1in \advance\hoffset by 25mm%
\advance\voffset by -1in%
\parindent=0pt%
%
\topskip=130mm%
Page 1
\vfill\eject
\topskip=50mm%
Page 2
\bye
现在我尝试将定义移入\makeheadline
,但根本不起作用。
\def\makeheadline{
\ifnum\pageno=1
\topskip=130mm
\else
\topskip=50mm
\fi
\nointerlineskip}
如果第一页不起作用,我也能理解。但是,无论第一页还是第二页,它都不起作用。
怎样修改才是正确的\topskip
?
答案1
Plain TeX 的\makeheadline
宏用于将页头添加到最终输出的页面后分页已完成:
\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
\advancepageno
...
由于设置的时间不对,所以\topskip
对间距没有任何影响。\topskip
在将第一个(通常是行)框添加到每个页面时进行咨询,它需要产生影响前分页,因此,如果您有较大的顶部跳过行,则行将从页面的较低位置开始,并且可以容纳较少的内容。
要在第一页安排更大的空间,只需设置\topskip
为标准的后续页面,然后插入
\vglue 80mm
在第一页,可以明确地或通过将其添加到文档的任何标题或打开命令的定义中。\vglue
是一个包装vskip
原始内容但插入规则的宏,以便空格不会在页面开头被删除。