如何获得定理(定理 1.A.、定理 1.B.、定理 2.)的子编号?

如何获得定理(定理 1.A.、定理 1.B.、定理 2.)的子编号?

我尝试对我的定理进行编号如下:

定理 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。定理的第二部分。

相关内容