使用 Tikz Externalize 进行编译时出错

使用 Tikz Externalize 进行编译时出错

我已经编辑了这篇文章,因为我已经将问题分解为比论文更小的内容。我可以在 cmd 窗口中运行以下命令:

lualatex file.tex

使用以下脚本没有问题:

\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8} 
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{float}
\usepackage[hang,small,bf]{caption}
\usepackage{color}

%\usetikzlibrary{external}
%\tikzexternalize

\begin{document}
The golden-crowned sifaka is a medium-sized lemur characterized by mostly white fur, prominent furry ears and a golden-orange crown. 

\begin{figure}
    \input{sdof.tex}
    \caption{This is the caption}
\end{figure}

\begin{figure}
    \input{strain.tikz}
    \caption{This is the caption}
\end{figure}

\end{document}

但当我取消注释

\usetikzlibrary{external}
\tikzexternalize

行并使用以下内容:

lualatex --shell-escape -interaction=nonstopmode file.tex

它将第一个图编译成 file-figure0.pdf 没有任何问题,但是当编译到第二个图时,就出现了问题,并给出了一个致命错误

sdof.tex 是我在 inkscape 中自己绘制的简单图表,第二个 strain.tikz 是 matlab2tikz 输出的来自测试的大量数据点。

答案1

正如@JuriRobl所说,问题在于外部化使用的是pdflatex,而不是文档最初编译时使用的lualatex。

通过在文档序言中添加以下几行来改变这一点

\usetikzlibrary{external}
\tikzset{external/system call={lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
\tikzexternalize

相关内容