我想在 tikzpicture 中使用 gnuplot,但当我使用 lualatex 进行编译时,这似乎不起作用。我使用 tikz 手册中的以下示例:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot[id=x] function{x} node[right] {$f(x) =x$};
\draw[color=blue] plot[id=sin] function{sin(x)} node[right] {$f(x) = \sin x$};
\draw[color=orange] plot[id=exp] function{0.05*exp(x)} node[right] {$f(x) = \frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
\end{document}
如果我使用以下代码编译此 .tex 文件
pdflatex --shell-escape tikz.tex
一切正常。
但是,如果我使用与 lualatex 完全相同的命令而不是 pdflatex,我的日志文件会显示
gnuplot tikz.x.gnuplot
Package pgf Warning: Plot data file `tikz.x.table' not found. on input line 16.
gnuplot tikz.sin.gnuplot
Package pgf Warning: Plot data file `tikz.sin.table' not found. on input line 1
7.
有人知道这里的问题是什么吗?提前致谢。
答案1
\write18
对于较新的 luatex,shell escape 默认不起作用,shellesc
包会将其放回去,这对我来说有效:
\RequirePackage{luatex85,shellesc}
\documentclass{article}
\usepackage{tikz}
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot[id=x] function{x} node[right] {$f(x) =x$};
\draw[color=blue] plot[id=sin] function{sin(x)} node[right] {$f(x) = \sin x$};
\draw[color=orange] plot[id=exp] function{0.05*exp(x)} node[right] {$f(x) = \frac{1}{20} \mathrm e^x$};
\end{tikzpicture}
\end{document}