使用 hyperref 和 \addcontentsline

使用 hyperref 和 \addcontentsline

我有一个文档,其中有一个(逻辑)部分没有标准标题(即没有\section或其他),我希望它出现在目录和 PDF 书签中。我可以几乎使用以下方法执行此操作\addcontentsline:hyperref 检测到了它,但它生成的书签已损坏。单击它会带我到上一个书签。

我知道如何使用 生成可用的书签\pdfbookmark[1]{Section without standard heading}{uniqueID},但我还想查看目录中的部分。(当然,使用这两个命令会给我两个书签,其中一个已损坏。)

hypertexnames=false当我设置(应该生成唯一标识符)时,问题没有变化。这是一个完整的示例:

\documentclass{article}

\usepackage[bookmarks,hypertexnames=false,debug]{hyperref}

\begin{document}
\section{First page}

\newpage
\textbf{Text on page 2}

\addcontentsline{toc}{section}{Section without standard heading} % broken bookmark
% This will work, but I still need the TOC
%\pdfbookmark[1]{Section without standard heading}{page2}
Second page text

\newpage
\section{Third section}

\end{document}

答案1

您需要为 建立一个锚点\addcontentsline。锚点通常由章节命令设置。这允许 的书签指向章节标题,而不是 的发布\addcontentsline位置。\addcontentsline

可以通过 设置锚点\phantomsection。如果书签应指向第 2 页的粗体文本,则将其放在\phantomsection之后\newpage

\documentclass{article}

\usepackage[bookmarks,hypertexnames=false,debug]{hyperref}
\usepackage{bookmark}

\begin{document}
\section{First page}

\newpage
\phantomsection
\textbf{Text on page 2}

\addcontentsline{toc}{section}{Section without standard heading}
Second page text

\newpage
\section{Third section}

\end{document}

我已经添加了bookmark用于更快更新书签的包。

相关内容