XeLaTeX 使用 fontspec 包编译失败(“未定义的控制序列。l.27 \sys_if_engine_luatex:T”

XeLaTeX 使用 fontspec 包编译失败(“未定义的控制序列。l.27 \sys_if_engine_luatex:T”

在我更新了所有软件包、从旧的 MiKTeX 2.9 升级到最新版本并刷新文件名数据库 (FNDB) 后,我的tex文件无法再编译。我发现问题出在fontspec更新所有内容之前运行良好的软件包上。运行时,编译首先在以下几行停止:

Package: fontspec 2019/03/15 v2.7c Font selection for XeLaTeX and LuaLaTeX
! Undefined control sequence.
l.27 \sys_if_engine_luatex:T

如果我强制运行,我会得到几个其他错误,这些错误出现在下面的日志文件中。该过程不会生成任何 PDF 文件。

我尝试卸载(并删除所有剩余文件),然后重新安装我的 MiKTeX 发行版几次,分别使用 64 位和 32 位版本,以防我做错了,但这并没有解决我的问题。

我还检查了其他包,因为链接到的包LaTeX2ε似乎LaTeX3这个话题但安装、卸载并重新安装软件包对编译没有影响。l3kernell3packages临时解决方案从 2013 年开始也没有影响。

经过多次测试,我还发现其他软件包似乎也受到了我的问题的影响:(polyglossia因为它部分依赖于该fontspec软件包)、该manyfoot软件包和该perpage软件包。对于 manyfoot 和 perpage 软件包,我不确定它是否与 fontspec 软件包有关,尽管它在更新之前也运行良好。在我看来,核心问题出在该fontspec软件包上。

我知道如何解决该问题吗?

我正在使用MiKTeX 2.9.7050(32位Texmaker 5.0.3Windows 10这是麦当劳

\documentclass[10pt,a4paper]{article}
\usepackage{fontspec}
\begin{document}
Hello world!
\end{document}

这是log出现第一个错误之前的文件(我可能不会将整个日志文件发布到论坛,因为它看起来像垃圾邮件):

\c__fp_Bigg_trailing_shift_int=\count110
L3 Module: l3box 2014/08/23 v5354 L3 Experimental boxes
\c_empty_box=\box27
\l_tmpa_box=\box28
\l_tmpb_box=\box29
\g_tmpa_box=\box30
\g_tmpb_box=\box31
L3 Module: l3coffins 2014/08/23 v5354 L3 Coffin code layer
\l__coffin_internal_box=\box32
\l__coffin_internal_dim=\dimen109
\l__coffin_offset_x_dim=\dimen110
\l__coffin_offset_y_dim=\dimen111
\l__coffin_x_dim=\dimen112
\l__coffin_y_dim=\dimen113
\l__coffin_x_prime_dim=\dimen114
\l__coffin_y_prime_dim=\dimen115
\c_empty_coffin=\box33
\l__coffin_aligned_coffin=\box34
\l__coffin_aligned_internal_coffin=\box35
\l_tmpa_coffin=\box36
\l_tmpb_coffin=\box37
\l__coffin_display_coffin=\box38
\l__coffin_display_coord_coffin=\box39
\l__coffin_display_pole_coffin=\box40
\l__coffin_display_offset_dim=\dimen116
\l__coffin_display_x_dim=\dimen117
\l__coffin_display_y_dim=\dimen118
L3 Module: l3color 2014/08/23 v5354 L3 Experimental color support
L3 Module: l3candidates 2014/11/23 v5466 L3 Experimental additions to l3kernel
\l__box_top_dim=\dimen119
\l__box_bottom_dim=\dimen120
\l__box_left_dim=\dimen121
\l__box_right_dim=\dimen122
\l__box_top_new_dim=\dimen123
\l__box_bottom_new_dim=\dimen124
\l__box_left_new_dim=\dimen125
\l__box_right_new_dim=\dimen126
\l__box_internal_box=\box41
\l__coffin_bounding_shift_dim=\dimen127
\l__coffin_left_corner_dim=\dimen128
\l__coffin_right_corner_dim=\dimen129
\l__coffin_bottom_corner_dim=\dimen130
\l__coffin_top_corner_dim=\dimen131
\l__coffin_scaled_total_height_dim=\dimen132
\l__coffin_scaled_width_dim=\dimen133
)
(C:\Users\Erizo\AppData\Roaming\MiKTeX\2.9\tex/latex/l3kernel\l3unicode-data.de
f
File: l3unicode-data.def 2014/11/23 v5465 L3 Unicode data
)
(C:\Users\Erizo\AppData\Roaming\MiKTeX\2.9\tex/latex/l3kernel\l3xdvipdfmx.def
File: l3xdvidpfmx.def 2014/11/23 v5466 L3 Experimental driver: xdvipdfmx
))
Package: xparse 2014/11/25 v5471 L3 Experimental document command parser
\l__xparse_current_arg_int=\count111
\l__xparse_m_args_int=\count112
\l__xparse_mandatory_args_int=\count113
\l__xparse_processor_int=\count114
\l__xparse_v_nesting_int=\count115
)
Package: fontspec 2019/03/15 v2.7c Font selection for XeLaTeX and LuaLaTeX

! Undefined control sequence.
l.27 \sys_if_engine_luatex:T

答案1

最后,我发现您更新了 MiKTeX 的一个非常旧的版本,而 MiKTeX 主页上已经提到过这个版本可能会导致错误。

就你的情况而言,你的 MiKTeX 系统似乎已损坏,我建议将其完全卸载(TeXmaker 也一样),然后从主页下载当前的完整安装程序并安装新程序。为什么在 64 位系统上使用 32 位软件(MiKTeX)?最好使用 64 位版本的 MiKTeX:转到https://miktex.org/download,单击all downloads并选择net installer 64bit。安装 MiKTeX 后也安装当前的 TeXMaker(然后它应该识别新的 MiKTeX 并能够调用和使用它)。

使用以下 mwe(请参阅添加的命令\listfiles以获取日志文件中所有使用的软件包和版本号的列表)

% xelatex
\listfiles
\documentclass[10pt,a4paper]{article}

\usepackage{fontspec}

\begin{document}
Hello world!
\end{document}

我可以使用我当前的 MIkTeX 进行编译,XeTeX, Version 3.14159265-2.6-0.999991 (MiKTeX 2.9.7050 64-bit) (preloaded format=xelatex 2019.2.5)没有任何错误或警告,并获取以下使用的包列表:

 *File List*
 article.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2018/09/03 v1.4i Standard LaTeX file (size option)
fontspec.sty    2019/03/15 v2.7c Font selection for XeLaTeX and LuaLaTeX
  xparse.sty    2019-05-28 L3 Experimental document command parser
   expl3.sty    2019-07-01 L3 programming layer (loader) 
expl3-code.tex    2019-07-01 L3 programming layer 
l3backend-xdvipdfmx.def    2019-04-06 v L3 Experimental backend support: xdvipdfmx
fontspec-xetex.sty    2019/03/15 v2.7c Font selection for XeLaTeX and LuaLaTeX
 fontenc.sty
   tuenc.def    2018/08/11 v2.0j Standard LaTeX file
fontspec.cfg
 ***********

正如您所见,您使用的版本expl3.sty太旧了。

我猜你以管理员身份对 MiKTEX 系统做了一些更改,以用户身份做了一些更改,这导致了你的问题。

相关内容