我尝试对我的定理进行编号如下:
定理 1.A。定理的第一部分。
定理 1.B。定理的第二部分。
定理2。一条没有部分的定理。
以下几乎有效:
\newtheorem{theorem}{Theorem}
\newtheorem{theorempart}{Theorem}[theorem]
但它并没有像我希望的那样增加定理计数器,因此
\begin{theorempart}First part of a theorem.
\end{theorempart}
\begin{theorempart}Second part of the theorem.
\end{theorempart}
\begin{theorem}A theorem with no parts.
\end{theorem}
给出:
定理 0.1。定理的第一部分。
定理 0.2。定理的第二部分。
定理1。一条没有部分的定理。
另外,我不知道如何将零件编号改为字母而不是数字。
我正在使用 MiKTeX。
答案1
我使用的模型是subequations
以下环境的模型amsmath
:
\documentclass{article}
\makeatletter
\newenvironment{subtheorem}[1]{%
\def\subtheoremcounter{#1}%
\refstepcounter{#1}%
\protected@edef\theparentnumber{\csname the#1\endcsname}%
\setcounter{parentnumber}{\value{#1}}%
\setcounter{#1}{0}%
\expandafter\def\csname the#1\endcsname{\theparentnumber.\Alph{#1}}%
\ignorespaces
}{%
\setcounter{\subtheoremcounter}{\value{parentnumber}}%
\ignorespacesafterend
}
\makeatother
\newcounter{parentnumber}
\newtheorem{thm}{Theorem}
\begin{document}
\begin{thm}\label{thm:one}
One
\end{thm}
\begin{subtheorem}{thm}\label{thm:two}
\begin{thm}\label{thm:twoA}
Two, first part
\end{thm}
\begin{thm}\label{thm:twoB}
Two, second part
\end{thm}
\end{subtheorem}
\begin{thm}\label{thm:three}
Three
\end{thm}
\ref{thm:one}, \ref{thm:two}, \ref{thm:twoA}, \ref{thm:twoB}, \ref{thm:three}.
\end{document}
您将定理必须在环境中“子编号”的部分括起来subtheorem
,该部分将您想要影响的类定理环境的名称作为参数。
这些\label
命令不是强制性的,但您可以看到,您还可以为子编号定理设置“全局”标签。
答案2
subtheorem
另一种轻松修复此问题的方法是使用以下代码。但是,每次执行新操作后都需要重置计数器theorem
。
\documentclass{article}
\usepackage{amsthm}
\newtheorem{theorem}{Theorem}
\newtheorem{subtheorem}{Theorem}
\renewcommand{\thesubtheorem}{\thetheorem.\Alph{subtheorem}}
\setcounter{theorem}{1}
\begin{document}
\begin{subtheorem}First part of a theorem.
\end{subtheorem}
\begin{subtheorem}Second part of the theorem.
\end{subtheorem}
\begin{theorem}A theorem with no parts.
\end{theorem}
\setcounter{subtheorem}{0}
\begin{subtheorem}Second part of the theorem.
\end{subtheorem}
\end{document}
得出:
定理 1.A。定理的第一部分。
定理 1.B。定理的第二部分。
定理2。一条没有部分的定理。
定理 2.A。定理的第二部分。