![Minted 运行缓慢是正常的吗?](https://linux22.com/image/444514/Minted%20%E8%BF%90%E8%A1%8C%E7%BC%93%E6%85%A2%E6%98%AF%E6%AD%A3%E5%B8%B8%E7%9A%84%E5%90%97%EF%BC%9F.png)
我刚刚安装了 minted,但是简单的命令:
latexmk -pdf -shell-escape main.tex
main.tex 简单来说就是:
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{r}
sprem <- choose(13, 2)
\end{minted}
\end{document}
大约需要 5 秒钟。有什么办法可以加快速度吗?
答案1
Minted 本身运行速度确实很慢,至少部分原因是它运行的外部程序,尤其是 pygmentize。但 latexmk 有时会多运行一次 pdflatex,从而使问题更加严重,就像本文档一样。对于简单文档,pdflatex 的额外运行是因为在第一次运行后,minted 将缓存信息放入 .aux 文件中。Latexmk 看到了更改的 .aux 文件,但不知道这些更改对 .pdf 文件的内容没有影响。请参阅下文了解如何培训 latexmk。
在我的(相当旧的)iMac 上,安装了 macOS 和 TeXLive 2021,使用 latexmk 的处理时间约为 3.5 秒。两次运行 pdflatex 分别需要 1.7 秒和 1.4 秒,而 latexmk 的开销为 0.4 秒。但对于实际的较大文档,这些时间不会延长到天文数字;例如,使用 latexmk 处理铸造文档(91 页)大约需要 23 秒。
为了解决 pdflatex 额外运行的问题,请将以下内容放入 latexmkrc 文件中:
$hash_calc_ignore_pattern{aux} = 'minted@oldcachelist|default\.pygstyle|\.pygtex';
这告诉 latexmk,当它检查 .aux 文件中的更改时,它将忽略 minted 写入其缓存信息的行。(专家可以改进上述正则表达式,但它会更长且更难理解。)