如何重置未编号小节的计数器?

如何重置未编号小节的计数器?
\documentclass{amsart}

\newtheorem{theorem}{Theorem}[section]

\begin{document}

\subsection*{1}

\begin{theorem}
blah is blah
\end{theorem}

\begin{theorem}
bloo is bloo
\end{theorem}

\subsection*{2}

\begin{theorem}
bleh is bleh
\end{theorem}

\begin{theorem}
blih is blih
\end{theorem}

\end{document}

显示为:

1. 

Theorem 0.1. blah is blah

Theorem 0.2. bloo is bloo

2. 

Theorem 0.3. bleh is bleh

Theorem 0.4. blih is blih

我如何重置计数器,以便在我的第二个未编号的小节中,将定理 0.3 重置为定理 0.1(并且将定理 0.4 重置为定理 0.2)?

(我放置了未编号的子节,因为对于这个特定的文档类,这些节是居中的,我不喜欢这样,因此我首先使用子节,但子节编号从 0.1 开始,而我希望它从 1 开始。所以我取消了子节的编号并输入我自己的编号。)

答案1

我不确定我是否理解了您的要求,因为您似乎在说您想要两个定理 0.1s 和两个定理 0.2s。这对我来说没有意义,所以我认为您可能想要这样的东西:

在此处输入图片描述

为此,我定义了一个\section使用mysection计数器的虚假命令,该计数器也用于对定理进行编号。

\documentclass{amsart}

\newcounter{mysection}
\let\realsection=\section
\renewcommand\section[1]{\refstepcounter{mysection}%
  \subsection*{\themysection.\space #1}
}
\newtheorem{theorem}{Theorem}[mysection]

\begin{document}

\section{First section}

\begin{theorem}
blah is blah
\end{theorem}

\begin{theorem}
bloo is bloo
\end{theorem}

\section{Second section}

\begin{theorem}
bleh is bleh
\end{theorem}

\begin{theorem}
blih is blih
\end{theorem}

\end{document}

答案2

改变命令的格式\section很简单,而且比跳过该级别并使用更好的方法(正如 ulrike fischer 指出的那样)\subsection

\section这是的定义amsart.cls

\def\section{\@startsection{section}{1}%
  \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
  {\normalfont\scshape\centering}}

只需删除\centering命令:

\makeatletter
\def\section{\@startsection{section}{1}%
  \z@{.7\linespacing\@plus\linespacing}{.5\linespacing}%
  {\normalfont\scshape}}
\makeatother

如果您希望使用小型大写字母以外的字体样式,您可以同时进行更改,例如改为\bfseries

\patchcmd包中的命令提供了仅更改命令定义部分内容的替代方法etoolbox;有关详细信息,请参阅文档。

相关内容