我编写了下面一段代码来为命题、推论、备注、定义、例子、引理等定义自定义环境。
\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
声明中删除即可。