正确地重新启动未编号的“\part*”章节

正确地重新启动未编号的“\part*”章节

下列的,这个答案我已经能够\chapter为每个新的 重新开始编号\part。不幸的是,这对未编号的 不起作用\part*

手动设置计数器 ( \setcounter{chapter}{0}) 似乎可以完成这项工作,只要hyperref不涉及。但是,重置计数器会导致目录将未编号部分的章节链接到上一部分中具有相同本地编号的章节,而编号部分中自动重新开始的章节则不会发生这种情况。例如,“讨论”指向“起初我很害怕”。

\documentclass{report}
\usepackage{hyperref}
\makeatletter
\@addtoreset{chapter}{part}
\makeatother

\begin{document}
\tableofcontents
\chapter*{Foreword}
\addcontentsline{toc}{chapter}{Foreword}
\chapter*{Achnowlegements}
\addcontentsline{toc}{chapter}{Acknowlegements}
\part*{Introduction}
\addcontentsline{toc}{part}{Introduction}
\chapter{Background}
\chapter{Related Work}
\part{Where It All Begun...}
\chapter{At First I Was Afraid}
\chapter{I Was Petrified}
\part*{Discussion and Future Work}
\setcounter{chapter}{0}
\addcontentsline{toc}{part}{Discussion and Future Work}
\chapter{Discussion}
\chapter{Future Work}
\end{document}

\@add to reset{chapter}{part*}似乎根本没有效果。

重置编号和未编号部分的章节编号的正确方法是什么?

答案1

您必须提供 的线索,hyperref以便区分编号相同的章节。这可以通过重新定义 来实现\theHchapter。对于最后一部分,为 提供合适的值\theHpart

当然,您对章节的内部引用会很笨拙:“在简介部分的第 1 章中”或“在第二部分的第 3 章中”。

如果没有某些特殊规则的强迫,请避免重置章节编号。

\documentclass{report}
\usepackage{hyperref}

\counterwithin*{chapter}{part}
\renewcommand{\theHchapter}{\theHpart.\thechapter}

\begin{document}
\tableofcontents

\chapter*{Foreword}
\addcontentsline{toc}{chapter}{Foreword}

\chapter*{Achnowlegements}
\addcontentsline{toc}{chapter}{Acknowlegements}

\part*{Introduction}
\addcontentsline{toc}{part}{Introduction}

\chapter{Background}
\chapter{Related Work}

\part{Where It All Begun...}
\chapter{At First I Was Afraid}
\chapter{I Was Petrified}

\part*{Discussion and Future Work}
\setcounter{chapter}{0}\renewcommand{\theHpart}{DFW}
\addcontentsline{toc}{part}{Discussion and Future Work}

\chapter{Discussion}
\chapter{Future Work}

\end{document}

在此处输入图片描述

相关内容