如何解决书中不同部分(或章节)之间不必要的书签依赖关系

如何解决书中不同部分(或章节)之间不必要的书签依赖关系

编写一本书(即\documentclass{book})我对书签有问题。

这是我想要获得的结构(大空间表示书签与上述对象的视觉依赖关系):

Contents
Preface
1. Introduction
Part 1
    2. Title
Part 2
    3. Title

而这是我得到的:

Contents
    Preface
    1. Introduction
Part 1
    2. Title
Part 2
    3. Title

这是以下一段代码的结果:

\documentclass[12pt]{book}
%
\usepackage[hypertexnames=false]{hyperref}
%
\newcommand{\mychapter}[2]{
    \setcounter{chapter}{#1}
    \setcounter{section}{0}
    \chapter*{#2}
    \addcontentsline{toc}{chapter}{#2}
}
%
%%%%%%%%%
%%%%%%%%%
\begin{document}

\pagestyle{empty}

\title{Title}
\author{Author}

\maketitle

\pagenumbering{roman}

\setcounter{page}{0}

\tableofcontents

\addcontentsline{toc}{part}{Contents}

\pagestyle{plain}

%%%%%%%%%%%%
\mychapter{0}{Preface}

\mainmatter


%%%%%%%%%%%
\chapter{Introduction}

%%%%%%%%
\part{Title}

\chapter{Title}


%%%%%%%%
\part{Title}

\chapter{Title}

\end{document}

关于这段代码有几点需要注意:

  1. 当然,如果我们删除该字符串,\addcontentsline{toc}{part}{Contents}所有问题都解决了,因为前言和章节“1. 介绍”都处于与“第 1 部分”和“第 2 部分”相同的书签级别。但是,这样我还是无法获取书签中的内容,而我希望它们保留在那里。

  2. 我之所以包含该选项,hypertexnames=false是因为这是我在这里找到的解决 hyperref 问题的解决方案。

  3. 该命令\newcommand{\mychapter}[2]{... etc...}再次是我在这里找到的我想要获得的解决方案。

欢迎就此问题提出任何反馈。
感谢您的时间。

答案1

您可以使用书签包来重置级别。并且您应该考虑使用更好的类,这样您就不必执行此 \mychapter-stuff:

\documentclass[12pt]{scrbook}
%
\usepackage[hypertexnames=false]{hyperref}
\usepackage{bookmark}
%


\begin{document}

\title{Title}
\author{Author}

\maketitle

\frontmatter
\hypertarget{toc}{}
\bookmark[dest=toc]{\contentsname}
\tableofcontents

\bookmarksetup{startatroot}
\addchap{Preface}

\mainmatter

\bookmarksetup{startatroot}
\chapter{Introduction}

\part{Title}

\chapter{Title}

\part{Title}

\chapter{Title}

\end{document}

在此处输入图片描述

相关内容