Может ли Cleveref, используя varioref и Cleveref, диагностировать документ, который LaTeX всегда хочет перезапустить?

Может ли Cleveref, используя varioref и Cleveref, диагностировать документ, который LaTeX всегда хочет перезапустить?

У меня есть большой документ, который LaTeX всегда хочет перезапустить. Используя технику, описанную в Как диагностировать постоянное предупреждение «Метки могли измениться»?, я отследил проблему до некоторых \vrefs. Но я ожидал, что проблемные \vrefs будут отмечены для меня пакетом varioref. Документация для пакета variorefгласит,

Определение команд, подобных описанным выше, создает некоторые интересные проблемы. Предположим, например, что сгенерированный текст, такой как «на следующей странице», разбивается на страницы. Если это происходит, очень трудно найти приемлемое решение, и фактически это может даже привести к документу, который будет всегда переходить из одного состояния в другое (т. е. вставка одной строки, обнаружение ее неправильности, вставка другой строки при следующем запуске, которая снова делает первую строку правильной, вставка...). Текущая реализация varioref поэтому выдает сообщение об ошибке всякий раз, когда сгенерированный текст разбивается на границах страниц, например,

table 5 on the current hpage break i page

приведет к ошибке, которую должен устранить пользователь, заменив \vrefкоманду обычной \refнепосредственно перед финальным запуском. Это не совсем удовлетворительно, но в таком случае нет решения, которое было бы удовлетворительным.

Пакет cleveref, который я (правильно) загрузил после varioref, утверждает, что он реализует \vrefправильно. Но cleverefдолжен ли он реплицировать эту диагностическую возможность? Мне нужно выяснить, сообщать ли об ошибке или запросить функцию, и какому сопровождающему :-)

Я пытался создать MWE, который был бы \vrefточно в нужном месте для воспроизведения проблемы, но не смог.

решение1

cleverefотключает проверку на разрыв перекрестных ссылок между страницами при переопределении variorefкоманд для собственного использования. Так что вы можете утверждать, что это cleverefвина, но в текущей реализации пакета для этого есть причина.

В настоящее время я работаю с Тоби, чтобы добиться лучшего сосуществования между двумя пакетами, а также с пакетом hyperref. Как только это будет сделано, такие проблемы должны быть снова правильно диагностированы.

Усовершенствования varioref, вероятно, не войдут в осенний релиз LaTeX, но должны стать доступны в зимнем релизе.

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

Связанный контент