对于我的大部分文档(使用文档类“报告”并使用 amsthm 包),我对\newtheorem{thm}{Theorem}[section]
产生的定理编号感到满意,即
定理 1.2.3。
是第 1 章第 2 节中的第 3 条定理。但是,后面的章节没有章节,因此我的定理编号如下
定理 6.0.1
0 让我很困扰 :)。如何将 \newtheorem 命令更改为根据章节进行编号,而不更改文档中先前的编号?
谢谢!
答案1
使用\counterwithin
宏。
% theoremprob.tex SE 633030
\documentclass{report}
\usepackage{amsthm}
\newtheorem{thm}{Theorem}[section]
%\usepackage{chngcntr} %%%% now in basic LaTeX
\begin{document}
\chapter{First}
%%% default theorem number (based on current section)
\section{A section}
\begin{thm}
maths
\end{thm}
\chapter{Second}
\counterwithin{thm}{chapter} % make theorem number based on current chapter
\begin{thm}
maths
\end{thm}
\chapter{Third}
\counterwithin{thm}{section} % make theorem number based on current section
\section{A section}
\begin{thm}
maths
\end{thm}
\end{document}
\counterwithin
和宏\counterwithout
最初由包定义,chngcntr
但现在已成为基本 LaTeX 的一部分。您可以通过以下方式阅读这些宏的手册:texdoc chngcntr