Hyperref - 目录中的链接指向正确页面之前的一页

Hyperref - 目录中的链接指向正确页面之前的一页

我使用 hyperref 来链接目录中的条目。

但是对于下面的例子,我遇到了一个问题:

\item{\textbf{item one}\addcontentsline{toc}{subsection}{item one}\\
    Lots of text...
}

\newpage

\item{\textbf{item two}\addcontentsline{toc}{subsection}{item two}\\
    Lots of text...
}

问题是链接到item two紧接在 之前的页面item two(即 之前\newpage)而不是item two

我也尝试过不用,\newpage但是如果的第一行在item two下一页,就会犯同样的错误。

奇怪的是,目录中的页码是正确的,但链接却不正确......

答案1

正如 hyperref 中所述手动的(第 4 条附加用户宏),

\phantomsection之前需要一个命令\addcontentsline来保证正确链接。

\phantomsection  
\item{\textbf{item two}\addcontentsline{toc}{subsection}{item two}\\
    Lots of text...
}

这是一个小文件:

\documentclass{article}
\usepackage{blindtext}
\usepackage{hyperref}
\begin{document}
\tableofcontents

\clearpage

\begin{itemize}


\item{\textbf{item one}\phantomsection
    \addcontentsline{toc}{subsection}{item one}\\
    \blindtext
}

\newpage
\item{\textbf{item two}\phantomsection
\addcontentsline{toc}{subsection}{item two}\\
    \blindtext
}

\end{itemize}

\end{document}

itemize由于代码中没有提供进一步的信息,因此对于类别、环境等有一些猜测。

我省略了屏幕截图,因为它没有显示非常复杂的输出。

相关内容