我怎样才能将一组方程式与另一组方程式分开编号?
例如,如果我们有一个包含以下内容的文件:
\documentclass{report}
\usepackage{amsmath}
\begin{document}
\begin{equation}
\label{Equation:1}
0+0=0
\end{equation}
\begin{equation}
\label{Result:1}
1*1=1
\end{equation}
\begin{equation}
\label{Equation:2}
0+1=1
\end{equation}
\begin{equation}
\label{Result:2}
1*2=2
\end{equation}
Equation \ref{Equation:1} and Equation \ref{Equation:2}.
Result \ref{Result:1} and Result \ref{Result:2}.
\end{document}
如何对方程式和结果分别进行编号?
在此示例中,输出为:
Equation 1 and Equation 3.
Result 2 and Result 4.
但我想:
Equation 1 and Equation 2.
Result 1 and Result 2.
我怎样才能做到这一点?
做到这一点的最好方法是什么?
答案1
equation
你可以定义一个用计数器替换计数器的环境result
。
\documentclass{report}
\usepackage{amsmath}
\newcounter{result}
%\renewcommand{\theresult}{R-\arabic{result}}
\makeatletter
\newcommand{\changeequationintoresult}{%
\let\c@equation\c@result\let\theequation\theresult}
\makeatletter
\newenvironment{results}{\changeequationintoresult}{}
\begin{document}
\begin{equation}
\label{Equation:1}
0+0=0
\end{equation}
\begin{results}
\begin{equation}
\label{Result:1}
1*1=1
\end{equation}
\end{results}
\begin{equation}
\label{Equation:2}
0+1=1
\end{equation}
\begin{results}
\begin{equation}
\label{Result:2}
1*2=2
\end{equation}
\end{results}
Equation \ref{Equation:1} and Equation \ref{Equation:2}.
Result \ref{Result:1} and Result \ref{Result:2}.
\end{document}
如果你只需要环境equation
,你可以定义一个新的环境,例如requation
:
\newenvironment{requation}
{\changeequationintoresult\equation}
{\endequation}
并说
\begin{requation}
\label{Result:1}
1*1=1
\end{requation}
而不是更复杂的双重环境。同样,另一个数学环境可以得到处理。
答案2
最好的方法是使用subequations
from amsmath
。
\documentclass{report}
\usepackage{amsmath}
\begin{document}
\begin{subequations}
\begin{equation}
\label{eq:foo}
0+0=0
\end{equation}
\begin{equation}
\label{re:foo}
1*1=1
\end{equation}
\end{subequations}
\begin{subequations}
\begin{equation}
\label{eq:bar}
0+1=1
\end{equation}
\begin{equation}
\label{re:bar}
1*2=2
\end{equation}
\end{subequations}
Equation \ref{eq:foo} and Equation \ref{eq:bar}.
Result \ref{re:foo} and Result \ref{re:bar}.
\end{document}
它与您的代码不同。但很有用。