带有化学宏反应模块的“子反应”

带有化学宏反应模块的“子反应”

我想在 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}

相关内容