我使用 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
由于代码中没有提供进一步的信息,因此对于类别、环境等有一些猜测。
我省略了屏幕截图,因为它没有显示非常复杂的输出。