使用 xelatex 和 fontspec 进行预编译

使用 xelatex 和 fontspec 进行预编译

我正在尝试使用 xelatex 进行预编译,以便后续编译可以快速完成。这是 MWE。这是我将编译以产生所需输出的文件。

%&myone
%xelatex -ini -jobname="one" "&xelatex" mylatexformat.ltx myone.tex
\begin{document}
Hello World!
\end{document}

这是 myone.tex:

%xelatex -ini -jobname="myone" "&xelatex" mylatexformat.ltx myone.tex
\documentclass{article}
\begin{document}
\end{document}

当我发出:

xelatex -ini -jobname="myone" "&xelatex" mylatexformat.ltx myone.tex

它会产生一个错误:

! Can't \dump a format with native fonts or font-mappings.

我如何进行预编译?

答案1

xelatex加载 OpenType 字体后无法转储格式。默认情况下,xelatex 使用 TU(Unicode)编码作为初始默认值,因此当类确实使用\normalfontOpenType latin modern 时,转储被禁用。

这会将默认设置恢复为经典的 7 位 TeX 编码,然后在 initex 运行期间将使用 tfm latin modern,并在\everyjob

\def\encodingdefault{OT1}\normalfont
\everyjob\expandafter{\the\everyjob\def\encodingdefault{TU}\normalfont}
\documentclass{article}
\begin{document}
\end{document}

带有日志

.....
Beginning to dump on file myone.fmt
 (preloaded format=myone 2017.10.14)
...

相关内容