在我更新了所有软件包、从旧的 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
在这个话题但安装、卸载并重新安装软件包对编译没有影响。l3kernel
这l3packages
临时解决方案从 2013 年开始也没有影响。
经过多次测试,我还发现其他软件包似乎也受到了我的问题的影响:(polyglossia
因为它部分依赖于该fontspec
软件包)、该manyfoot
软件包和该perpage
软件包。对于 manyfoot 和 perpage 软件包,我不确定它是否与 fontspec 软件包有关,尽管它在更新之前也运行良好。在我看来,核心问题出在该fontspec
软件包上。
我知道如何解决该问题吗?
我正在使用MiKTeX 2.9.7050
(32位Texmaker 5.0.3
)Windows 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 系统做了一些更改,以用户身份做了一些更改,这导致了你的问题。