我有一个文档,其中有一个(逻辑)部分没有标准标题(即没有\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
用于更快更新书签的包。