我在 Windows 10 Pro 上使用 MiKTeX (Console) 2.9.6673。请考虑以下最小不工作示例。
\documentclass{article}
\usepackage{mhchem}
\begin{document}
\ce{H2O}
\end{document}
文档主体除了 之外什么都没有\ce{}
,并且无法编译,抛出大量错误。我不明白问题所在。我拥有所有必需的包(mhchem、chemgreek、l3kernel、l3packages)。一些错误:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! LaTeX error: "kernel/command-not-defined"
!
! Control sequence \regex_match:NnTF undefined.
!
! See the LaTeX3 documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.53 ...nerate_variant:Nn \regex_match:NnTF { NV }
|'''''''''''''''''''''''''''''''''''''''''''''''
| This is a coding error.
|
| LaTeX has been asked to use a control sequence '\regex_match:NnTF':
| this has not been defined yet.
|...............................................
这里这是完整日志(第一个错误在第 375 行)。它们似乎都包含与正则表达式相关的内容。我该怎么做才能解决这个问题?
答案1
似乎放置\usepackage{l3regex}
前 \usepackage{mhchem}
解决了问题。我不确定为什么l3regex
默认情况下不包含它,mhchem
如果它使用前者,在重新安装 MiKTeX 之前我没有遇到这个问题。
答案2
您没有expl3
安装当前软件包,因此缺少该l3regex
功能。
您可以尝试使用\usepackage{l3regex}
,但这不是一个好的解决方案。在我的输出中,这会写入
** 软件包 l3regex 已过时并已被删除!
**
** 其功能现在仅作为 expl3 软件包的一部分提供。
**
** 旧软件包将于 2018 年底全部删除。
** ** 因此,请 尽快在您的文档中将
“\usepackage{l3regex}”** 替换为“\usepackage{expl3}”。
答案3
添加\RequirePackage{l3regex}
解决mhchem.sty
了这个问题。如果您不能\usepackage{l3regex}
在 之前放置 ,这将很有用\usepackage{mhchem}
。例如在 LyX 中,如果 LyX 在您插入化学式时自动加载包。