化学大分子反应的编号更改为与方程式相同的编号

化学大分子反应的编号更改为与方程式相同的编号

是否可以选择将环境chemmacros的编号更改reaction为与环境相同的编号equation

如果一个方程直接遵循一个反应,并且第一个编号高于最后一个编号,那么看起来会有点令人困惑。

\documentclass{scrartcl}
\usepackage{chemmacros}

\begin{document}

\begin{reaction}
A + B -> C + D 
\end{reaction}

\begin{reaction}
A + B -> C + D
\end{reaction}

\begin{equation}
1 + 3 = 4
\end{equation}

\end{document}

我已经设法通过改变来解决这个问题chemmacros.sty,但我认为这是一个非常肮脏的解决方案。

我希望直接在文档中找到解决方案。

答案1

环境的整个目的reaction是对显示的反应进行独立编号。如果您希望对显示的反应和方程式使用相同的编号,您可以简单地使用

\begin{equation}
  \ch{ A + B -> C + D }
\end{equation}

从本质上来说,这就是reaction环境所做的事情。

\documentclass{scrartcl}
\usepackage{chemmacros}

\begin{document}

\begin{equation}
  \ch{ A + B -> C + D }
\end{equation}

\begin{equation}
  \ch{ A + B -> C + D }
\end{equation}

\begin{equation}
  1 + 3 = 4
\end{equation}

\end{document}

在此处输入图片描述

如果你要使用reaction环境,最简单的解决方案就是重新定义它以执行上述操作(以下示例包含使示例适用于旧版本和新版本的代码chemmacros):

\documentclass{scrartcl}
\usepackage{chemmacros,environ}

% in older versions there is no \IfChemCompatibilityT
\providecommand\IfChemCompatibilityT[3]{}

% load the `reactions' module in newer versions:
\IfChemCompatibilityT{>=}{5.0}{
  \usechemmodule{reactions}
}

% redefine the environments:
\RenewEnviron{reaction}
  {\begin{equation}\expandafter\ch\expandafter{\BODY}\end{equation}}
\RenewEnviron{reaction*}
  {\begin{equation*}\expandafter\ch\expandafter{\BODY}\end{equation*}}
\RenewEnviron{reactions}
  {\begin{align}\expandafter\ch\expandafter{\BODY}\end{align}}
\RenewEnviron{reactions*}
  {\begin{align*}\expandafter\ch\expandafter{\BODY}\end{align*}}

\begin{document}

\begin{reaction}
  A + B -> C + D
\end{reaction}

\begin{reactions}
  A + B &-> C + D \\
  E + F &<=> G
\end{reactions}

\begin{equation}
  1 + 3 = 4
\end{equation}

\end{document}

相关内容