答案1
该\phantomsection
命令对于hyperref
跳转到正确的页面是必不可少的,换句话说,它会在页面上放置一个超级标记。例如,添加到目录中的带星号的部分或章节通常会引用错误的位置,而无需\phantomsection
\chapter*{Extended Summary}
\phantomsection
\addcontentsline{toc}{chapter}{Extended Summary}%
\markboth{Extended Summary}{Extended Summary}%
我通常在序言中放入命令
\providecommand\phantomsection{}
然后,您的文档就可以编译了,无论是否hyperref
出错
答案2
我对这个问题提供了不同的答案,因为原来的答案已经过时了。
需要该\phantomsection
命令来创建指向文档中除图形、公式、表格、节、小节、章节等之外的位置的链接。
这通常与\addcontentsline
或 和 一起\label
使用\hyperref
。例如,以下代码将创建内容行和指向文档中某处的链接。
\phantomsection
\addcontentsline{toc}{section}{Some place in the document}
\label{some}
This is just \hyperref[some]{some place} in the document.
如果没有此\phantomsection
行,内容行和链接都会指向当前部分(或小节等)的开头。
在以前的版本中hyperref
(2009-11-25 之前),您还必须使用\phantomsection
未编号的章节(例如\section*
)来防止链接指向上一章节。在最新发行版中,这已不再必要。
答案3
我发现以前的答案都不起作用,但下面的代码片段效果很好:
\newpage
\phantomsection \label{listoffig}
\addcontentsline{toc}{chapter}{List of Figures}
\listoffigures