Hyperref 会自动在 PDF 输出中为文档划分(部分、章节、节)生成书签。使用浏览器打开文档时,我们可以使用锚点语法链接到特定页面或节:
http://website.net/document.pdf#page=4
http://webiste.net/document.pdf#introduction
但是默认的 hyperref 书签的格式是什么?它并不总是像在标准 PDF 查看器中显示的那样。我无法找到 (a) hyperref 的命名过程或 (b) 解析 PDF 以显示实际锚点名称的方法。
我找到了一些关于如何改变hyperref 的默认书签。但我想使用默认书签。
下面的测试文档显示了这个问题。它包含部分和章节。如果我使用以下方法在浏览器中打开它:
/path/to/file/document.pdf#Introduction
文档在简介章节页正确打开。因此原则上链接到各部分是可行的。但我找不到其他部分和章节的书签名称。例如,以下操作失败,让我转到标题页:
/path/to/file/document.pdf#Baby
/path/to/file/document.pdf#Baby Logic
/path/to/file/document.pdf#Baby%20Logic
/path/to/file/document.pdf#Part%20I%20Baby%Logic
/path/to/file/document.pdf#I%20Baby%20Logic
/path/to/file/document.pdf#Syntax%20%and%semantics
尽管其中一些是 PDF 查看器中出现的书签。
增加了一个挑战:不同章节中的一些部分具有相同的名称,不同部分中的一些章节具有相同的名称。我不知道 hyperref 如何处理这些书签。
以下是测试文档:
\documentclass[a4paper]{memoir}
\RequirePackage{hyperref}
\hypersetup{breaklinks,
bookmarks,
bookmarksopen,
bookmarksopenlevel=1,
colorlinks,
urlcolor=dark-gray}
%linkcolor=reflex-blue}
\begin{document}
% title page
{\Huge Title of the book}
\frontmatter
\newpage
\tableofcontents*
\mainmatter
\chapter{Introduction}
\section{dummy section 1}
\section{dummy section 2}
\section{FAQ}
\part{Baby Logic}
\chapter{Syntax and semantics}
\section{dummy section 3}
\section{dummy section 4}
\section{FAQ}
\chapter{Exercises}
\section{dummy section 5}
\part{Advanced Logic}
\chapter{Syntax and semantics}
\section{dummy section 6}
\section{dummy section 7}
\section{FAQ}
\chapter{Exercises}
\end{document}
答案1
在您的示例中,hyperref 生成类似 的目的地,chapter.1
因此是名称加数字。part.2
section.4.2
你可以通过创建一个未压缩的pdf来找到它,例如
\documentclass[a4paper]{memoir}
\usepackage{l3pdf}
\ExplSyntaxOn
\pdf_uncompress:
\ExplSyntaxOff
....
然后在 pdf 中搜索带有 /Names 条目的对象(可以有多个)。例如
182 0 obj
<<
/Names [(section.2.3) 34 0 R (section.3.1) 42 0 R (section.4.1) 54 0 R (section.4.2) 58 0 R (section.4.3) 62 0 R]
/Limits [(section.2.3) (section.4.3)]
>>
或者你可以使用包选项destlabel
\usepackage[destlabel]{hyperref}
然后 hyperref 将尝试根据标签构建目标名称。例如
\chapter{Introduction}\label{chap:introduction}
将创建目的地chap:introduction
Options for destination names
文档的第 3.2 节包含更多信息。