我正在尝试使用 lualatex 外部化 tikz 图,同时使用 pdflatex 封装整个 tex 文件。我仍然无法弄清楚为什么这种方法不起作用。我正在使用 miktex 和 texstudio。通过以下方式调用 pdflatex:
pdflatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex
其中 texstudio 将 % 替换为要处理的文件名。
我有下面给出的 matlab 图,它已转换为 tikz。我们将其称为 myfile.tikz:
\begin{tikzpicture}
\begin{axis}[%
width=\figurewidth,
height=\figureheight,
scale only axis,
xmin=1,
xmax=3,
ymin=1,
ymax=6,
name=plot
]
\addplot [
color=blue,
solid
]
table[row sep=crcr]{
1 2\\
2 4\\
3 6\\
};
\end{axis}
\end{tikzpicture}%
使用 tikz 的最小示例是:
\documentclass{article}
\usepackage{pgfplots} % to use tikz graphics as given in http://www.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\newlength\figureheight
\newlength\figurewidth
\usetikzlibrary{external}
\tikzexternalize[prefix=tikz/,shell escape=-enable-write18]
\tikzset{external/system call={lualatex \tikzexternalcheckshellescape -halt-on-error -interaction=batchmode -jobname "\image" "\texsource"}}
\begin{document}
\begin{figure}
\centering
\setlength\figureheight{4.00cm}
\setlength\figurewidth{6.00cm}
\input{myfile.tikz}
\end{figure}
\end{document}
我收到以下错误:
! Package tikz Error: Sorry, the system call 'lualatex -enable-write18 -halt-on
-error -interaction=batchmode -jobname "tikz/example-figure0" "\def\tikzexterna
lrealjob{example}\input{example}"' did NOT result in a usable output file 'tikz
/example-figure0' (expected one of .pdf:.jpg:.jpeg:.png:). Please verify that y
ou have enabled system calls. For pdflatex, this is 'pdflatex -shell-escape'. S
ometimes it is also named 'write 18' or something like that. Or maybe the comma
nd simply failed? Error messages can be found in 'tikz/example-figure0.log'. If
you continue now, I'll try to typeset the picture.
答案1
这对我有用
\tikzset{external/system call={lualatex
\tikzexternalcheckshellescape -halt-on-error -interaction=batchmode
-jobname "\image" "\texsource"}}
我唯一要做的另一件事是在我的 pdflatex 调用中启用 write18,以便 pdflatex 可以调用 lualatex。处理大数据时也能正常工作,但速度非常慢。
此外,如果情节中有错误,您必须检查单独的日志文件。我的编辑器 (TexnicCenter) 不够智能,无法跳转到该日志文件,因此我必须转到情节所在的文件夹,打开日志并检查出了什么问题……