在 mhchem 中排版过渡金属簇?

在 mhchem 中排版过渡金属簇?

我想使用mhchem\ce命令来排版过渡金属簇。如果我使用\ce{[Ru(cod)($2\text{-}$methylallyl)2]},我会得到正确的输出,但这很不合理。我尝试过使用 ,\ce{[Ru(cod)(2-methylallyl)2]}但这错误地将第一个设置2为下标。处理这个问题的正确方法是什么?

\documentclass{article}
\usepackage{mhchem}
\begin{document}
  Compare \ce{[Ru(cod)($2\text{-}$methylallyl)2]} with \ce{[Ru(cod)(2-methylallyl)2]}.
\end{document}

答案1

这是个好问题!mhchem的手册没有提到逃避其公式解析,这不仅将设置2为下标,而且还将破折号(-)转换为单键。

它确实隐含地提到了一种方法:使用$...$。因此,通常的预防方法是mhchem。因此,阻止解析的IE$...$,在 内使用\ce{}。因此,您的 hack 并不是真正的 hack,而是在许多情况下可行的方法。不过,不幸的是,要退出数学模式,然后再次返回文本模式\text{}。在像您这样的情况下, an\mbox{}可能更好,或者至少更容易和更少地输入:

\ce{[Ru(cod)(\mbox{2-}methylallyl)2]}

另一种方法是省略$...$并使用\text{}mhchem的公式都已处于数学模式!文档没有宣传这一点(有时会导致意外错误)。

\ce{[Ru(cod)(\text{2-methylallyl})2]}

实际上,还有另一种隐式的方法可以防止将数字设置为下标:mhchem通过在数字前留一个空白来假装它是一个化学计量因子:

\ce{[Ru(cod)( 2-methylallyl)2]}

然而,这将导致不必要的空间破折号!这是mhchem在计量因子后插入的空格,可以通过设置 来验证\mhchemoptions{skip-after-amount=}。由于-不是字母(即它没有 catcode 11),因此它被解释为计量因子的一部分。

不同情况的比较:

在此处输入图片描述

\documentclass{article}
\usepackage{mhchem}

\begin{document}

\begin{tabular}{ll}
 \verb!\ce{[Ru(cod)(2-methylallyl)2]}! & \ce{[Ru(cod)(2-methylallyl)2]} \\
 \verb!\ce{[Ru(cod)($2\text{-}$methylallyl)2]}! & \ce{[Ru(cod)($2\text{-}$methylallyl)2]} \\
 \verb!\ce{[Ru(cod)( 2-methylallyl)2]}! & \ce{[Ru(cod)( 2-methylallyl)2]} \\
 \verb!\mhchemoptions{skip-after-amount=}!: \\
 \verb!\ce{[Ru(cod)( 2-methylallyl)2]}! & \mhchemoptions{skip-after-amount=}\ce{[Ru(cod)( 2-methylallyl)2]} \\
 \verb!\catcode`\-=11!: \\
 \verb!\ce{[Ru(cod)( 2-methylallyl)2]}! & \catcode`\-=11 \ce{[Ru(cod)( 2-methylallyl)2]} \\
 \verb!\ce{[Ru(cod)(\mbox{2-}methylallyl)2]}! & \ce{[Ru(cod)(\mbox{2-}methylallyl)2]} \\
 \verb!\ce{[Ru(cod)(\text{2-methylallyl})2]}! & \ce{[Ru(cod)(\text{2-methylallyl})2]}
\end{tabular}

\end{document}

编辑 2017/05/30

当前版本不存在该问题mhchem

\documentclass{article}
\usepackage[version=4]{mhchem}

\begin{document}

\verb!\ce{[Ru(cod)(2-methylallyl)2]}! \ce{[Ru(cod)(2-methylallyl)2]}

\end{document}

在此处输入图片描述

答案2

使用 mhchem v4.00,您可以编写

\documentclass{article}
\usepackage[version=4]{mhchem}
\begin{document}
  \ce{[Ru(cod)(2-methylallyl)2]}
\end{document}

在此处输入图片描述

相关内容