Tikz 使用 LualateX 进行外部化-Fontspec?

Tikz 使用 LualateX 进行外部化-Fontspec?

已经发布了几个关于使用 Lualatex 引擎外部化 tikz 的问题。但是,其中大多数都是没有正确答案的死胡同。外部化的原因很简单 - 我正在研究一篇包含许多图形的论文,我想减少编译时间。问题是从未使用 lualatex 和 fontspec 创建 tikz 图形的 pdf。

MWE 如下:

\documentclass[12pt,letterpaper,twoside,openany]{scrbook}
\usepackage{fontspec} % For font handling
\usepackage{pgfplots} % For tikz

\pgfplotsset{
compat=1.11, % Version of pgfplots
}

\usetikzlibrary{external}
\tikzset{external/system call={lualatex 
    \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode
    -jobname "\image" "\texsource"}}
\tikzexternalize[shell escape=-enable-write18]

\begin{document}
\mainmatter
A simple image is \tikz \fill (0,0) circle(5pt);.
\end{document}

最终,我将使用 matlab2tikz 生成的 tikz 文件,但这里使用简单的 \tikz 命令也会发生同样的错误。

是的-enable-write18,因为我在 Windows 上使用 Miktex。

当我构建此文件时,会创建 dpth 和 md5 文件,但没有 pdf。如果我将外部/系统调用更改为使用 xelatex 而不是 lualatex,则会正确创建 pdf 文件。

一个奇怪的现象是,如果未加载 fontspec 包(并且删除了之前由 xelatex 创建的 pdf),则 lualatex 会成功创建 pdf。即使在这种简单情况下,我也很难相信 fontspec 实际上会导致问题,但删除它似乎可以解决问题。发生了什么?如何在使用 lualatex 时包含 fontspec 包并仍然外部化 tikz?

相关内容