
Я получаю сообщение об ошибке при использовании pagebackref=true
. Когда я не использую pagebackref=true
, программа работает так, как и ожидалось. Это статья в Central European Journal of Computer Science. Есть ли какая-либо другая альтернатива для pagebackref
?
решение1
Вероятно, класс уже загрузил пакет hyperref
. LaTeX не может загружать пакет дважды (вспомните \newcommand
и друзей). Поэтому LaTeX пропускает часть загрузки \usepackage
или \RequirePackage
. Он проверяет только завершающий необязательный аргумент, который запрашивает минимальную версию пакета. И он смотрит на параметры. LaTeX понимает параметры пакетов, которые можно описать как «функции». Если параметры последнего \usepackage
уже присутствуют при первой загрузке пакета, то LaTeX удовлетворен. Однако, если есть хотя бы один новый параметр, не заданный ранее, то LaTeX думает, что пользователь хочет новую «функцию», но он не может загрузить параметр, независимый от пакета, и выдает сообщение об ошибке.
Обходные пути:
Указаниевсенеобходимые параметры в первом
\usepackage
(или\RequirePackage
). Текст справки сообщения об ошибке конфликта параметров перечисляет их.Первый вызов пакета может быть скрыт в классе или в другом пакете; параметр не может быть указан напрямую.
\PassOptonsToPackage
помогает:\PassOptionsToPackage{pagebackref=true}{hyperref} \documentclass[CEJCS,PDF]{cej}
Тогда строка
\usepackage[pagebackref=true]{hyperref}
работает без ошибок. Также строку можно опустить или сократить до\usepackage{hyperref}
на случай, если классcej
забудет загрузитьhyperref
или сделать зависимость явной.Некоторые классы (пакеты) предлагают специальные опции для передачи дополнительных опций пакетам, загруженным классом, например, option
hyperref
of classbeamer
.