Gnuplot mit Epslatex-Terminal

Gnuplot mit Epslatex-Terminal

Mögliches Duplikat:
Gnuplot-Unterverzeichnis mit epstopdf nicht gefunden

Hallo, ich habe ein Verfahren befolgt, um mit Gnuplot 4.6 ein qualitativ hochwertiges Diagramm in mein Dokument einzufügen. So habe ich es Schritt für Schritt gemacht:

  1. ich habe eine sample.gpDatei mit einem Quellcode wie folgt erstellt:

    set terminal epslatex
    set output 'test.tex'
    f(x) = sin(x)
    plot f(x)
    
  2. Ich konvertierte die Quelldatei mit gnuplot sample.gpund erhielt 2 Dateien mit dem Namentest.epsUndtest.tex.

  3. Aber.epsDas Format passt nicht zu mir, da ich ein Latex-Dokument mit PDFLatex kompilieren möchte. Aus diesem Grund habe ich den Ghostscript-Befehl verwendet, ps2pdf13 -dEPSCrop test.eps test.pdfum eine PDF-Datei zu erstellentest.pdf.

  4. Ich habe meinetest.texin ein Latex-Dokument mithilfe einer Codezeile\input{test.tex}

Nach dem Kompilieren mit PDFLatex erhalte ich eine Fehlermeldung:

test.tex:96:Datei „test“ nicht gefunden, \put(0,0){\includegraphics{test}}

Ich bin verwirrt, denn Bildtest.pdfbefindet sich im selben Ordner wietest.tex, aber beide befinden sich in einem Unterordner „Bilder“ meines Stammordners Latex.

Hier ist der Quellcode fürtest.texdas Gnuplot erzeugt. Ich hoffe, es hilft. Die Zeile, die den Fehler meldet, befindet sich nahe dem Ende der Datei.

