Латекс Содержание Ссылки на неправильную секцию
У меня есть раздел, за которым следует оглавление:
\section{Section1}
ABC.
\addcontentsline{toc}{section}{Table of Contents}
\tableofcontents
\newpage
\addcontentsline{toc}{section}{List of Figures}
\listoffigures
\newpage
\section{Section2}
DEF.
\section{Section3}
GHI.
Моя проблема в том, что записи "Оглавление" и "Список рисунков" в ссылке оглавления (в сгенерированном pdf) не совпадают с местом в файле. Они оба ссылаются на раздел первого раздела на стр. 1. Запись в таблице верна (TOC говорит, что страница 2 и LOF говорит на стр. 3), но ссылка идет не туда.
Ответы
Ответ 1
Вам понадобится команда \phantomsection
:
\section{Section1}
ABC.
\phantomsection
\addcontentsline{toc}{section}{Table of Contents}
\tableofcontents
\newpage
\phantomsection
\addcontentsline{toc}{section}{List of Figures}
\listoffigures
\newpage
\section{Section2}
DEF.
\section{Section3}
GHI.
См. руководство по гиперрефику.
Ответ 2
Если вы делаете это для библиографии, списка таблиц или списка цифр,
\usepackage[nottoc]{tocbibind}
должен исправить это, без проблем с неправильной страницей. В противном случае, я не нашел лучшего решения, чем \phantomsection с\addcontentsline.
Ответ 3
Это связано с тем, что \tableofcontents
вставляет разрыв страницы перед написанием содержимого. Следовательно, ваша закладка PDF будет указывать на страницу раньше. В зависимости от вашего класса документа вы можете вручную вставить несколько команд \newpage
, чтобы сохранить \tableofcontents
с добавлением другого. Один или два должны быть достаточными.
Я знаю, что это хакерское решение, и для решения проблемы может существовать пакет, но я как-то справляюсь с этой проблемой.