这是我的 MWE(它实际上是 M,因为内容不太相关):
% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\end{document}
自从我迁移到 TeX Live 2016(我相当确定这种行为就是从那时开始的)以来,该文档需要大约十分钟才能处理。
我相信这是因为 XeLaTeX 正在重建字体缓存每次运行时。
在此之前,偶尔....TeX 运行会暂停以重建缓存,但此后,任何文档的进一步运行都会很快进行。
我在 LuaLaTeX 中没有看到这种行为。
这是 TeX 日志文件的一部分。我在发生暂停的确切位置(据我所知)插入了三个感叹号(!!!):
Package: fontspec 2016/02/01 v2.5a Font selection for XeLaTeX and LuaLaTeX
(d:/Programs/TeX.Live/texmf-dist/tex/latex/fontspec/fontspec-xetex.sty
Package: fontspec-xetex 2016/02/01 v2.5a Font selection for XeLaTeX and LuaLaTe
X
... (fontspec macro dump)
(d:/Programs/TeX.Live/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2016/06/19 v1.99m Standard LaTeX package
(d:/Programs/TeX.Live/texmf-dist/tex/latex/euenc/eu1enc.def
File: eu1enc.def 2010/05/27 v0.1h Experimental Unicode font encodings
)
LaTeX Font Info: Try loading font information for EU1+lmr on input line 105.
(d:/Programs/TeX.Live/texmf-dist/tex/latex/euenc/eu1lmr.fd
File: eu1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
)!!!) <=== Here, at some point in fontenc.sty
(d:/Programs/TeX.Live/texmf-dist/tex/xelatex/xunicode/xunicode.sty
File: xunicode.sty 2011/09/09 v0.981 provides access to latin accents and many
请问有什么想法吗?
答案1
通过实验,我发现重命名,
cachefile.NEW --> cachefile
如果从 XeTeX 二进制文件执行,即使在用户可写目录中,也几乎总是会失败。因此,如果您发现时间延迟,请运行
fc-cache -v
如果消息
invalid cache file: ...
显示,运行
fc-cache -v
再次。这似乎就是解决方案,正如 Ulrike 所说。
答案2
我非常感谢大家的建议。我实际上是这样修复的:我删除了
(TeXLiveRoot)/texmf-var/fonts/cache
(除readme.txt
),然后再次尝试。
在第一次运行时(当然?)XeTeX 重建了缓存;此后它正常运行。