% GNUPLOT: LaTeX picture with Postscript
\begingroup
  \makeatletter
  \providecommand\color[2][]{%
    \GenericError{(gnuplot) \space\space\space\@spaces}{%
      Package color not loaded in conjunction with
      terminal option `colourtext'%
    }{See the gnuplot documentation for explanation.%
    }{Either use 'blacktext' in gnuplot or load the package
      color.sty in LaTeX.}%
    \renewcommand\color[2][]{}%
  }%
  \providecommand\includegraphics[2][]{%
    \GenericError{(gnuplot) \space\space\space\@spaces}{%
      Package graphicx or graphics not loaded%
    }{See the gnuplot documentation for explanation.%
    }{The gnuplot epslatex terminal needs graphicx.sty or graphics.sty.}%
    \renewcommand\includegraphics[2][]{}%
  }%
  \providecommand\rotatebox[2]{#2}%
  \@ifundefined{ifGPcolor}{%
    \newif\ifGPcolor
    \GPcolorfalse
  }{}%
  \@ifundefined{ifGPblacktext}{%
    \newif\ifGPblacktext
    \GPblacktexttrue
  }{}%
  % define a \g@addto@macro without @ in the name:
  \let\gplgaddtomacro\g@addto@macro
  % define empty templates for all commands taking text:
  \gdef\gplbacktext{}%
  \gdef\gplfronttext{}%
  \makeatother
  \ifGPblacktext
    % no textcolor at all
    \def\colorrgb#1{}%
    \def\colorgray#1{}%
  \else
    % gray or color?
    \ifGPcolor
      \def\colorrgb#1{\color[rgb]{#1}}%
      \def\colorgray#1{\color[gray]{#1}}%
      \expandafter\def\csname LTw\endcsname{\color{white}}%
      \expandafter\def\csname LTb\endcsname{\color{black}}%
      \expandafter\def\csname LTa\endcsname{\color{black}}%
      \expandafter\def\csname LT0\endcsname{\color[rgb]{1,0,0}}%
      \expandafter\def\csname LT1\endcsname{\color[rgb]{0,1,0}}%
      \expandafter\def\csname LT2\endcsname{\color[rgb]{0,0,1}}%
      \expandafter\def\csname LT3\endcsname{\color[rgb]{1,0,1}}%
      \expandafter\def\csname LT4\endcsname{\color[rgb]{0,1,1}}%
      \expandafter\def\csname LT5\endcsname{\color[rgb]{1,1,0}}%
      \expandafter\def\csname LT6\endcsname{\color[rgb]{0,0,0}}%
      \expandafter\def\csname LT7\endcsname{\color[rgb]{1,0.3,0}}%
      \expandafter\def\csname LT8\endcsname{\color[rgb]{0.5,0.5,0.5}}%
    \else
      % gray
      \def\colorrgb#1{\color{black}}%
      \def\colorgray#1{\color[gray]{#1}}%
      \expandafter\def\csname LTw\endcsname{\color{white}}%
      \expandafter\def\csname LTb\endcsname{\color{black}}%
      \expandafter\def\csname LTa\endcsname{\color{black}}%
      \expandafter\def\csname LT0\endcsname{\color{black}}%
      \expandafter\def\csname LT1\endcsname{\color{black}}%
      \expandafter\def\csname LT2\endcsname{\color{black}}%
      \expandafter\def\csname LT3\endcsname{\color{black}}%
      \expandafter\def\csname LT4\endcsname{\color{black}}%
      \expandafter\def\csname LT5\endcsname{\color{black}}%
      \expandafter\def\csname LT6\endcsname{\color{black}}%
      \expandafter\def\csname LT7\endcsname{\color{black}}%
      \expandafter\def\csname LT8\endcsname{\color{black}}%
    \fi
  \fi
  \setlength{\unitlength}{0.0500bp}%
  \begin{picture}(7200.00,5040.00)%
    \gplgaddtomacro\gplbacktext{%
      \csname LTb\endcsname%
      \put(462,440){\makebox(0,0)[r]{\strut{} 0}}%
      \put(462,1307){\makebox(0,0)[r]{\strut{} 1}}%
      \put(462,2174){\makebox(0,0)[r]{\strut{} 2}}%
      \put(462,3041){\makebox(0,0)[r]{\strut{} 3}}%
      \put(462,3908){\makebox(0,0)[r]{\strut{} 4}}%
      \put(462,4775){\makebox(0,0)[r]{\strut{} 5}}%
      \put(594,220){\makebox(0,0){\strut{} 0}}%
      \put(1836,220){\makebox(0,0){\strut{} 2}}%
      \put(3078,220){\makebox(0,0){\strut{} 4}}%
      \put(4319,220){\makebox(0,0){\strut{} 6}}%
      \put(5561,220){\makebox(0,0){\strut{} 8}}%
      \put(6803,220){\makebox(0,0){\strut{} 10}}%
    }%
    \gplgaddtomacro\gplfronttext{%
      \csname LTb\endcsname%
      \put(5816,4602){\makebox(0,0)[r]{\strut{}f(x)}}%
    }%
    \gplbacktext
    \put(0,0){\includegraphics{test}}%
    \gplfronttext
  \end{picture}%
\endgroup

Antwort1

Nach einigen Recherchen fand ich heraus, dasstest.texvon gnuplot erzeugt enthält eine Zeile \put(0,0){\includegraphics{test}}%, die eigentlich enthalten sollte dietest.pdfBild.

Ich dachte, wenn ein Befehl \includegraphics{test}in einemtest.texZiel vontest.pdfwäre relativ zum Ziel vontest.texdas sich in einem Unterordner „Bilder“ meines Stammordners Latex befindet.

Da ich jedoch einen Befehl \input{./pictures/test}in meinem Haupt-Latex-Dokument verwendet habe, \includegraphics{test}werden die darin enthaltenen Befehlsziele relativ zu meinem Stamm-Latex-Ordner.

Soo, ich könnte das Problem leicht beheben, indem ich eine Zeile darin änderetest.texin ein \put(0,0)\includegraphics{./pictures/test}.

verwandte Informationen