对我的评论回答到Biblatex 和章节之间的引用重置book
让我意识到,与和类中的正常章节相反report
,\chapter*
(带星号的版本)不会重置脚注的编号:
\documentclass{book}
\begin{document}
\chapter*{Preface}
Some text.\footnote{A footnote}
\chapter*{Introduction}
Some text.\footnote{A footnote}
\chapter{First}
Some text.\footnote{A footnote}
\end{document}
\chapter
课程的前言部分也是如此book
:
\documentclass{book}
\begin{document}
\frontmatter
\chapter{Preface}
Some text.\footnote{A footnote}
\chapter{Introduction}
Some text.\footnote{A footnote}
\mainmatter
\chapter{First}
Some text.\footnote{A footnote}
\end{document}
如何重置脚注\chapter*
和前言章节的编号?
答案1
我将修补\@chapter
和\@schapter
将计数器设置footnote
为零;第一个将处理的情况\chapter*
,第二个将处理在下创建的章节\chapter
(\frontmatter
计数器chapter
不会重置,\frontmatter
因为的定义\@chapter
以
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
\refstepcounter{chapter}%
并且\frontmatter
\@mainmatterfalse
因此修补将会是这样的
\usepackage{etoolbox}
\makeatletter
\pretocmd{\@schapter}{\setcounter{footnote}{0}}{}{}
\pretocmd{\@chapter}{\setcounter{footnote}{0}}{}{}
\makeatother
答案2
正如 Gonzalo 所说,仅修补宏以输出“带星号”版本的章节标题是不够的。所以我建议修补\chapter
。
\usepackage{etoolbox}
\makeatletter
\patchcmd\chapter{\thispagestyle}{\global\c@footnote\z@\thispagestyle}{}{}
\makeatother
答案3
虽然到目前为止提供的两个答案都解决了脚注计数器的问题,但也许更好的方法是定义语义用于附加前言部分的命令。
这是一种比使用另一个包将材料注入宏的后部或前部更好的方法。
我见过前言、序言、致谢、系列编辑前言、关于本书、贡献者名单、定义、作者所属、缩写、声明等许多部分,而且这些部分都是英文书籍。这些有时也包含在目录中。其中一些是签名的,另一些则有各种其他格式要求。因此,我更喜欢将它们设置为环境。
这是一个工厂命令,用于创建这样的环境(也解决了脚注问题)并在五行代码中强制一致性,不需要任何包。
\newcommand\forewordname{foreword}
\newcommand\definitionsname{Definitions}
\newcommand\makepreamblecmd[1]{%
\expandafter\newenvironment\expandafter{#1}{%
\setcounter{footnote}{0}
\chapter*{#1}}% could be other formatting macro
{}}
你创建新的环境,
\makepreamblecmd{\forewordname}
\makepreamblecmd{\definitionsname}
通过使用宏,\forewordname
您还可以处理除英语之外的其他语言。
这是一个完整的极简主义,
\documentclass{book}
\makeatletter
\newcommand\forewordname{foreword}
\newcommand\definitionsname{Definitions}
\newcommand\prefacename{Preface}
\newcommand\makepreamblecmd[1]{%
\expandafter\newenvironment\expandafter{#1}{%
\setcounter{footnote}{0}
\chapter*{#1}}%
{}}
\title{test}
\begin{document}
\frontmatter
\maketitle
\tableofcontents
\makepreamblecmd{\forewordname}
\makepreamblecmd{\definitionsname}
\makepreamblecmd{\prefacename}
\begin{foreword}
Some text.\footnote{A footnote}
Some text.\footnote{A footnote}
\end{foreword}
\begin{Definitions}
Some text.\footnote{A footnote}
Some text.\footnote{A footnote}
\end{Definitions}
\begin{Preface}
Some text.\footnote{A footnote}
Some text.\footnote{A footnote}
\end{Preface}
\mainmatter
\chapter{First}
Some text.\footnote{A footnote}
\end{document}
如果需要,可以修改生成环境的“工厂方法”,以将名称添加到 ToC 并确保其超链接。