现在我有以下序言
newtheorem{thm}{Theorem}[section]
\let\oldthm\thm
\renewcommand{\thm}{\oldthm\normalfont}
\newtheorem{corol}{Corollary}[section]
\let\oldcorol\corol
\renewcommand{\corol}{\oldcorol\normalfont}
\newtheorem{lem}{Lemma}[section]
\let\oldlem\lem
\renewcommand{\lem}{\oldlem\normalfont}
\newtheorem{defn}{Definition}[section]
\let\olddefn\defn
\renewcommand{\defn}{\olddefn\normalfont}
\newtheorem{exa}{Example}[section]
\let\oldexa\exa
\renewcommand{\exa}{\oldexa\normalfont}
\newtheorem{prop}{Proposition}[section]
\let\oldprop\prop
\renewcommand{\prop}{\oldprop\normalfont}
这会抑制标准 newtheorem 命令使用的斜体字体。我希望改变这些定理、引理等的编号方式。我希望使用相同的计数器按节对它们进行编号,例如:
第 1 部分
-- 第 1.1 节
----定理1.1
---- 推论 1.2
第 2 部分
-- 第 2.1 节
---- 引理 2.1
---- 定义2.2
而现在的编号是:
第 1 部分
-- 第 1.1 节
----定理1.1
---- 推论 1.1
第 2 部分
-- 第 2.1 节
---- 引理 2.1
---- 定义2.1
我曾尝试使用虚拟变量作为另一个问题的答案,但未能奏效。提前致谢!
编辑
这是一个简单的例子:
\documentclass{article}
\newtheorem{thm}{Theorem}[section]
\let\oldthm\thm
\renewcommand{\thm}{\oldthm\normalfont}
\newtheorem{corol}{Corollary}[section]
\let\oldcorol\corol
\renewcommand{\corol}{\oldcorol\normalfont}
\newtheorem{lem}{Lemma}[section]
\let\oldlem\lem
\renewcommand{\lem}{\oldlem\normalfont}
\newtheorem{defn}{Definition}[section]
\let\olddefn\defn
\renewcommand{\defn}{\olddefn\normalfont}
\newtheorem{exa}{Example}[section]
\let\oldexa\exa
\renewcommand{\exa}{\oldexa\normalfont}
\newtheorem{prop}{Proposition}[section]
\let\oldprop\prop
\renewcommand{\prop}{\oldprop\normalfont}
\begin{document}
\section{First}
\subsection{A}
\begin{thm}
Theorem
\end{thm}
\begin{corol}
Corollary
\end{corol}
\section{Second}
\subsection{B}
\begin{lem}
Lemma
\end{lem}
\begin{defn}
Definition
\end{defn}
\end{document}
答案1
使用amsthm
包:定义新定理时,您可以指示它使用共享计数器:
\newtheorem{⟨env name⟩}[⟨shared counter⟩]{⟨text⟩}
更多细节请参见amsthm
文档:“3 定理编号”
\documentclass{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{thm}{Theorem}[section]
\newtheorem{corol}[thm]{Corollary}
\begin{document}
\section{sec}
\subsection{sub}
\begin{thm}
\end{thm}
\begin{corol}
\end{corol}
\section{sec}
\subsection{sub}
\begin{thm}
\end{thm}
\begin{corol}
\end{corol}
\end{document}
答案2
如果由于某种原因您不想使用amsthm
,您可以更简单地修补\@begintheorem
。
你应该定义一个主要定理,其他定理都从属于它。
\documentclass{article}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\@begintheorem}{\itshape}{}{}{}
\makeatother
\newtheorem{thm}{Theorem}[section]
\newtheorem{corol}[thm]{Corollary}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{defn}[thm]{Definition}
\newtheorem{exa}[thm]{Example}
\newtheorem{prop}[thm]{Proposition}
\begin{document}
\section{First}
\subsection{A}
\begin{thm}
Theorem
\end{thm}
\begin{corol}
Corollary
\end{corol}
\section{Second}
\subsection{B}
\begin{lem}
Lemma
\end{lem}
\begin{defn}
Definition
\end{defn}
\end{document}
但是使用amsthm
更简单:
\documentclass{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{thm}{Theorem}[section]
\newtheorem{corol}[thm]{Corollary}
\newtheorem{lem}[thm]{Lemma}
\newtheorem{defn}[thm]{Definition}
\newtheorem{exa}[thm]{Example}
\newtheorem{prop}[thm]{Proposition}
\begin{document}
\section{First}
\subsection{A}
\begin{thm}
Theorem
\end{thm}
\begin{corol}
Corollary
\end{corol}
\section{Second}
\subsection{B}
\begin{lem}
Lemma
\end{lem}
\begin{defn}
Definition
\end{defn}
\end{document}
答案3
这是不使用的方法amsthm
,而是使用Coupled Counters
来自(嗯,我的;-))包的功能xassoccnt
。
定义一个计数器组名称,该名称基本上是任意的,然后用相关的计数器名称填充该组。
但是,我不建议重新定义\thm
等等命令。
\documentclass{article}
\usepackage{xassoccnt}
\DeclareCoupledCountersGroup{TheoDefCorolLemma}
\newtheorem{thm}{Theorem}[section]
\let\oldthm\thm
\renewcommand{\thm}{\oldthm\normalfont}
\newtheorem{corol}{Corollary}[section]
\let\oldcorol\corol
\renewcommand{\corol}{\oldcorol\normalfont}
\newtheorem{lem}{Lemma}[section]
\let\oldlem\lem
\renewcommand{\lem}{\oldlem\normalfont}
\newtheorem{defn}{Definition}[section]
\let\olddefn\defn
\renewcommand{\defn}{\olddefn\normalfont}
\newtheorem{exa}{Example}[section]
\let\oldexa\exa
\renewcommand{\exa}{\oldexa\normalfont}
\newtheorem{prop}{Proposition}[section]
\let\oldprop\prop
\renewcommand{\prop}{\oldprop\normalfont}
\DeclareCoupledCounters[name=TheoDefCorolLemma]{thm,corol,lem,defn,exa,prop}
\begin{document}
\section{First}
\subsection{A}
\begin{thm}
Theorem
\end{thm}
\begin{corol}
Corollary
\end{corol}
\section{Second}
\subsection{B}
\begin{lem}
Lemma
\end{lem}
\begin{defn}
Definition
\end{defn}
\begin{prop}
Proposition foo
\end{prop}
\end{document}