是否可以选择将环境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}