我在 Windows 7 上使用带有 MiKTeX 的 TexStudio 2.5.1。以下简短的 .tex 文件将导致 xelatex 挂起:
\documentclass[12pt]{article}
\usepackage{fontspec}
\begin{document}
Test
\end{document}
使用此命令进行编译:
xelatex.exe -synctex=1 -interaction=nonstopmode "test".tex
我说的“挂起”是指 xelatex 进程将占用整个核心和 200 多 MB 的内存,并且几分钟后仍无法完成。我没有收到任何错误消息,因为该进程从未完成。
如果我注释掉 fontspec 行,它就不会挂起。但我想在我的文档中使用 fontspec 包。它为什么会挂起?我该如何修复它?
附注:使用 lualatex 而不是 xelatex 将会成功,但使用\setmainfont{Georgia}
也会使其挂起。
答案1
fontspec
使用字体缓存系统。此缓存需要先创建,然后定期更新。创建或更新时,会显示有关 TeX 发行版中安装的所有 TrueType 和 OpenType 字体的一些信息在你的操作系统中被收集。
(关于收集和更新背后的算法,频率或某种触发器等,需要专家来回答。)
xelatex
根据您安装的字体数量,这些操作需要一些时间,当然,尤其是在第一次运行时。这就是您在和中观察到挂起的原因lualatex
。