软件包 mhchem 给出错误

软件包 mhchem 给出错误

我最近尝试使用它,mhchem它对某些命令有效,但对某些命令无效。这是一个示例代码。

\documentclass{article}
\usepackage[version=3]{mhchem}
\begin{document}
  \ce{X-X}
  \ce{C\bond{~-}C}
\end{document}

给我

! Undefined control sequence.
\mhchem@bond #1->\ifnum \pdf@strcmp 
                                    {#1}{-}=0\sbond \else \ifnum \pdf@strcmp...
l.7   \ce{C\bond{~-}C}

我按照mhchem手册操作,似乎找不到错误。我于 2015 年 2 月 8 日安装了此软件包,因此我应该运行最新版本。对此有什么想法吗?

答案1

这是 中的一个错误mhchem,它没有明确定义命令\pdf@strcmp或加载包(pdftexcmds在定义的地方),而是依靠驱动程序代码(graphics.cfg)来加载它。

使用 MiKTeX 与 pdfLaTeX 或 XeTeX(不是 LuaLateX)时可以看到此错误。使用 TeX Live 时,可以注意到使用 XeTeX 进行编译。

作为一种解决方法,加载此包就足够了

\usepackage{pdftexcmds}

平均能量损失

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

\usepackage{pdftexcmds}    

\begin{document}
  \ce{X-X}
  \ce{C\bond{~-}C}
\end{document} 

输出

在此处输入图片描述

答案2

对于 2015 dvd 的本地 texlive 安装,上述方法均不适用于我。从线,我了解到这是 mhchem 的一个 bug。

@Joseph 啊,对不起,mhchem似乎是这个导致了它,而不是siunitx,但是,在我看来,它看起来像是某种 L3 不兼容——我当然没有定义\c_backslash_str自己……好的,放在\RequirePackage{mhchem}前面\documentclass似乎已经解决了它。

\RequirePackage{mhchem}我按照之前的说明进行添加\documentclass,现在问题已解决。

相关内容