我正在使用该chemmacros
软件包格式化氧化还原反应,使用其氧化还原模块来获得指示哪些原子正在改变氧化状态的漂亮箭头,如软件包手册中所示。我正在尝试做一些手册中说是非标准且可能不起作用的事情,即使用该mhchem
软件包格式化反应。尽管如此,它在一个简单的实例中有效,但在其他实例中无效,我很感激任何让它更好地工作的技巧。
看起来,如果你用命令画出 a 和 b 在同一化合物中的chemmacros
箭头,它工作得很好。但如果 a 和 b 在反应中的不同化合物中(两个化学式由 + 或箭头隔开) ,那么箭头就不知道从哪里开始。\redox(a,b)
\ce{ a + b -> c + d}
chemmacros
这是一个例子。
\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage{chemmacros}
\usechemmodule{redox}
\begin{document}
\ce{\OX{a,Pt}(CH2CH=CH\OX{b,C}(CH2)2) + \OX{c,Fe} + \OX{d,Zn}}\redox(a,b)[draw=red,->]{\small oxidation}
%that above command produces good output
\bigskip
\ce{\OX{a,Pt}(CH2CH=CH\OX{b,C}(CH2)2) + \OX{c,Fe} + \OX{d,Zn}}\redox(a,c)[draw=red,->]{\small oxidation}
%that above command produces bad output
\end{document}
答案1
如果你将其放置\ce
在里面\OX
而不是反过来,它就会起作用:
\documentclass{article}
\usepackage{chemmacros}
\chemsetup{
formula = mhchem ,
modules = redox
}
\begin{document}
\OX{a,\ce{Pt}}\ce{(CH2CH=CH\OX{b,C}(CH2)2) + }\OX{c,\ce{Fe}}\ce{ +}\OX{d,\ce{Zn}}
\redox(a,c)[draw=red,->]{\small oxidation}
\end{document}
chemformula
这是“自然”支持包更易于使用的情况之一:
\documentclass{article}
\usepackage{chemmacros}
\chemsetup{
formula = chemformula ,
modules = redox
}
\begin{document}
\ch{"\OX{a,Pt}" (CH2CH=CH\OX{b,C}(CH2)2) + "\OX{c,Fe}" + "\OX{d,Zn}"}
\redox(a,c)[draw=red,->]{\small oxidation}
\end{document}