目录链接到第一部分无法正常工作

目录链接到第一部分无法正常工作

我正在尝试使用以下内容从目录创建到相应部分的链接超链接

但是,我注意到,如果第一个条目是未编号的部分(\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

我发现使用\addcontentslinejust after\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 指出的那样,如果您使用 hyperref,则应该\phantomsection在前面添加\addcontentsline

就像

\phantomsection
\addcontentsline{toc}{section}{Name}
\section{Name}

相关内容