Подтвердить что ты не робот

Латекс Содержание Ссылки на неправильную секцию

У меня есть раздел, за которым следует оглавление:

\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), но ссылка идет не туда.

4b9b3361

Ответ 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 с добавлением другого. Один или два должны быть достаточными.

Я знаю, что это хакерское решение, и для решения проблемы может существовать пакет, но я как-то справляюсь с этой проблемой.