连续编号,即按章节/节对图表、表格和其他文档元素进行编号

连续编号,即按章节/节对图表、表格和其他文档元素进行编号

一些文档元素(例如,book类中的图表)按章节编号(图 1.1、1.2、2.1,...)。如何实现连续编号(图 1、2、3,...)?

反之亦然:一些文档元素(例如,article类中的图形)是连续编号的。如何实现按节编号?

\documentclass{book}% for "vice versa" variant, replace `book` with `article`

\begin{document}

\chapter{foo}% for "vice versa" variant, replace `\chapter` with `\section`

\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}

\end{document}

附加问题:是否可以调整章节标题本身的编号?例如,我可以从按章节编号切换到课程中各节的连续编号book吗?

答案1

更改(例如)图形的编号涉及两项修改:

  1. figure重新定义每当章节/部分计数器增加时是否重置计数器;

  2. 重新定义计数器的“外观” figure\thefigure),即删除(或添加)章节/部分前缀。

标准解决方案:\counterwithout

标准解决方案(处理上面提到的修改 1 和 2)是使用\counterwithout\counterwithin命令。

自 2018 年 10 月起,命令位于 LaTeX 内核中;对于早期版本,需要\usepackage{chngcntr}

下面的例子展示了如何在book类中实现图形的连续编号:

\documentclass{book}

\counterwithout{figure}{chapter}

\begin{document}

\chapter{foo}

\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}

\end{document}

相反,以下是如何在类中实现每个部分图形编号的方法article

\documentclass{article}

\counterwithin{figure}{section}

\begin{document}

\section{foo}

\begin{figure}
\centering
\rule{1cm}{1cm}% placeholder for graphic
\caption{A figure}
\end{figure}

\end{document}

它对表格、自定义浮点数、方程式和脚注的工作方式相同。(请注意,在许多具有该\chapter命令的文档类中,即使计数器footnote不显示章节前缀,脚注也会按章节编号。)这些命令也可用于定理环境;不过,在定义新定理环境时指定其编号更容易:

\newtheorem{thm}{Theorem}% Continuous numbering
\newtheorem{prop}{Proposition}[section]% Per-section numbering

您还可以自定义章节标题本身的编号。例如,为了实现类中的章节连续编号book(默认情况下,按章节编号),但按章节按部分编号(默认情况下连续编号),您的序言应包含

\counterwithout{section}{chapter}
\counterwithin{chapter}{part}

影响计数器的重置没有更改其外观,使用带星号的宏版本\counterwithout*\counterwithin*。例如,对于类中每个部分的图片编号article– 但不附加部分前缀\thefigure–,将以下内容添加到您的序言中:

\counterwithin*{figure}{section}

还可以在文档主体中多次重新定义计数器的重置和外观。请注意\counterwithout\counterwithin和它们的变体不会影响计数器的当前值;要更改后者,请使用\setcounter{<counter>}{<new value>}

AMSmath 解决方案

AMS 课程amsmath软件包功能\numberwithin匹配的宏\counterwithin。但是,没有与 等效的 AMS \counterwithout。用法示例:\numberwithin{equation}{section}。请参阅cmhughes 提供的完整示例。如果您使用数学,您可能更喜欢amsmath无论如何加载并使用\numberwithin

其他解决方案

caption软件包具有键值选项figurewithin和,tablewithin允许更改(意外的)图形和表格的编号。允许的选项值为chaptersectionnone。(对于上面的第一个代码示例,这转换为\usepackage[figurewithin=none]{caption}。)

listings包使用\AtBeginDocument来定义lstlisting同名环境的计数器。要关闭具有 的类的环境每章编号\chapter,请\lstset{numberbychapter=false}在文档序言中发出。要启用不具有 的类的每节编号\chapter,请在序言中添加以下内容:

\AtBeginDocument{\counterwithin{lstlisting}{section}}

答案2

Patryk 的答案非常完美。但是每次你想将对象标签重新从“1”开始,你都需要手动重置表格、图形、方程式等的计数器。因此,它更适合带有附录的论文,而不是带有许多章节的书。

\renewcommand线路您只需设置一次。

优点就是超级简单,灵活。

像这样:

\setcounter{figure}{0}
\renewcommand{\thefigure}{A\arabic{section}.\arabic{figure}}

创建“图 A1.1”

你也可以这样做

\renewcommand{\thefigure}{Appendix~\arabic{section}.\arabic{figure}}

获得“图附录 1.1”(如果您有这种冲动的话)。

或者

\renewcommand{\thefigure}{A\arabic{section}.\arabic{subsection}.\arabic{figure}}

获得A1节1小节中图1的“图A1.1.1”。

答案3

奇怪的是,还没有人提到该包remreset及其\@removefromreset宏或 LaTeX - 核心宏\@addtoreset

请参阅xassoccnt本帖底部的另一个版本。

\documentclass{book}

\usepackage{remreset}
\makeatletter
\@removefromreset{figure}{chapter}
\renewcommand{\thefigure}{\arabic{figure}}

\@addtoreset{figure}{section}
\makeatother


\begin{document}

\chapter{First}
\begin{figure}
\caption{First figure}
\end{figure}
\chapter{Second}

\begin{figure}
\caption{Second figure}
\end{figure}

\section{A section that causes resetting of figure}

\begin{figure}
\caption{Third figure}
\end{figure}


\end{document}

使用xassoccnt\RemoveFromReset\AddToReset(不使用\makeatletter...\makeatother

\documentclass{book}

\usepackage{xassoccnt}

\RemoveFromReset{figure}{chapter}
\AddToReset{figure}{section}
\renewcommand{\thefigure}{\arabic{figure}}


\begin{document}

\chapter{First}
\begin{figure}
\caption{First figure}
\end{figure}
\chapter{Second}

\begin{figure}
\caption{Second figure}
\end{figure}

\section{A section that causes resetting of figure}

\begin{figure}
\caption{Third figure}
\end{figure}


\end{document}

请注意\RemoveFromFullReset,还有从驱动程序重置列表中删除计数器及其自己的重置列表。

更新从 1.3 版开始xassoccnt,支持以逗号分隔的计数器列表\AddToReset\RemoveFromReset以从驱动程序计数器重置列表中添加或删除。1.5截至 2017 年 10 月 20 日,当前版本为。

答案4

您还可以重新定义thefigure命令

\renewcommand{\thefigure}{\arabic{chapter}.\arabic{figure}}

article课堂上

\renewcommand{\thefigure}{\arabic{section}.\arabic{figure}}

相关内容