由于不能将标签与chemfig
包装发生化学反应,唯一的解决方案是将方案置于\begin{equation}
和之间\end{equation}
\begin{equation}
\schemestart
2 \ce{H_{2}O} \arrow{<=>} \ce{H_{3}O^{+}} \+ \ce{OH^{-}}
\schemestop
\end{equation}
这个,效果很好。所以,我想创造一个新的环境,叫做“反应”:这是我的尝试
\documentclass[12pt]{article}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
\newenvironment{reaction}
{
\centering
\begin{equation}
\schemestart
\schemestop
\end{equation}
}
\begin{document}
\begin{reaction}
2 \ce{H_{2}O} \arrow{<=>} \ce{H_{3}O^{+}} \+ \ce{OH^{-}}
\end{reaction}
\end{document}
这是错误信息:
! Undefined control sequence. 2 \ce{H_{2}O} \arrow
似乎\arrow
序列在反应环境中不起作用
我该如何改善新环境?
答案1
您缺少最后一个参数\newenvironment
(选择空白行以避免错误),所以您的等式始终为空,并且环境内容紧随其后。
化学宏似乎不喜欢正常的新环境,因此在这里使用 xparse 来获取环境主体
\documentclass[12pt]{article}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
\usepackage{xparse}
\NewDocumentEnvironment{reaction}{b}
{%
\begin{equation}%
\schemestart
#1
\schemestop
\end{equation}%
}
\begin{document}
\begin{reaction}
2 \ce{H_{2}O} \arrow{<=>} \ce{H_{3}O^{+}} \+ \ce{OH^{-}}
\end{reaction}
\end{document}