重置未编号章节之间的节编号

重置未编号章节之间的节编号

我使用类编写的文档report有 2 个未编号的章节。第 2 章的各节按照第 1 章的各节的编号进行编号,如下所示:

MY FIRST UNNUMBERED CHAPTER
1 First Section
2 Second Section
3 Third Section

MY SECOND UNNUMBERED CHAPTER
4 First Section
5 Second Section

我希望它在每次创建新的未编号章节时重置章节编号:

MY FIRST UNNUMBERED CHAPTER
1 First Section
2 Second Section
3 Third Section

MY SECOND UNNUMBERED CHAPTER
1 First Section
2 Second Section

为此,我尝试过:

  • \@addtoreset{section}{chapter*},它编译通过,但部分编号不正确,并且 PDF 书签变得混乱。
  • \setcounter{section}{0},它正确地对章节进行了编号,但是第二章各章节的 PDF 书签指向第一章。

那么,如何在不破坏 PDF 书签的情况下重置未编号章节之间的章节编号?

答案1

hyperref需要计数器值来生成唯一的锚点名称。但有些计数器值不是唯一的。例如,您有多个带有数字的部分1

因此,hyperref已引入\theH<counter>并更倾向于将其\the<counter>用于锚点名称。\the<counter>可能包含奇怪或重复的值。只要\theH<counter>扩展为简单唯一的字符串,hyperref就很开心。

以下示例为 提供了唯一定义\theHsection

\documentclass{report}
\usepackage{hyperref}
\usepackage{bookmark}
\bookmarksetup{
  numbered,
  open
}
\renewcommand*{\thesection}{\arabic{section}}

\begin{document}
\tableofcontents

\chapter{First numbered chapter}
\section{AB}
\section{BC}
\section{DE}

\chapter*{First unnumbered chapter}
\addcontentsline{toc}{chapter}{First unnumbered chapter}
\setcounter{section}{0}
\renewcommand*{\theHsection}{chX.\the\value{section}}
\section{FG}
\section{HI}
\section{IJ}

\chapter*{Second unnumbered chapter}
\addcontentsline{toc}{chapter}{Second unnumbered chapter}
\setcounter{section}{0}
\renewcommand*{\theHsection}{chY.\the\value{section}}
\section{KL}
\section{MN}
\section{NO}

\renewcommand*{\theHsection}{\theHchapter.\the\value{section}}

\chapter{Last numbered chapter}
\section{PQ}
\section{RS}
\section{TU}
\end{document}

书签

相关内容