![使用 chemmacros 包的反应环境对化学反应进行注释排版](https://linux22.com/image/425808/%E4%BD%BF%E7%94%A8%20chemmacros%20%E5%8C%85%E7%9A%84%E5%8F%8D%E5%BA%94%E7%8E%AF%E5%A2%83%E5%AF%B9%E5%8C%96%E5%AD%A6%E5%8F%8D%E5%BA%94%E8%BF%9B%E8%A1%8C%E6%B3%A8%E9%87%8A%E6%8E%92%E7%89%88.png)
我正在使用的reactions
环境chemmacros
包来排版一些化学反应。我想用文字注释每个反应。这是我的 MWE:
\documentclass[oneside,11pt]{book}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage{mathtools}
\usepackage{chemmacros}
\usechemmodule{reactions}
\begin{document}
\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface}&{\footnotesize\text{surface adsorption}}\\
MnO2 + Na+ + e- &<=> (MnOONa)&{\footnotesize\text{intercalation/deintercalation}}
\end{reactions}
\end{document}
为什么“表面”和“吸附”之间没有空间,我该如何解决这个问题?
答案1
的用户chemmacros
一次又一次地问到这个问题,但这不是chemmacros
它的问题。这是\ch
由包定义的宏chemformula
。该宏在每个空格处拆分其内容,然后检查剩余部分是否是公式、化学计量因子或……有关详细信息,请参阅chemformula
的手册。
这里的解决方案是使用~
空格:
\documentclass{article}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage{chemmacros}
\usechemmodule{reactions}
\begin{document}
\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface} && \footnotesize surface~adsorption \\
MnO2 + Na+ + e- &<=> (MnOONa) && \footnotesize intercalation/deintercalation
\end{reactions}
\end{document}
顺便说一句:您不必使用chemformula
with chemmacros
。您也可以使用mhchem
,例如:
\documentclass{article}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage{chemmacros}
\usechemmodule{reactions}
\chemsetup{formula=mhchem}
\begin{document}
\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface} && \text{\footnotesize surface adsorption} \\
MnO2 + Na+ + e- &<=> (MnOONa) && \text{\footnotesize intercalation/deintercalation}
\end{reactions}
\end{document}
答案2
可能该软件包不支持文本模式。我稍微修改了你的代码,但设置几乎相同。我放了一个空格\,
来分隔两个单词,这样就可以了。
\documentclass[oneside,11pt]{book}
\usepackage[semibold,tt=false]{libertine}
\usepackage{libertinust1math}
\usepackage[font={sf,small},labelsep=quad,labelfont=sc]{caption}
\usepackage{mathtools}
\usepackage{chemmacros}
\usechemmodule{reactions}
\begin{document}
\begin{reactions}
(MnO2)_{surface} + Na+ + e- &<=> (MnOONa)_{surface}&{\scriptsize\textup{surface\, adsorption}}\\
MnO2 + Na+ + e- &<=> (MnOONa)&{\scriptsize\text{intercalation/deintercalation}}
\end{reactions}
\end{document}