我想在 chemmacros 提供的反应环境中使用类似子方程的东西。像这样:
A -> B {1a}
B->C{1b}
C->D {1c}
这不起作用:
\documentclass{article}
\usepackage{chemmacros}
\chemsetup{modules=reactions}
\chemsetup{formula=mhchem}
\begin{document}
\begin{subequations}
\begin{reactions}
A &-> B \\
B &-> C \\
C &-> D
\end{reactions}
\end{subequations}
\end{document}
有没有办法用 chemmacro 来实现这个功能?谢谢
答案1
我设法搞清楚了。您必须subreactions
基于subequations
使用reaction
而不是equation
作为计数器和thereaction
而不是theequation
作为标签的环境创建一个新环境:
\documentclass{article}
\usepackage{chemmacros}
\usepackage{amsmath}
\chemsetup{modules=reactions}
\chemsetup{formula=mhchem}
\makeatletter
\@ifundefined{ignorespacesafterend}{\def\ignorespacesafterend{\global\@ignoretrue}}{}
\newenvironment{subreactions}{%
\refstepcounter{reaction}%
\protected@edef\theparentequation{\thereaction}%
\setcounter{parentequation}{\value{reaction}}%
\setcounter{reaction}{0}%
\def\thereaction{\theparentequation\alph{reaction}}%
\ignorespaces
}{%
\setcounter{reaction}{\value{parentequation}}%
\ignorespacesafterend
}
\makeatother
\begin{document}
\begin{subequations}
\begin{align}
A &= B \\
B &= C \\
C &= D
\end{align}
\end{subequations}
\begin{subreactions}
\begin{reactions}
A &-> B \\
B &-> C \\
C &-> D
\end{reactions}
\end{subreactions}
\begin{subequations}
\begin{align}
A &= B \\
B &= C \\
C &= D
\end{align}
\end{subequations}
\begin{subreactions}
\begin{reactions}
A &-> B \\
B &-> C \\
C &-> D
\end{reactions}
\end{subreactions}
\end{document}