编辑:日志文件的一部分

编辑:日志文件的一部分

我在 Windows 7 Service Pack 1 64 位上运行 XeLaTeX(作为 MikTeX 的一部分分发)。以下测试文件需要很长时间才能编译:

\documentclass{article}
\usepackage{fontspec}
\message{Hello}
\setmainfont{AlegreyaSC-Regular}
\message{How are you?}
\begin{document}
Test
\end{document}

每次我编译它时,屏幕上打印“Hello”和“How are you?”消息之间都要等待 45-50 秒。(Alegreya 是我想在文档中使用的 opentype 字体。我从网站上下载了它。Alegreya-SC Regular 表示该字体的小写非粗体非斜体版本。)

我认为 XeLaTeX 或 fontspec 可能正在尝试在某处写入字体缓存,但由于没有以管理员权限运行而被阻止;因此我尝试以管理员身份运行 XeLaTeX 并手动在文件中输入命令。但是这样做之后,编译仍然很慢。

这个问题从表面上看相似,但提到作者发现使用-no-pdfxelatex 的参数可以使其运行得更快;当我尝试时,这对我来说没有什么区别。

XeLaTeX 的问候:

This is XeTeX, Version 3.14159265-2.6-0.99991 (MiKTeX 2.9 64-bit)

编辑:日志文件的一部分

(C:\LaTeX\tex\latex\fontspec\fontspec.cfg))) Hello
\g__file_internal_ior=\read1
.................................................
. fontspec info: "no-scripts"
. 
. Font AlegreyaSC-Regular does not contain any OpenType `Script' information.
.................................................
\g__fontspec_family_AlegreyaSC-Regular_int=\count120
.................................................
. fontspec info: "defining-font"
. 
. Font family 'AlegreyaSC-Regular(0)' created for font 'AlegreyaSC-Regular'
. with options [Ligatures=TeX].
. 
. This font family consists of the following shapes:
. 
. * 'normal' with NFSS spec.:
. <->"AlegreyaSC-Regular/OT:mapping=tex-text;"
. 
. * 'small caps' with NFSS spec.:
. 
. and font adjustment code:
. 
. 
. * 'bold' with NFSS spec.:
. <->"AlegreyaSC-Regular/B/OT:mapping=tex-text;"
. 
. * 'bold small caps' with NFSS spec.:
. 
. and font adjustment code:
. 
. 
. * 'italic' with NFSS spec.:
. <->"AlegreyaSC-Regular/I/OT:mapping=tex-text;"
. 
. * 'small caps' with NFSS spec.:
. 
. and font adjustment code:
. 
. 
. * 'bold italic' with NFSS spec.:
. <->"AlegreyaSC-Regular/BI/OT:mapping=tex-text;"
. 
. * 'bold small caps' with NFSS spec.:
. 
. and font adjustment code:
. 
.................................................
 How are you? (test.aux)

答案1

诊断“XeTeX 运行缓慢”问题的第一件事是使用 编译文档xelatex -no-pdf,然后xdvipdfmx手动运行生成的.xdv文件。分别计时每个问题将指示是 XeTeX 运行缓慢还是xdvipdfmx

下一步是确定是 XeTeX 还是fontspec出了问题。如果是 XeTeX 导致速度变慢,我会感到惊讶fontspec。(不是因为我非常看重fontspec的效率,而是因为其他人没有报告过如此糟糕的性能。)尝试编译以下示例:

\documentclass{article}
\message{Hello}
\font\x="AlegreyaSC-Regular" at 10pt
\message{How are you?}
\begin{document}
{\x Test}
\end{document}

我的假设是这对你来说也很慢。(如果不是,也许这毕竟是我的错。)

这种加载字体的方法(通过“字体名称”)大概是使用 Windows 的等效方法fc-cache,我对此知之甚少。可能您的系统中安装了许多字体,这会减慢速度。或者存在某些配置错误,导致每次 XeTeX 查询字体时都会强制重建某种数据库。

您可以通过按文件名加载字体来解决此问题:

\setmainfont[Path=...]{AlegreyaSC-Regular.otf}

这将要求您手动选择粗体/斜体形状;例如:

\setmainfont[Path=...,Extension=.otf,
   UprightFont=*-Regular,
   ItalicFont=*-Italic,...]{AlegreyaSC}

相关内容