设置\topskip
为0pt
混淆 LaTeX 的\clearpage
命令并导致出现额外的空白页。这是已知的自古以来. 显然有些人认为
没有理由设置
\topskip
为0pt
,所以这不被视为错误。
然而,有很多丑陋的变通方法挑战了这一说法,比如在链接页面中
教训是:不要设置
\topskip = 0pt
,而是将其设置为0.01pt
。除了 LaTeX 之外,没有人会更聪明。
显然,人们确实时不时需要这种设置,原因就是第一个引言的作者简单地从桌子上抹去的,这个问题不断出现,让用户感到惊讶。我自己在希望以像素精度到达页面边缘时发现了这一点。一旦\topskip
非零,它将要弄乱这些东西,因为即使它是固定的(即使可以忽略不计),也会发生非平凡的依赖于内容的计算(TeXBook 第 114 页):
... TeX 在每页的第一个框之前插入特殊粘连。此特殊粘连等于
\topskip
,只是自然空间已减少了第一个框的高度,或者已将其设置为零而不是负值。
零 topskip 真的应该被视为禁忌吗?如果是,为什么?(TeXBook 没有给出它不应该是任何可能维度的理由,除了负数没有多大意义。)
更新
好吧,我的前提是错误的。由于旧的新闻组帖子和这个网站上的另一个答案,我认为这是众所周知的行为。这里的答案证实了这一点
- 它是一个错误,
- 它没有被追踪。
原因确实是好奇,而不是愤怒之类的情绪。我投票删除此问题,因为在这种情况下,它不再起到应有的作用。我希望这不会让大家损失分数。抱歉,形式不当。
答案1
由于从未报告过,因此尚未修复。我在错误数据库中找到了一些关于\topskip
双列模式问题的信息(已添加检查),但没有找到有关您的示例的信息。
一个常见的问题是,人们更喜欢抱怨错误,而不是尝试做一些事情来解决它 - 在这种情况下:寻找 LaTeX 错误跟踪器并添加问题。
除此之外,classes.dtx 中还有一条关于 topskip 的注释:
是页面第一行的;如果它的值为 0pt,LaTeX 的输出例程将无法正常工作,所以不要这样做
\topskip
!\baselineskip
答案2
(这在某种程度上是对Ulrike Fischer 的回答,但内容太过实质性,不足以作为评论。)
LaTeX 的开发并不是一个只有向业内人士询问才能了解的神秘事物。它公开地进行着在 Github 上您可以根据自己的喜好详细查看。特别是,报告错误的流程非常简单,并且以前报告的错误的数据库也很容易搜索。
- 关于如何处理错误的详细说明:https://www.latex-project.org/bugs/
- 更简明的说明:https://texfaq.org/FAQ-latexbug
- 当前的错误数据库(Github 问题跟踪器):https://github.com/latex3/latex2e/issues
- 较旧的错误数据库,针对 2018 年之前的报告:https://www.latex-project.org/cgi-bin/ltxbugs2html?introduction=yes&state=open
正如 Ulrike Fischer 的回答一样,在我看来,你的第一个问题的答案是由于尚未报告,因此尚未修复此错误。因此我建议您按照上述链接中的说明报告错误。希望开发人员有时间回复您的报告后,您能获得错误修复,或者更详细地解释开发人员认为这不是错误(或者不应该修复)的原因。无论哪种情况,您都可以在此处发布该回复作为此问题的完整答案。