使用 varioref 和 cleveref,cleveref 是否可以诊断 LaTeX 始终想要重新运行的文档?

使用 varioref 和 cleveref,cleveref 是否可以诊断 LaTeX 始终想要重新运行的文档?

我有一个很大的文档,LaTeX 总是想重新运行它。使用 如何诊断永久的“标签可能已更改”警告?,我将问题追溯到一些s。但我期望该软件包会为我标记出\vref有问题的s 。软件包的文档指出,\vrefvariorefvarioref

定义上述命令会带来一些有趣的问题。例如,假设生成的文本(如“下一页”)跨页中断。如果发生这种情况,很难找到可接受的解决方案,实际上甚至会导致文档始终从一种状态变为另一种状态(即插入一个字符串,发现这是错误的,在下次运行时插入另一个字符串,使第一个字符串再次正确,插入...)。因此,只要生成的文本跨页中断,varioref 的当前实现就会发出错误消息,例如,

table 5 on the current hpage break i page

会导致错误,用户需要在最终运行前\vref用普通命令替换该命令来解决\ref。这并不完全令人满意,但在这种情况下,实际上没有解决方案。

cleveref我(正确)在之后加载的包声称varioref它实现\vref正确。但cleveref应该复制这种诊断功能吗?我需要弄清楚是否要报告错误或功能请求,以及向哪个维护者报告 :-)

\vref我曾尝试但未能生成一个在正确位置重现该问题的 MWE 。

答案1

cleverefvarioref在重新定义命令供自己使用时,禁用对跨页面交叉引用中断的检查。因此,您可以说这是cleverefs 的错误,但在包的当前实现中,这样做是有原因的。

我目前正在与 Toby 合作,以期让这两个软件包以及软件包更好地共存hyperref。一旦做到这一点,这些问题应该可以再次得到正确诊断。

这些varioref改进可能不会出现在 LaTeX 的秋季发布版中,但应该会在冬季发布版中推出。

https://github.com/latex3/latex2e/issues/174

相关内容