我正在写一本书,分为三部分,每部分都有很多章节。编译文件后.tex
,文件的一些书签.pdf
放错了位置,如下所示:
及其 MWE
\documentclass[12pt,a4paper]{book}
\usepackage{hyperref}
\author{A}
\title{B}
\begin{document}
\maketitle
\tableofcontents
\part{title}
\section{title}
\section{title}
\section{title}
\part{title}
\section{title}
\section{title}
\section{title}
\part{title}
\section{title}
\section{title}
\section{title}
\end{document}
出了什么问题?知道如何修复这个问题吗?
答案1
班级的级别(这就是为什么它被称为级别)book
是按照从上到下的顺序排列的。
第 (-1) 部分 - 第 (0) 章 - 第 (1) 节 - 第 (2) 款 - 第 (3) 款 - 第 (4) 款 - 第 (5) 款
省略一个级别是造成混淆的逻辑错误hyperref
。要么不要省略chapter
,要么使用bookmark
清除错误级别的包。
第三种方法涉及重新分配书签的级别编号,即,有一个代表上述级别之一的书签\toclevel@X
。X
请注意,这不能解决章节0
编号中以 as 前缀出现的问题,并且章节编号永远不会以这种方式重置(因为章节计数器没有步进)。
摘要:正确的方法是切换到article
或chapter
包括切片等级。
\documentclass[12pt,a4paper]{book}
\usepackage{hyperref}
\makeatletter
\renewcommand{\toclevel@section}{0}
\renewcommand{\toclevel@subsection}{1}
\renewcommand{\toclevel@subsubsection}{2}
\renewcommand{\toclevel@paragraph}{3}
\renewcommand{\toclevel@subparagraph}{4}
\makeatother
%\usepackage{bookmark}
\author{A}
\title{B}
\begin{document}
\maketitle
\tableofcontents
\part{title}
\section{title}
\section{title}
\section{title}
\part{title}
\section{title}
\section{title}
\section{title}
\part{title}
\section{title}
\section{title}
\section{title}
\end{document}