XeTeX 字体缓存有问题吗?

XeTeX 字体缓存有问题吗?

这是我的 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 重建了缓存;此后它正常运行。

相关内容