我有一个部分,后跟一个目录,如:
\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页),但是链接到了错误的地方。
答案 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.
答案 1 :(得分:2)
如果您正在为参考书目,表格列表或数字列表执行此操作,
\usepackage[nottoc]{tocbibind}
应该修复它,没有错误的页面问题。否则,我没有遇到比使用\ addcontentsline的\ phantomsection更好的解决方案。
答案 2 :(得分:0)
此行为是由于\tableofcontents
在写入内容之前插入分页符。因此,您的PDF书签将指向之前的页面。根据您的文档类,您可以手动插入许多\newpage
命令,以防止\tableofcontents
添加另一个命令。一两个就足够了。
我知道,这是一个hacky解决方案,并且可能存在解决问题的软件包,但这就是我解决问题的方法。