改变章节后“section”会被重置吗?

改变章节后“section”会被重置吗?

文档amsthm指出:

如果任何定理元素按节编号,并且(在一本书中)章节中的第一个此类元素位于第一节之前,则编号将从上一章继续。在这种情况下,通过在受影响的元素之前调用此命令来重置计数器:

\setcounter{thm}{0}

但是,我运行了以下 MWE

\documentclass[openany]{book}

\usepackage{amsthm}

\theoremstyle{definition}
\newtheorem{dfn}{Definition}[section]

\begin{document}
    \chapter{Elio}
        
    \begin{dfn}
        content
    \end{dfn}
        
        \section{Bach}
        
        \begin{dfn}
            content
        \end{dfn}
        
        
    \chapter{Oliver}
    
    \begin{dfn}
        content
    \end{dfn}
    
\end{document}

并发现dfn第二章中尽管没有使用,但正确编号为 2.0.1 \setcounter{dfn}{0}

这里发生了什么?

答案1

AMS 文档没有考虑到 2015 年的改进\stepcounter

latex 格式源(ltcounts.dtx)说:

% \changes{v1.1h}{2015/01/10}{Reset all within counters in one go (latexrelease)}
%
%    Rather than resetting the ``within'' counter to zero we set it to
%    $-1$ and then run |\stepcounter| that moves it to $0$ and also
%    initiates resetting the next level down.

现在,即使“省略”一个级别,它也可以正确重置嵌套计数器,“启动下一个级别的重置”。这是当时添加的新功能。

相关内容