У меня есть большой документ, который LaTeX всегда хочет перезапустить. Используя технику, описанную в
Как диагностировать постоянное предупреждение «Метки могли измениться»?, я отследил проблему до некоторых \vref
s. Но я ожидал, что проблемные \vref
s будут отмечены для меня пакетом 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, но должны стать доступны в зимнем релизе.