以下代码来自“手册中的示例库 - PGFPlots”。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
title={$x \exp(-x^2-y^2)$},
domain=-2:2,enlarge x limits,
view={0}{90},
]
\addplot3[contour gnuplot={number=14},thick]
{exp(0-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}
\end{document}
不幸的是,代码不起作用,我收到以下错误消息:
! Package pgfplots Error: sorry, plot file{example_175_contourtmp0.table} could
not be opened.
See the pgfplots package documentation for explanation.
Type H <return> for immediate help.
...
l.17 {exp(0-x^2-y^2)*x};
?
! Emergency stop.
...
l.17 {exp(0-x^2-y^2)*x};
End of file on the terminal!
我不知道问题出在哪里。如果有人能提供解决方案就太好了。
答案1
将该代码复制/粘贴到分享LaTeX,编译时没有错误,并生成:
你用的是什么版本?顺便提一下,compat=newest
一般不推荐。
编辑:
我能够通过仅使用 进行编译来重现您的问题pdflatex filename
。由于 LaTeX 需要运行 gnuplot,因此您必须允许 LaTeX 启动第三方可执行文件。为此,您需要一个类似 的参数--shell-escape
。如果您使用 编译示例,它会起作用吗pdflatex --shell-escape filename
?
编辑2:
如果您有文件contours_contourtmp0.script
和contours_contourtmp0.dat
但没有contours_contourtmp0.table
,那么很可能 LaTeX 无法执行 gnuplot。您可以使用的存在来contours_contourtmp0.table
确认 gnuplot 是否正确执行。此外,用户指南中的示例只有在可执行文件gnuplot
存在时才会起作用...我不知道 Windows 版本叫什么,所以 Windows 用户必须确认这一点 - 这也可能是问题所在。
答案2
请访问gnuplot 主页找到 SourceForge 的下载链接。下载 Windows 版 EXE 文件,该文件会自动安装在 Windows 上。它适用于所有版本的 Windows,相同。将其保存在您的计算机上。
以管理员身份运行(右键单击以管理员身份运行)。显示安装选项时,不要忘记勾选“将路径添加到环境变量”复选框。让软件完成此操作,而不是手动完成。
对于终端也使用其默认定义。
安装完成后,当系统询问是否要运行 gnuplot 时,勾选“运行 gnuplot”框,允许它首次运行。然后关闭它。关闭所有内容并重新启动计算机。
现在以管理员身份运行你的 tex 编辑器,比如我的 TexnicCenter,重新编译你的 tex 文件,它应该会消除错误。如果添加--shell 转义其他人建议的。不过,对于 DVI 编译来说,这不是必需的;它可能会从 gnuplot 中产生未解决的警告。在这种情况下使用-启用-write18,而是像 Christian Feuersanger 博士所著的《pgfplots 包手册》第 37 页中所述的那样。
答案3
luatex
在 2023 年,我认为推荐的最佳做法是尽可能使用引擎。然后你只需要更改contour gnuplot
为contour lua
,它就可以正常工作,而无需运行外部问题。