重新定义定理、命题、推论等的环境,以生成后续编号

重新定义定理、命题、推论等的环境,以生成后续编号

我编写了下面一段代码来为命题、推论、备注、定义、例子、引理等定义自定义环境。

\newcounter{mthm}
\newtheorem{mthmitalic}[mthm]{\mthmname}
\theoremstyle{definition}
\newtheorem{mthmroman}[mthm]{\mthmname}
\newcommand{\mthmname}{}

\newcommand{\varnewtheorem}[3]{%
\newenvironment{#1}[1]{%
\renewcommand{\mthmname}{#2}%
\renewcommand{\themthm}{##1}%
\csname mthm#3\endcsname
 }{\csname endmthm#3\endcsname}%
}

\varnewtheorem{theorem}{Theorem}{italic}
\varnewtheorem{corollary}{Corollary}{italic}
\varnewtheorem{definition}{Definition}{roman}
\varnewtheorem{example}{Example}{roman}
\varnewtheorem{examples}{Examples}{roman}
\varnewtheorem{proposition}{Proposition}{italic}
\varnewtheorem{remark}{Remark}{roman}

每个环境(例如\begin{corollary}{num} \end{corollary})都需要另一个参数来提供推论的编号或其他内容。我的问题是:是否可以修改这段代码以提供后续的自动编号,以便所有环境都相互依赖。这意味着如果我有一个定义 1和一个定理定义之后,该定理自动标记为2。

我还希望无论文章是否分成章节和小节,修改都能正常工作。

我希望我已经很好地表达了我想要的东西。

提前致谢

答案1

需要该机器是因为您要求手动的编号。

自动编号功能开箱即用。

\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}

\newtheorem{theorem}{Theorem}[section]
\newtheorem{corollary}[theorem]{Corollary}
% declare here other similar environments with text in italic

% from now on the defined environments will have the text in upright type
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}

\newcommand{\s}{\oplus}
\newcommand{\ds}{\leq^{\oplus}}
\DeclareMathOperator{\im}{im}

\begin{document}

\section{Title}

\begin{definition}
This is a definition of $X\ds Y$.
\end{definition}

\begin{theorem}\label{theoremC3}
Let $M_R$ be a $C3$-module. If $M=X\s Y$ and $f:X\to Y$ is a homomorphism with 
$\ker f \ds X$, then $\im f \ds Y$.
\end{theorem}

An immediate consequence of Theorem \ref{theoremC3} is the following corollary.

\begin{corollary}\label{corollaryeasy}
Corollaries are easy.
\end{corollary}

And we can even give examples.

\begin{example}
This is an example related to Corollary~\ref{corollaryeasy}
\end{example}

\end{document}

在此处输入图片描述

如果您希望编号与部分无关,只需[section]从第一个\newtheorem声明中删除即可。

相关内容