我正在使用\numberwithin{equation}{subsection}
对文章中每个小节的方程式进行唯一编号。
例如:
- 第 1 节标题
1.1 小节 1.1 标题
a=b (1.1.1)
a+2=b+2 (1.1.2)
- 第 2 部分 标题
r=y (1.0.1)
但是,在我的文档中,我没有得到新部分中第一个方程的正确方程编号。实际方程编号按顺序遵循上一节中的方程。从上面的示例中,r=y 的编号应为 1.0.3。
第 2 节以下小节中的方程式(即 2.1 和方程式 2.1.1)编号正确。
各部分不应该自动重新设置计数器吗?
答案1
除了说明
\numberwithin{equation}{subsection}
你需要说明
\makeatletter
\@addtoreset{equation}{section}
\makeatother
第一条指令仅在遇到指令\numberwithin{equation}{subsection}
时重置方程计数器。如果您有指令但没有指令,则名为\subsection
\section
\subsection
equation
是不是除非您提供其他指令(例如),否则将重置\@addtoreset{equation}{section}
。
请注意,如果你想按小节对方程式进行编号,那么可能不是\section
在指令和该部分的第一条指令之间添加等式是一个好主意\subsection
:在那个阶段,计数器subsection
仍然0
(已被指令重置0
)\section
,导致等式编号被格式化为“2.0.1”,很可能让你的读者怀疑编号的小节是否2.0
以某种方式神秘消失了。
\documentclass{article}
\usepackage{amsmath}
\numberwithin{equation}{subsection}
\makeatletter
\@addtoreset{equation}{section}
\makeatother
\begin{document}
\section{Section 1 Title}
\subsection{Subsection 1.1 Title}
\begin{equation} a = b \end{equation}
\begin{equation} a+2=b+2 \end{equation}
\section{Section 2 Title}
%%\subsection{Subsection 2.1 Title}
\begin{equation} r=y \end{equation}
\end{document}
答案2
您还可以使用以下 changcntr
包来完成此操作:
\documentclass{article}
\usepackage{amsmath}
\usepackage{chngcntr}
\counterwithin{equation}{section}
\counterwithin{equation}{subsection}
\begin{document}
\section{Section 1 Title}
\subsection{Subsection 1.1 Title}
\begin{equation} a = b \end{equation}
\begin{equation} a+2=b+2 \end{equation}
\section{Section 2 Title}
\begin{equation} r=y \end{equation}
\subsection{Subsection 2.1 Title}
\begin{equation} r + s=y + z\end{equation}
\end{document}