在 chemmacros 的反应环境中使用(自定义)热力学状态时抛出错误

在 chemmacros 的反应环境中使用(自定义)热力学状态时抛出错误

当我尝试使用热力学状态(以及通过自定义状态变量\DeclareChemState)时,会引发参数错误chemmacrosreactions环境。

问题末尾提供的 MWE 将在使用最新版本的 TeX Live 2012 排版时(在提出此问题时)重现以下错误。

错误:

[...] Argument of \chemformula_superscript:n has an extra }.
<inserted text>
                \par
l.8 \end{reactions}

妇女权利委员会:

\documentclass[12pt]{article}
\usepackage{chemmacros}
\DeclareChemState[delta=false]{StdElPot}{E}{\volt}
\begin{document}
\begin{reactions}
Pd\pch[2]\aq{} + 2 \el{} &<=> Pd\sld{} &&\StdElPot{0.83} \\
PdCl4\mch[2]\aq{} + 2 \el{} &<=> Pd\sld{} + 4 Cl\mch\aq{} &&\StdElPot{0.64}
\end{reactions}
\end{document}

答案1

\ch{}命令将输入​​中的数字视为下标命令展开。引用手册chemformula

复合命令允许使用 [...] ,但是,如果命令要求数字作为参数,例如 [...][ \hspace{}] ,则直接使用将失败。这是因为在命令展开之前,数字被视为下标。

这也适用于\StdElPot。——chemmacros或者更确切地说,chemformula执行公式解析的包——有一种解决方法:可以通过将输入放在'...'或之间来转义输入"..."

如果您在" "或之间放置某些内容,' '则输入将被视为普通文本 [...]

您的示例的首选语法如下:

\documentclass[12pt]{article}
\usepackage{chemmacros}
\chemsetup{
  modules={reactions,thermodynamics}
}

\NewChemState\StdElPot{
  symbol=E , subscript-pos=right , pre = , unit=\volt
}

\begin{document}

\begin{reactions}
 Pd^2+ \aq{}    + 2 e- &<=> Pd\sld{}               && "\StdElPot{0.83}" \\
 PdCl4^2- \aq{} + 2 e- &<=> Pd\sld{} + 4 Cl- \aq{} && "\StdElPot{0.64}"
\end{reactions}

\end{document}

在此处输入图片描述

相关内容