我想要一个名为“Frontmatter”的书签,其级别为 0,以及“Preface”、“Acknowledgements”和“Contents”的书签,其级别为 1。
我的问题是它\addcontentsline{toc}{chapter}{<x>}
会自动在章节级别(级别=0)创建书签,但我不知道如何用级别=1 的书签覆盖它们。我在下面的 MWE 中注释掉的行表示我想要的书签结构。该bookmark
包似乎也没有提供解决方案,因此我没有在 MWE 中加载它。
\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}
\begin{document}
\frontmatter
%\pdfbookmark[0]{Frontmatter}{frontmatter}
\chapter*{Preface}
%\pdfbookmark[1]{Preface}{preface}
\addcontentsline{toc}{chapter}{Preface}
\lipsum[1]
\chapter*{Acknowledgements}
%\pdfbookmark[1]{Acknowledgements}{acknowledgements}
\addcontentsline{toc}{chapter}{Acknowledgements}
Thanks to everyone for everything.
\cleardoublepage
\pdfbookmark[0]{Contents}{toc}
%\pdfbookmark[1]{Contents}{toc}
\tableofcontents
\mainmatter
\chapter{Lipsum 2}
\lipsum[2]
\end{document}
答案1
在这种情况下,包也bookmark
可以提供帮助。可以在部分级别添加书签“Frontmatter”,并\mainmatter
使用选项重新启动书签层次结构
startatroot
。
\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\frontmatter
\pdfbookmark[-1]{Frontmatter}{frontmatter}
\chapter*{Preface}
\addcontentsline{toc}{chapter}{Preface}
\lipsum[1]
\chapter*{Acknowledgements}
\addcontentsline{toc}{chapter}{Acknowledgements}
Thanks to everyone for everything.
\cleardoublepage
\pdfbookmark[0]{Contents}{toc}
\tableofcontents
\bookmarksetup{startatroot}
\mainmatter
\chapter{Lipsum 2}
\lipsum[2]
\end{document}
另一种解决方案是重新定义\toclevel@chapter
to1
并在前置内容之后重置。
答案2
解决方案:使用bookmark
包,然后\bookmarksetup{depth=-1}
对前言和\bookmarksetup{depth=4}
主要内容进行处理。
\documentclass{book}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\bookmarksetup{depth=-1}
\frontmatter
\pdfbookmark[0]{Frontmatter}{frontmatter}
\chapter*{Preface}
\pdfbookmark[1]{Preface}{preface}
\addcontentsline{toc}{chapter}{Preface}
\lipsum[1]
\chapter*{Acknowledgements}
\pdfbookmark[1]{Acknowledgements}{acknowledgements}
\addcontentsline{toc}{chapter}{Acknowledgements}
Thanks to everyone for everything.
\cleardoublepage
\pdfbookmark[1]{Contents}{toc}
\tableofcontents
\bookmarksetup{depth=4}
\mainmatter
\chapter{Lipsum 2}
\lipsum[2]
\end{document}