I've got a large document that LaTeX always wants to re-run. Using the technique described at
How to diagnose a permanent "Label(s) may have changed" warning?, I traced the problem to some \vrefs. But I expected the problematic \vrefs to be flagged for me by the varioref package. The documentation for package varioref states,
Defining commands like the ones described above poses some interesting problems. Suppose, for example, that a generated text like ‘on the next page’ gets broken across pages. If this happens it is very difficult to find an acceptable solution and in fact can even result in a document that will always change from one state to an- other (i.e., inserting one string, finding that this is wrong, inserting another string on the next run which makes the first string correct again, inserting . . . ). The current implementation of varioref therefore issues an error message whenever the generated text is broken across page boundaries, e.g.,
table 5 on the current hpage break i pagewould would result in an error, which needs to be resolved by the user by replacing the
\vrefcommand with an ordinary\refjust before the final run. This is not completely satisfactory but in such case no solution really is.
The cleveref package, which I have (correctly) loaded after varioref, claims that it implements \vref correctly. But is cleveref supposed to replicate this diagnostic capability? I need to figure out whether to report a bug or a feature request, and to what maintainer :-)
I have tried and failed to produce a MWE that has a \vref in exactly the right place to reproduce the issue.
cleverefmakes some changes to the innards ofvariorefso that\vrefworks "as expected" ifcleverefis loaded too. (Aside: Loadingcleverefalso resolves some deep-seated conflicts betweenvariorefandhyperref.) But "as expected" contains the caveat that page-related labels may change from run to run without ever settling down. It is not the job ofcleveref-- and the package certainly makes no claim to this effect -- to improve on the jobvarioref's does and come up with a better page-related algorithm. – Mico Aug 15 '19 at 07:47