我想制作一本没有列出章节的书。有一个索引(也不希望在索引中列出章节)并在文件 .pdf 中有书签。问题是我在书签中出现了两次章节。我正在使用包,bookmark
因为hyperref
不支持\pagenumbering{gobble}
并使用此命令来抑制页面编号并在之后重新开始tableofcontents
。
我可以做些什么来获得书签,其中部分仅出现一次,并获取带有每个部分链接的索引(目录)?
平均能量损失
\documentclass{book}
...
\usepackage{bookmark}
\begin{document}
\pagenumbering{gobble}
\chapter*{Presentation} %Presentation of the book
\bookmark[page=2,level=0]{Presentation}
\tableofcontents
\pagenumbering{arabic}
\setcounter{page}{4}
\chapter*{Test 1}
\bookmark[page=4,level=0]{Test 1} % places the first bookmarks
\addcontentsline{toc}{chapter}{Test 1} % places the second bookmarks
\end{document}
答案1
一些评论:
\addcontentsline{toc}{...}{...}
已添加书签。- 我已经禁用了页面的页面锚点,以
\pagenumbering{gobble}
避免与不同页面的页面目标发生冲突,但目标名称相同,因为\thepage
是空的。 \pdfbookmark
可以在这里使用它来自动设置锚点并避免明确的页码规范。- 另外,我还添加了
\cleardoublepage
/以确保执行或\newpage
的页面正确。\pagenumbering
\pdfbookmark
示例文件:
\documentclass{book}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
% ...
\cleardoublepage
\pdfbookmark{Presentation}{Presentation}
\pagenumbering{gobble}
\hypersetup{pageanchor=false}
\chapter*{Presentation} %Presentation of the book
\tableofcontents
\newpage
\hypersetup{pageanchor=true}
\pagenumbering{arabic}
\setcounter{page}{4}
\chapter*{Test 1}
\addcontentsline{toc}{chapter}{Test 1} % places the second bookmarks
\end{document}