使用varioref和cleveref,cleveref是否診斷出LaTeX總是想要重新運行的文件?

使用varioref和cleveref,cleveref是否診斷出LaTeX總是想要重新運行的文件?

我有一個很大的文檔,LaTeX 總是想重新運行它。使用此處所述的技術 如何診斷永久性的「標籤可能已更改」警告?,我把問題追溯到了一些\vrefs。但我希望包\vref會為我標記有問題的 s varioref。包的文檔說明varioref

定義像上面描述的命令會帶來一些有趣的問題。例如,假設生成的文字(如“在下一頁”)會跨頁損壞。如果發生這種情況,則很難找到可接受的解決方案,事實上甚至可能導致文件總是從一種狀態更改為另一種狀態(即,插入一個字串,發現這是錯誤的,在該狀態下插入另一個字串)下一次運行使第一個字串再次正確,插入 )。因此,只要產生的文字跨頁面邊界,目前的 varioref 實作就會發出錯誤訊息,例如:

table 5 on the current hpage break i page

會導致錯誤,用戶需要在最終運行之前將\vref命令替換為普通命令來解決。\ref這並不完全令人滿意,但在這種情況下,沒有真正的解決方案。

cleveref我在之後(正確)加載的包聲稱varioref\vref正確實現。但是否cleveref應該複製這種診斷能力?我需要弄清楚是否要報告錯誤或功能請求,以及向哪個維護者報告:-)

我曾嘗試製作一個 MWE,但未能\vref在正確的位置重現問題。

答案1

cleverefvarioref重新定義命令以供自己使用時,停用檢查跨頁面中斷的交叉引用。所以你可以說這是cleveref它的錯,但在套件的當前實現中這是有原因的。

我目前正在與 Toby 合作,以實現兩個包之間以及與包之間更好的共存hyperref。一旦到位,應該再次正確診斷此類問題。

對此的改進varioref可能不會出現在 LaTeX 的秋季版本中,但應該會在冬季版本中提供。

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

相關內容