我想以某种方式设置 PDF 书签的样式,以便我可以随心所欲地操纵标准部分的级别。我认为该bookmark
软件包是执行此操作的最佳选择,但不幸的是,它的表现不如我预期。我的努力的 MWE 如下:
\documentclass{book}
\usepackage{hyperref,bookmark}
\begin{document}
\tableofcontents
\bookmarksetup{level=0}
\part{Part}
\chapter{Chapter 1}
\bookmarksetup{rellevel=-1}
\addcontentsline{toc}{chapter}{Chapter 2}
\chapter*{Chapter 2}
\bookmarksetup{level=1}
\chapter{Chapter 3}
\end{document}
pdf 书签树应如下所示:
部分
|__第一章
第2章
|__第三章
显然,我不能在第 2 章之前使用包\boomarksetup{startatroot}
的命令,bookmark
因为第 3 章也会被拉出到根目录。另一方面,代码中包含的级别选项似乎只对手动设置的书签有影响\bookmark
。但是,我不想为每个章节发布手动书签,因为这会很烦人,而且我最终会在 PDF 书签中得到两个条目。包文档不是最好的,到目前为止,我还没有弄清楚是否真的可以用这个包实现样式。
我之所以不使用“第 2 章”部分,是因为我希望它像目录中的章节一样排版,就像文档正文中的章节一样。它实际上是附录的标题页。
答案1
一种选择是将“第 2 章”作为部分而不是章节添加到目录中;但是,这会将“第 2 章”视为目录中的一部分,而这并不是我们所希望的。要更正目录中的格式,您可以使用包titletoc
在本地使部分在目录中表现为章节:
\documentclass{book}
\usepackage{titletoc}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\part{Part}
\chapter{Chapter 1}
\begingroup
\titlecontents{part}
[0pt]{\normalsize\bfseries\vskip10pt}{}{}
{\hfill\bfseries\contentspage}
\chapter*{Chapter 2}
\addcontentsline{toc}{part}{Chapter 2}
Contents of Chapter 2....
\endgroup
\chapter{Chapter 3}
\end{document}
生成的书签树:
以及由此产生的目录:
答案2
在您的 MWE 中只需替换
\bookmarksetup{rellevel=-1}
经过
\bookmarksetupnext{rellevel=-1}
以达到预期效果。此外,您还可以删除
\bookmarksetup{level=0}
和
\bookmarksetup{level=1}
您应该注意到,第 2 章的标题将显示“第 1 章”,第 3 章将被命名为“第 2 章”,因为您使用了\chapter*{Chapter 2}
而不是\chapter{Chapter 2}
,但也许您想要这个(并手动更改内容)。