为什么microtype会导致auto-pst-pdf运行缓慢?

为什么microtype会导致auto-pst-pdf运行缓慢?

我有一个使用 pdflatex 的构建过程,它一直运行良好(并且相当快),直到我添加了auto-pst-pdf以处理一些 EPS 图形。这样做会导致渲染速度变慢并生成错误消息:

-------------------------------------------------
auto-pst-pdf: Auxiliary LaTeX compilation
-------------------------------------------------
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
entering extended mode

kpathsea: Running mktextfm cmr10+20
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input cmr10+20
This is METAFONT, Version 2.718281 (TeX Live 2011)

kpathsea: Running mktexmf cmr10+20

! I can't find file `cmr10+20'.
<*> ...ljfour; mag:=1; nonstopmode; input cmr10+20

Please type another input file name
! Emergency stop.
<*> ...ljfour; mag:=1; nonstopmode; input cmr10+20

Transcript written on mfput.log.
grep: cmr10+20.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input cmr10+20' failed to make cmr10+20.tfm.
kpathsea: Appending font creation commands to missfont.log.

kpathsea: Running mktextfm cmr10-20
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input cmr10-20
This is METAFONT, Version 2.718281 (TeX Live 2011)

kpathsea: Running mktexmf cmr10-20

! I can't find file `cmr10-20'.
<*> ...ljfour; mag:=1; nonstopmode; input cmr10-20

Please type another input file name
! Emergency stop.
<*> ...ljfour; mag:=1; nonstopmode; input cmr10-20

Transcript written on mfput.log.
grep: cmr10-20.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input cmr10-20' failed to make cmr10-20.tfm.
-------------------------------------------------
auto-pst-pdf: End auxiliary LaTeX compilation
-------------------------------------------------

即使对于使用该类的最小文件article(请参阅 MWE),我也会看到一些这样的消息。对于任何复杂程度的文件,以及使用更复杂的文档类,我都会看到数十条这样的消息,导致渲染时间不可接受,并且在某些情况下,会导致超时和 pdflatex 崩溃。

注释掉此行

\RequirePackage[protrusion=true,expansion,tracking=true,kerning=true,spacing=true]{microtype}

在我的文档类中恢复性能并消除崩溃。

看来,通过关闭expansion可以减轻这些症状,但我不知道为什么。这些错误是什么意思?它们是否意味着我无论如何都没有“真正”获得字体扩展(可能是因为某些字体限制)?microtype和之间是否存在不兼容性auto-pst-pdf?我可以做些什么来恢复性能,同时仍然使用所有功能microtype


\documentclass{article}

\usepackage{auto-pst-pdf}

\RequirePackage[protrusion=true,expansion,tracking=true,kerning=true,spacing=true]{microtype}

\begin{document}

\end{document}

答案1

请按如下方式使用:

\documentclass{article}
\usepackage{auto-pst-pdf}
\ifpdf
  \usepackage[tracking,kerning,spacing]{microtype}
\fi
\begin{document}
foo
\end{document}

答案2

auto-pst-pdf编译的一步生成一个。dvi因此,您必须小心使用仅在两种模式下都有效的选项(dvipdf)或ifpdf根据模式使用不同的选项。

模式相关选项的一个例子是expansion:在dvi输出扩展中通常不可能看到文档microtype

最好的方法是删除protrusionexpansion选项。足够聪明,仅在合理的情况下microtype在-mode 中启用选项。pdf

相关内容