我正在尝试以编程方式转换大量包含数学方程式中表示的化合物的文档。我正在从某种 RUNOFF 转换而来(我认为..它没有很好的文档记录)。我在显示方程式内外的化合物时遇到了一些相关问题。mhchem 包很棒,直到我遇到化合物公式中的小数值(如下所示)。我需要的是让化合物以正常(非斜体)类型显示。下面正文中有四行说明了我的问题。第一行导致化合物被斜体化。第二行说明了相关问题,即括号中的部分被斜体化。第三行是该\ce
命令处理小数点的方式。第四行显示了使用该\ce
命令的解决方法。第三行和第四行还导致方程式编号与方程式齐平而不是在右边距之上 - 为什么?
\documentclass{article}
\usepackage{ulem}
\usepackage{fixltx2e}
\usepackage[version=3]{mhchem}
\usepackage[utf8]{inputenc}
\usepackage{textcomp}
\begin{document}
\begin{equation} X_{Li_{2}(SO_{4})_{0.5}} \end{equation}
Li_{2}(SO_{4})_{0.5}
\begin{equation} X_{\ce{Li2(SO4)0.5} \end{equation}
\begin{equation} X_{\ce{Li2(SO4)_{0.5}} \end{equation}
\end{document}
我已经开始研究是否可以使用 Lua 或修改mhchem.sty
。我还尝试在方程中使用\text{}
、等,但显然我还没有正确完成。我对此没有太多经验,希望有比我更有经验的人可以提出一些建议。\textnormal{}
LaTeX
谢谢你的帮助!!
答案1
您的代码目前无法运行:第二行不在数学模式或内部,\ce
因此_
必须发出错误。
Li_{2}(SO_{4})_{0.5}
第三、四行中各组不平衡,但缺少一个}
。更正后:
\begin{equation} X_{\ce{Li2(SO4)0.5}} \end{equation}
\begin{equation} X_{\ce{Li2(SO4)_{0.5}}} \end{equation}
第三种行为是记录在案的mhchem
行为,以显示加合物,因此第四种行为不是一种解决方法,而是一种可行的方法。
\documentclass{article}
\usepackage[version=3]{mhchem}
\begin{document}
\ce{Li2(SO4)_{0.5}}
Adduct: \ce{Na2SO4.10H2O}
\begin{equation}
X_{\ce{Li2(SO4)_{0.5}}}
\end{equation}
\end{document}
或者也可以使用(我自己的)chemformula
:
\documentclass{article}
\usepackage{chemformula}
\begin{document}
\ch{Li2(SO4)_{0.5}}
Adduct: \ch{Na2SO4 * 10 H2O}
\begin{equation}
X_{\ch{Li2(SO4)_{0.5}}}
\end{equation}
\end{document}
答案2
例如:
\ce{$3.043$ Fe2O3}
只需使用数学转义模式,使用$$
来包含数字。 和数字之间不应该有任何空格,$
否则编译会出错,尽管在普通方程式中情况并非如此。