使用 pgf-package 在 tikzpicture 环境中使用 gnuplot

使用 pgf-package 在 tikzpicture 环境中使用 gnuplot

我正尝试在带有包的环境gnuplot中使用该包。tikzpicturepgf

例子

\documentclass[paper=a4,12pt,version=last]{scrartcl}
\usepackage[miktex]{gnuplottex}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\pgfplotsset{compat=newest}

\begin{document}
\section{PGFPLOTS}
Note how the tick labels match the document font.

\begin{tikzpicture}
\begin{axis}[domain=-10:10, samples=50, smooth, no markers, enlargelimits=false]
\addplot gnuplot {sin(x)}; \addlegendentry{$\sin(x)$}
\addplot gnuplot {cos(x)}; \addlegendentry{$\cos(x)$}
\end{axis}
\end{tikzpicture}
\end{document}

如您所见,我正在使用 MikTeX。我已经将选项pdflatex

pdflatex -synctex=1 -interaction=nonstopmode %.tex

pdflatex -shell-escape -synctex=1 -interaction=nonstopmode %.tex

正如多个网站和 MikTeX 本身所推荐的那样。

但我仍然收到类似以下的错误行:

! 软件包 pgfplots 错误:抱歉,无法找到 gnuplot-result 文件“pgf-external*data.pgf -plot.table”。也许您需要启用 shell-escape 功能?对于 pdflatex,这是“>> pdflatex -shell-escape”。您还可以在相应的 gnuplot 文件上手动调用“>> gnuplot .gnuplot”。有关说明,请参阅 pgfplots 软件包文档。

对彼此而言

\addplot gnuplot ...

以下是我目前所做的:

  1. pdflatex -shell-escape 有一些变化。(--shell-escape、--enable-write18、-enable-write18)
  2. 检查PATH.MikTeX 和gnuplot路径是否存在,直到 .exe 文件
  3. 与问题不太相关的其他事情

编辑:当我尝试使用以下代码创建 pdf 文件时

\documentclass[paper=a4,fontsize=12pt,version=last]{scrartcl}
\usepackage{pgfplots}
\pgfplotsset{compat= newest, width=10cm, }
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
height=9cm,
width=9cm,
grid=minor,
]
\addplot gnuplot[id=filesuffix]{(-x**5 - 242)};
\addlegendentry{model}
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

日志文件给了我

这是 pdfTeX,版本 3.1415926-2.4-1.40.13(MiKTeX 2.9 64 位)(预加载格式=pdflatex 2013.6.4)2013 年 6 月 21 日 21:04 进入扩展模式

答案1

已经有一段时间了,但直到现在我才有时间。以下是我为解决问题所做的事情。

例子

\documentclass [12pt, a4paper, headinclude, titlepage]{scrartcl}                
\usepackage[ngerman]{babel}                                                     
\usepackage[fixlanguage]{babelbib}
\selectbiblanguage{german}
\usepackage[utf8]{inputenc}                                                     
\usepackage[T1]{fontenc}    
\usepackage[a4paper]{geometry}                                                                                                                                                  
\usepackage[fleqn]{amsmath}                                                                                                                 
\usepackage{pgfplots}                                                           
\usepackage{pgf}
\usepackage{tikz}                                                               
\usepackage{float}                                                              

\pgfplotsset{width=7cm, compat=newest}

\begin{document}
\begin{figure}[H] 
\centering
\begin{tikzpicture}
 \begin{axis}
     [  ylabel=$\kappa$ / (S/m) , xlabel=c / (mol/m$^3$), title=\textbf{c gegen $\kappa$}, 
        xmin=0, xmax=130,
        ymin=0,  ymax=0.3,
        width=0.6\textwidth, height=0.45\textwidth, x axis line style={-}, y axis line                     style={-},
      ]     
         \addplot [only marks, gray, raw gnuplot, id=raw3] function{plot 'Daten.txt' u 1:2};
             \addplot [orange, dashed, raw gnuplot, id=raw3] function{plot 'ber.txt' u 1:3};
     \end{axis} 
\end{tikzpicture}
\caption{Auftragung der Messwerte c gegen $\kappa$ (grau) und der berechneten Werte (orange)}
\end{figure}
\end{document}

我的配置: - 安装了 Gnuplot 和 LaTeX - 检查路径变量(Windows) - 在 pdfLaTeX 选项中包含“-shell-escape”(在 texstudio 中很容易) - 确保 texfile 的名称不包含空格、变音符号或其他特殊字符;否则不会创建 .table 文件。 - 如果超出了 LaTeX 的内存,则将图交换到额外的文件中并将其包含在主文件中

运行 pdfLaTeX 两次,瞧,应该有一个类似下面的图。

这里是阴谋在 Latex 中使用 gnuplot 创建图

答案2

遇到了与楼主相同的问题,通过谷歌找到了答案。楼主的回答并没有解决我的问题。

将 shell-escape 从受限模式更改为非受限模式已奏效。在 TexLive 中,您可以通过将文件添加到 texlive 文件夹中来执行此操作shell_escape = ttexmf.cnf或者,您可以修改shell_escape_commands中的选项texmf-dist/web2c/texmf.cnf

希望这对某人有帮助。

答案3

我不知道以下内容是否对任何人有用,但我遇到了同样的问题,尽管我已经尝试了这篇文章和其他文章中的建议。

我的文档类型是书籍(我认为这不相关),我的主文件.tex名为“notas_Estadística.tex”。请注意,此名称带有“´”重音。我创建了另一个包含完全相同文件的文件夹,但现在的主文件名为“try.tex”。当我编译它时,一切顺利。经过多次尝试,我意识到是主文件的名称导致了错误。我猜想 gnuplot 程序可能在符号和重音方面存在一些问题。在原始文件夹中,我将名称更改为“notas_Estadistica.tex”,现在一切顺利。

相关内容