如何强制对特定方程式进行特殊编号

如何强制对特定方程式进行特殊编号

我想在包含一些标准方程式的文本中引入一组化学反应(见下面的代码)。标准方程式应该连续编号,但化学反应应该编号为 R1-Rn。我该怎么做?

\begin{align}
  \ce{CH4} &+ \frac{3}{2}\ce{O2} \rightarrow \ce{CO} + 2\ce{H2O} \label{eqn:hom2}\\
  \ce{CO}  &+ \frac{1}{2}\ce{O2} \rightarrow \ce{CO2} \label{eqn:hom3} 
\end{align}

答案1

这是一个解决方案:

\documentclass{article}

\newcounter{chem}
\newcounter{temp}

\usepackage{amsmath}
\usepackage{mhchem}

\newenvironment{chequation}{%
  \setcounter{temp}{\value{equation}}%
  \setcounter{equation}{\value{chem}}%
  \renewcommand{\theequation}{R\arabic{equation}}%
}{%
  \setcounter{chem}{\value{equation}}%
  \setcounter{equation}{\value{temp}}%
}


\begin{document}

\noindent
A \hfill Z
\begin{equation}
\label{eq1}
x+y=z
\end{equation}

\begin{chequation}
\begin{align}
  \ce{CH4} &+ \frac{3}{2}\ce{O2} \rightarrow \ce{CO} + 2\ce{H2O} \label{eqn:hom2}\\
  \ce{CO}  &+ \frac{1}{2}\ce{O2} \rightarrow \ce{CO2} \label{eqn:hom3} 
\end{align}
\end{chequation}

\begin{equation}
\label{eq2}
x^2+y^2=1
\end{equation}

\begin{equation}
\label{eq3}
x^2-y^2=1
\end{equation}

\begin{chequation}
\begin{align}
  \ce{CH4} &+ \frac{3}{2}\ce{O2} \rightarrow \ce{CO} + 2\ce{H2O} \label{eqn:foo}\\
  \ce{CO}  &+ \frac{1}{2}\ce{O2} \rightarrow \ce{CO2} \label{eqn:bar} 
\end{align}
\end{chequation}

In this example I have Reactions~\ref{eqn:hom2},~\ref{eqn:hom3},~\ref{eqn:foo} and~\ref{eqn:bar}, as well as Equations~\ref{eq1},~\ref{eq2} and~\ref{eq3}.

\noindent A \hfill Z

\end{document}

及其输出:

输出

答案2

数学工具允许定义“标签样式”:mathtools在序言中加载和定义:

\newtagform{reaction}[r.]()

并在文档正文中:

\usetagform{reaction}

在您想要使用此标签样式的位置。如果稍后您想要返回到标准标签,请使用:

\usetagform{default}

相关内容