23

我有一个部分,后面是一个目录,如下所示:

\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 页),但链接到错误的位置。

4

3 回答 3

29

您需要使用以下\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.

请参阅hyperref 手册

于 2009-04-24T16:23:59.073 回答
2

如果您正在为参考书目、表格列表或图形列表执行此操作,

\usepackage[nottoc]{tocbibind}

应该修复它,没有错误的页面问题。否则,我没有遇到比使用 \addcontentsline 的 \phantomsection 更好的解决方案。

于 2009-08-04T20:12:16.313 回答
0

这种行为是由于\tableofcontents在写入内容之前插入了分页符。因此,您的 PDF 书签将指向之前的页面。根据您的文档类,您可以手动插入许多\newpage命令以防止\tableofcontents添加另一个命令。一两个应该就够了。

我知道,这是一个 hacky 解决方案,并且可能存在解决问题的包,但这就是我解决问题的方法。

于 2009-04-23T15:56:13.237 回答