
Я пытаюсь создать ссылки из своего оглавления на соответствующие разделы, используягиперреф.
Однако я заметил, что если первая запись представляет собой ненумерованный раздел ( \section*
), ссылка просто переносит меня к оглавлению.
Вот небольшой пример, иллюстрирующий то, что я пытаюсь сказать. Обратите внимание, что второй ненумерованный раздел работает, а первый — нет. Кроме того, использование нумерованного раздела в качестве первой записи решило бы проблему.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linktoc=all,
linkcolor=black,
}
\begin{document}
\tableofcontents
\newpage
\addcontentsline{toc}{section}{Unnumbered section 1}
\section*{Unnumbered section 1}
\addcontentsline{toc}{section}{Unnumbered section 2}
\section*{Unnumbered section 2}
\end{document}
Как сделать так, чтобы первая ссылка вела на нужную страницу?
решение1
Я обнаружил, что использование \addcontentsline
«сразу после» \section*
решает проблему.
Таким образом, исправленный код будет выглядеть так:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{hyperref}
\hypersetup{
colorlinks=true,
linktoc=all,
linkcolor=black,
}
\begin{document}
\tableofcontents
\newpage
\section*{Unnumbered section 1}
\addcontentsline{toc}{section}{Unnumbered section 1}
\section*{Unnumbered section 2}
\addcontentsline{toc}{section}{Unnumbered section 2}
\end{document}
Как указал @daleif, вам следует добавить \phantomsection
before \addcontentsline
, если вы используете hyperref.
Так же как и
\phantomsection
\addcontentsline{toc}{section}{Name}
\section{Name}