![如何重置未编号小节的计数器?](https://linux22.com/image/298474/%E5%A6%82%E4%BD%95%E9%87%8D%E7%BD%AE%E6%9C%AA%E7%BC%96%E5%8F%B7%E5%B0%8F%E8%8A%82%E7%9A%84%E8%AE%A1%E6%95%B0%E5%99%A8%EF%BC%9F.png)
\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
;有关详细信息,请参阅文档。