当使用带有 IEEEtran 模板的包时,我在一页上todonotes
放置 50 个之后似乎达到了限制。\todo{}
在编译文档时,出现以下错误:
Output loop---100 consecutive dead cycles.
我可以通过插入\maxdeadcycles=200
序言来解决它。
但是,我想了解这个错误来自哪里,以及是否有更优雅的技术来解决这个问题。
答案1
这是一个低级 tex 错误,latex 正在尝试排列框以找到可行的分页符位置,它已经循环了 100 次(比平时多 98 倍左右),但此时仍未找到任何可行的分页符,因此它放弃了。如果没有看到您的输入,很难猜测原因。但是,如果您知道您只是遇到了困难的材料,并且将其设置得更高可以解决问题,那就没问题了。(几乎总是在您收到此错误时,tex 处于无限循环中,增加尝试次数无济于事,但这显然不是这种情况)
\marginpar
并且相关命令强制至少一个额外的循环,因为输出例程被调用来测量位置而不发送页面,所以我认为如果你有这么多的注释,增加它\maxdeadcycles
是合理的。
答案2
一个简单的解决方案是在发生此错误的位置手动添加分页符。只需添加即可\newpage
为我解决此问题。
答案3
您还可以\clearpage
通过为浮动对象引入边界来使用命令。
答案4
与“todonotes”关系不大,但我因为\addtolength{\textheight}{-15cm}
IEEE ieeeconf 中的这个命令遇到了这个错误
要解决这个问题,只需将数字 -15cm 调整为更小的数字,例如 -5cm 或 -0cm。