我最近尝试使用它,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
,现在问题已解决。