我想用相同的计数器对一个部分内的所有内容进行编号:定理、定义、方程、小节等。所有编号以供参考的内容(浮点数除外,因为它们“不按顺序排列”)。我正在使用该类amsbook
。
我已将大多数事物放入等式计数器中,如下所示:
\documentclass{amsbook}
\numberwithin{section}{chapter}
\numberwithin{equation}{section}
\newtheorem{thm}[equation]{Theorem}
\newtheorem{crl}[equation]{Corollary}
\theoremstyle{definition}
\newtheorem{dfn}[equation]{Definition}
\begin{document}
\chapter{Introduction}
\section{Foo} % 1.1
\begin{thm} % 1.1.1
Some sets are finite.
\end{thm}
\begin{crl} % 1.1.2
Not all sets are infinite.
\end{crl}
\subsection{Bar} % 1.1.1
We find that
\begin{equation} % 1.1.3
2 = 1 + 1.
\end{equation}
\subsubsection{Baz} % 1.1.1.1
Furthermore,
\begin{equation} % 1.1.4
1 + 1 = 2.
\end{equation}
\section{Quux} % 1.2
Open questions remain.
\end{document}
在示例中,我希望子节 Bar 的编号为 1.1.3,其方程式为 1.1.4,子节 Baz 的编号为 1.1.5,其方程式为 1.1.6。然后所有内容都会随着新节重置。
答案1
您可以equation
为计数器创建别名,subsection
并为 创建相同的别名subsubsection
,但您还需要从 的重置列表中删除该计数器subsection
。
\documentclass{amsbook}
\usepackage{chngcntr}
\renewcommand{\thesection}{\thechapter.\arabic{section}}
\counterwithout{subsubsection}{subsection}
\makeatletter
\let\c@equation\c@subsection
\let\theequation\thesubsection
\let\c@subsubsection\c@subsection
\let\thesubsubsection\thesubsection
\makeatother
\newtheorem{thm}[subsection]{Theorem}
\newtheorem{crl}[subsection]{Corollary}
\theoremstyle{definition}
\newtheorem{dfn}[subsection]{Definition}
\begin{document}
\chapter{Introduction}
\section{Foo} % 1.1
\begin{thm} % 1.1.1
Some sets are finite.
\end{thm}
\begin{crl} % 1.1.2
Not all sets are infinite.
\end{crl}
\subsection{Bar} % 1.1.1
We find that
\begin{equation} % 1.1.3
2 = 1 + 1.
\end{equation}
\subsubsection{Baz} % 1.1.1.1
Furthermore,
\begin{equation} % 1.1.4
1 + 1 = 2.
\end{equation}
\section{Quux} % 1.2
Open questions remain.
\end{document}
答案2
一种方法是使用类似以下的方式劫持部分命令:
\let\realsubsection\subsection% keep a copy
\def\subsection{\setcounter{subsection}{\arabic{equation}}% sync the counters
\refstepcounter{equation}%
\realsubsection% invoke the real \section
}
这样做的目的是,每当使用计数器时,使subsection
计数器等于计数器的当前值(并且还会增加计数器)。equation
equation
我对您想要做的事情感到困惑\subsubsection
,但是,根据您的描述,它应该与相同\subsection
。对我来说,创建一个具有正确标签的子部分更有意义,这就是我的代码所做的:
事实上,我没有使用上面的代码,而是重写了所有内容以使用计数器subsection
。这样做的原因是,如果您破解了\subsection
命令,那么您还需要破解命令\subsubsection
才能使其正常工作。相反,我破解了\equation
,这会启动equation
环境。以下是完整的 mwe:
\documentclass{amsbook}
\numberwithin{section}{chapter}
\numberwithin{equation}{section}
\newtheorem{thm}[subsection]{Theorem}
\newtheorem{crl}[subsection]{Corollary}
\theoremstyle{definition}
\newtheorem{dfn}[subsection]{Definition}
\let\realequation\equation
\def\equation{\setcounter{equation}{\arabic{subsection}}%
\refstepcounter{subsection}%
\realequation}
\begin{document}
\chapter{Introduction}
\section{Foo} % 1.1
\begin{thm} % 1.1.1
Some sets are finite.
\end{thm}
\begin{crl} % 1.1.2
Not all sets are infinite.
\end{crl}
\subsection{Bar} % 1.1.1
We find that
\begin{equation} % 1.1.3
2 = 1 + 1.
\end{equation}
\subsubsection{Baz} % 1.1.1.1
Furthermore,
\begin{equation} % 1.1.4
1 + 1 = 2.
\end{equation}
\section{Quux} % 1.2
Open questions remain.
\end{document}