![使用 \numberwithin{equation}{subsection} 对方程进行编号的问题](https://linux22.com/image/297815/%E4%BD%BF%E7%94%A8%20%5Cnumberwithin%7Bequation%7D%7Bsubsection%7D%20%E5%AF%B9%E6%96%B9%E7%A8%8B%E8%BF%9B%E8%A1%8C%E7%BC%96%E5%8F%B7%E7%9A%84%E9%97%AE%E9%A2%98.png)
我正在写一篇文章,其中前两节没有小节,但第三节有两个小节。第一节有 2 个方程,第二节有 3 个方程,第三节有 2+2 个方程。
当我使用时\numberwithin{equation}{subsection}
,我得到了以下方程式编号:
第一部分
1.0.1
1.0.2
第二部分
2.0.3
2.0.4
2.0.5
第三部分
第 1 小节
3.1.1
3.1.2
第二小节
3.2.1
3.2.2
但是有没有办法得到第二节的方程式编号
第二部分
2.0.1
2.0.2
2.0.3
?
答案1
借助该changcntr
包,有两种方法可以实现这一点。首先,如果您不想显示0
不存在的子节 — 即如果某一点没有子节,则仅显示节号+方程式编号:
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{chngcntr}
\usepackage{etoolbox}
\counterwithin*{equation}{section}
\counterwithin*{equation}{subsection}
\renewcommand\theequation{\ifnumgreater{\value{subsection}}{0}{\thesubsection.}{\thesection.}\arabic{equation}}%
\begin{document}
\section{A First Section}
\begin{equation}
a = b
\end{equation}
\begin{equation}
a + c = b + c
\end{equation}
\begin{equation}
a × c = b × c
\end{equation}
\section{A Second Section}
\begin{equation}
a = b
\end{equation}
\begin{equation}
a + c = b + c
\end{equation}
\section{A Third Section}
An extra equation :
\begin{equation}\
\ln a = \ln b
\end{equation}
\subsection{First subsection}
\begin{equation}
a = b
\end{equation}
\begin{equation}
a + c = b + c
\end{equation}
\subsection{Second subsection}
\begin{equation}
a = b
\end{equation}
\begin{equation}
a + c = b + c
\end{equation}
\end{document}
如果希望0
显示,请从序言中删除\renewcommand\theequation{…}
和\usepackage{etoolbox}
,并替换counterwithin*{equation}{subsection}
为无星号的版本。