Latex目录链接到错误的部分

时间:2009-04-23 15:13:18

标签: latex pdflatex texmaker

我有一个部分,后跟一个目录,如:

\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页),但是链接到了错误的地方。

3 个答案:

答案 0 :(得分:19)

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

请参阅the hyperref manual

答案 1 :(得分:2)

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

\usepackage[nottoc]{tocbibind}

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

答案 2 :(得分:0)

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

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