具体来说,我的问题是我想用以下公式标记某个小节(例如 2.1)的方程式:
(2.1(a)、2.1(b)...)
我知道如果我使用命令\numberwithin{equation}{subsection}
,但在这种情况下我得到的2.1.1
不是我想要的。我对 LaTeX 不是很熟悉,但有没有什么方法可以让我自动获得我想要的标签。因为我认为可以通过使用命令手动完成\tag
。
谢谢。
答案1
我假设,由于方程式“数字”的新形式包含一对括号,因此方程式数字不应显示在一对额外的括号中。如果这个假设不正确,请告知。
我建议您不要使用该方法,而是\numberwithin
按照以下示例进行操作。
\documentclass{article}
\usepackage{amsmath}
\renewcommand\theequation{\thesubsection(\alph{equation})}
\makeatletter
\def\tagform@#1{\maketag@@@{\ignorespaces#1\unskip\@@italiccorr}} % no parentheses
\@addtoreset{equation}{subsection}
\makeatother
\begin{document}
\setcounter{section}{2} % just for this example
\setcounter{subsection}{1} % just for this example
\begin{equation}\label{eq:112} 1+1=2 \end{equation}
\refstepcounter{subsection}
\addtocounter{equation}{3}
\begin{equation} 0+0=0 \end{equation}
A cross-reference to equation~\eqref{eq:112}.
\end{document}
答案2
另一个解决方案是基于\newtagform
的命令mathtools
。我们可以使用 恢复为默认标签格式(或任何其他格式)\usetagform{default}
:
\documentclass{article}
\usepackage{mathtools}
\makeatletter
\newtagform{alphanum}[\thesubsection\alph{equation}\@gobble]{(}{)}
\makeatother
\begin{document}
\setcounter{section}{2} % just for this example
\setcounter{subsection}{1} % just for this example
\usetagform{alphanum}
\begin{equation}\label{eq:112} 1+1=2 \end{equation}
\refstepcounter{subsection}
\addtocounter{equation}{3}
\begin{equation} 0+0=0 \end{equation}
A cross-reference to equation~\eqref{eq:112}.
\section{Another section}
\usetagform{default}
Another equation with the usual numbering:
\begin{equation}\label{eq:112} 2\times3=6 \end{equation}
\end{document}