![有更多页面重复编译](https://linux22.com/image/274473/%E6%9C%89%E6%9B%B4%E5%A4%9A%E9%A1%B5%E9%9D%A2%E9%87%8D%E5%A4%8D%E7%BC%96%E8%AF%91.png)
好吧,我已经遇到过这个问题很多次了,所以我忍不住在这里问。
当我第一次编译文档时,我得到了 145 页。然后我再次编译它们,没有采取任何其他行动,我得到了 150 页。然后我连续第三次编译它们,我得到了 153 页。当我第四次编译文档时,我得到了 155 页。然后额外的编译不会再提供任何页面。
根据我的经验,不一定需要四次编译才能达到实际的总页数。事实上,有时需要多次编译才能达到该总数。为什么?
答案1
可以构建需要任意次数运行才能收敛的乳胶文档,或者实际上永远不会收敛。
第一次运行后进行更改的最明显原因是参考文献和引文被解析,因此将??更改为1.2.3,从而改变文本长度,以及第一次运行后添加的目录和图表列表。
但是,第二次运行后添加的目录是基于第一次运行中收集的页码,因此在解决所有引用后,文本的长度会有所不同,因此分页符可能会发生变化,目录可能会出错,需要再进行一次 latex 处理。在一次处理中,换行符的任何变化都可能导致将浮动放在一页而不是另一页上,从而影响表格列表和目录。
如果您的前言使用(比如说)罗马数字编号而正文使用(比如说)阿拉伯数字,并且没有太多的页码引用,则大多数文档在运行两三次后就会稳定下来,但是可能会创建病态文档,每次解析引用时都会影响分页并使所有后面的页面引用无效,直到下一次运行,通常涉及对用罗马数字编号的页面的页面引用(如上面链接的答案所示),因为罗马数字方案具有有用的特性,即打印数字的宽度可以随着数字的增加而减小,例如,将iv
其v
与需要连字符的足够长的数字相结合会导致分页符和\label
/\pageref
机制之间产生有趣的交互。