chemformula 中箭头下方包含 siunitx 语法的标签出现错误

chemformula 中箭头下方包含 siunitx 语法的标签出现错误

当使用以下代码时,一切都正常:

\documentclass{article}
\usepackage{siunitx}
\usepackage[modules=all]{chemmacros}

\begin{document}
  \ch{!(colorless)( VO3- ) ->[\SI{-0.255}{V}][ Fe^2+ ] !(blue)( VO^2+ )}
\end{document}

在此处输入图片描述

但我需要在电位和还原剂之间切换位置:

\documentclass{article}
\usepackage{siunitx}
\usepackage[modules=all]{chemmacros}

\begin{document}
  \ch{!(colorless)( VO3- ) ->[ Fe^2+ ][\SI{-0.255}{V}] !(blue)( VO^2+ )}
\end{document}

编译失败并出现以下错误:Extra }, or forgotten \endgroup. ... Fe^2+ ][\SI{-0.255}{V}] !(blue)( VO^2+ )}。这里发生了什么,我如何siunitx在标签中正确使用语法以下箭?

答案1

一旦你了解了原因,就会明白。记住,chemformula它的输入分为每一个空间!让我们看看不同的输入和chemformula看到的内容:

案例->[\SI{-0.255}{V}][ Fe^2+ ] chemformula解析分为三部分:

  1. ->[\SI{-0.255}{V}][– 这被检测为这意味着除了->用箭头命令替换之外,一切都保持原样
  2. Fe^2+– 这被检测为化学式并如此对待
  3. ]– 这被检测为化学式并如此对待

案例->[ Fe^2+ ][\SI{-0.255}{V}] chemformula解析分为三部分:

  1. ->[– 这被检测为
  2. Fe^2+– 这被检测为化学式
  3. ][\SI{-0.255}{V}]– 这被检测为化学式并受到同等对待;例如,这意味着数字将根据手册中解释的规则转换为下标和上标!因此\SI无法再解析其参数!

案例->[ Fe^2+ ][ "\SI{-0.255}{V}" ] chemformula解析中分为五个部分:

  1. ->[– 这被检测为
  2. Fe^2+– 这被检测为化学式
  3. ][– 这被检测为化学式
  4. "\SI{-0.255}{V}"– 这被检测为转义文本"被剥离,其余部分保持原样
  5. ]– 这被检测为化学式

有一个基本规则:不能干净地检测为特殊输入(文本,化学计量因子,箭头等)的部分始终被视为化学式。

相关内容