amsbook 中的定理、推论、方程编号

amsbook 中的定理、推论、方程编号

我使用的amsbook类和amsthm包如下:

\theoremstyle{plain} %% This is the default, anyway
\newtheorem{thm}[equation]{Theorem}
\newtheorem{cor}[equation]{Corollary}
\newtheorem{lem}[equation]{Lemma}
\newtheorem{prop}[equation]{Proposition}

\theoremstyle{definition}
\newtheorem{defn}[equation]{Definition}

\theoremstyle{remark}
\newtheorem{rem}[equation]{Remark}
\newtheorem{ex}[equation]{Example}
\newtheorem{exer}[equation]{Exercise}
\newtheorem{notation}[equation]{Notation}
\newtheorem{terminology}[equation]{Terminology}
%etc

我希望所有定理、推论等都编号为

  • partnumber.chapternumber 当它们位于章节内,而不是任何章节、小节或“较低级别”的子小节...小节中时
  • partnumber.chapternumber.sectionnumber 当它们位于某一节内,而不在任何小节、子节或“较低级别”的子小节...小节中时
  • ETC

我希望方程式也能如此,但我不知道该怎么做。

答案1

请不要用部分内容重新设置章节编号;在使用这种复杂的编号方案打扰读者之前,您应该三思而后行。

\documentclass[openany]{amsbook}
\usepackage{xparse}

\newtheorem{thm}[equation]{Theorem} % one suffices for the example
\counterwithin*{equation}{subsubsection}

\renewcommand{\theequation}{%
  \printuptozero{chapter,section,subsection,subsubsection}{equation}%
}

\ExplSyntaxOn
\NewExpandableDocumentCommand{\printuptozero}{mm}
 {
  \clist_map_function:nN { #1 } \ujs_printuptozero:n
  \arabic{#2}
 }

\cs_new:Nn \ujs_printuptozero:n
 {
  \int_compare:nTF { \value{#1}>0 } { \arabic{#1}. } { \clist_map_break: }
 }
\ExplSyntaxOff

\begin{document}

\chapter{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\section{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\subsection{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\subsection{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\chapter{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\section{Test}

\begin{thm}
test
\end{thm}

\begin{equation}
0=0
\end{equation}

\end{document}

\counterwithin*{equation}{subsubsection}我们隶属equation各部门及以上级别subsubsection

接下来我重新定义\theequation依次扫描分段计数器的值;如果值为正,则打印数字和句点;否则停止循环。最后equation打印值。

openany选项仅用于使示例适合两页并具有一张输出图片。

在此处输入图片描述

相关内容