PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gnuplot und epslatex



jilly
23-07-2012, 20:54
Liebe Leute,
seit einiger Zeit schon habe ich das Problem, dass ich meine in gnuplot erstellten graphen nicht so einfach in mein latex dokument einbinden kann. Folgendes Minimalbeispiel:



\documentclass {article}
\usepackage{graphicx}
\begin{document}
hallihallo
\begin{figure}
\input{testbild}
\end{figure}
\end{document}

ich habe im selbigen ordner die dateien: testbild.eps und testbild.tex liegen.

Die fehlermeldung:


! Missing } inserted.
<inserted text>
}
l.7 \end{figure}


Ich benutze das erste Mal latex in Kombination mit gnuplot und weiß nicht wie ich den fehler beheben kann....:confused:


der vollständigkeit halber hier die testbild.tex 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
\GPcolortrue
}{}%
\@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(3599,4312){\makebox(0,0){\strut{}y=0.02}}%
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%
\put(2138,772){\makebox(0,0){\strut{}-600}}%
\put(2626,772){\makebox(0,0){\strut{}-400}}%
\put(3113,772){\makebox(0,0){\strut{}-200}}%
\put(3600,772){\makebox(0,0){\strut{}0}}%
\put(4087,772){\makebox(0,0){\strut{}200}}%
\put(4574,772){\makebox(0,0){\strut{}400}}%
\put(5062,772){\makebox(0,0){\strut{}600}}%
\put(3600,442){\makebox(0,0){\strut{}$x [/mu}m$]}}%
\put(1966,1058){\makebox(0,0)[r]{\strut{}-600}}%
\put(1966,1546){\makebox(0,0)[r]{\strut{}-400}}%
\put(1966,2033){\makebox(0,0)[r]{\strut{}-200}}%
\put(1966,2520){\makebox(0,0)[r]{\strut{}0}}%
\put(1966,3007){\makebox(0,0)[r]{\strut{}200}}%
\put(1966,3494){\makebox(0,0)[r]{\strut{}400}}%
\put(1966,3982){\makebox(0,0)[r]{\strut{}600}}%
\put(1372,2520){\rotatebox{-270}{\makebox(0,0){\strut{}$z [m]$}}}%
\put(5413,1057){\makebox(0,0)[l]{\strut{} 0}}%
\put(5413,1349){\makebox(0,0)[l]{\strut{} 0.1}}%
\put(5413,1642){\makebox(0,0)[l]{\strut{} 0.2}}%
\put(5413,1934){\makebox(0,0)[l]{\strut{} 0.3}}%
\put(5413,2227){\makebox(0,0)[l]{\strut{} 0.4}}%
\put(5413,2519){\makebox(0,0)[l]{\strut{} 0.5}}%
\put(5413,2812){\makebox(0,0)[l]{\strut{} 0.6}}%
\put(5413,3104){\makebox(0,0)[l]{\strut{} 0.7}}%
\put(5413,3397){\makebox(0,0)[l]{\strut{} 0.8}}%
\put(5413,3689){\makebox(0,0)[l]{\strut{} 0.9}}%
\put(5413,3981){\makebox(0,0)[l]{\strut{} 1}}%
}%



Ach ja, ich benutze Texshop version 2.47 auf nem mac, der graph wurde auf einem ubunturechner erstellt...

rstuby
24-07-2012, 09:07
Die testbild.tex kann so nicht in Ordnung sein. Da kommt \begin{picture}, aber kein \end{picture} und \begingroup ohne \endgroup vor. Ich habe versucht, das zu ergänzen, konnte aber den Fehler nicht beheben.

u_fischer
24-07-2012, 09:18
Wenn du eine eps-Datei hast, warum wandelst du die nicht einfach mit epstopdf in eine pdf-Datei um, und benutzt dann graphicx + \includegraphics{testbild}? Eventuell solltest du auch versuchen, das Bild mit pgfplot zu erzeugen, statt zu nehmen, was gnuplot liefert (das ist m.W. nicht immer sehr schön).

jilly
24-07-2012, 11:24
hmm, ich habe aber ja leider nicht nur die epsdatei, sondern auch noch die texdatei. in der eps datei ist nur das bild, in der texdatei der text. also fällt das mit dem umwandeln wohl flach.
hmm, die tex datei wurde so erzeugt.
Sont noch ne idee auf was ich mein "set terminal" in gnuplot setzen kann? ich habe bislang mit "epslatex color" und mit "eps enhanced color" bei meinen grafen keinen erfolg gehabt. Hmm, vielleicht lohnt es sich tatsächlich nochmal n anderes Programm zu verwenden :(
Aber meine Dateien sind recht groß, stoß ich da nicht vielleicht schnell an Grenzen meines kleinen Rechners? GNuplot habe ich immer auf einem anderen Rechner laufen lassen, schreiben tue ich auf dem macbook...

u_fischer
24-07-2012, 12:51
Du bist wohl in dieses Problem gelaufen:

http://www.gnuplot.info/faq/faq.html#SECTION00096000000000000000

Wenn du nach dem plotten "set output" setzt, dann ist die tex-Datei vollständig.

jilly
25-07-2012, 09:17
ganz vielen Dank für die antworten, der tipp mit "set output" war gold wert.

nun ja, ich habe das gefühl ich bin schon auf dem richtigen weg...
ich kann meine daten nun in gnuplot mit dem epslatex terminal erzeugen und binde sie auf folgende weise ein:

\documentclass{article}
\usepackage{graphicx}

\begin{document}
Hello World!

There is a plot up top!
\begin{figure}
\include{testbild.tex}
\caption{plot from GNUPLOT!}
\end{figure}
\end{document}

LAtex kompiliert wunderbar ohne Fehlermeldung, an der Stelle wo das Bild sein sollte ist aber nichts :(
Ich habe ein wenig rumgespielt: mit "\input" wird gemeckert.

Ich benutze Texshop mit folgenden Einstellungen:
Standardbefehl: Latex
Standardskript: Tex+DVI (hier auch schon pdftex ausprobiert)

Noch irgendwelche ideen? Vielen lieben Dank.

rstuby
25-07-2012, 09:46
Wie sieht die Fehlermeldung aus, wenn du \input benutzt?

u_fischer
25-07-2012, 10:15
Verwende nie \include solange du nicht weißt, wozu es gut ist.
Verwende insbesondere nie \include innerhalb anderer Umgebungen. Ansonsten hat Rsuby recht: Du solltest immer den genauen Wortlaut einer Fehlermeldung angeben.

jilly
25-07-2012, 20:05
Also, wenn ich denn befehl \input verwende, kriege ich folgende Fehlermeldung.

! LaTEX Error: File 'test' not found.
...see Latex Manual for help...
l. 111 \put{0,0}{includegraphics{test}}


Tippe ich H in die Konsole sagt er mir:
I couldnt find a file with any of these extensions eps,eps.gz, ps, ps.gz..


Aber ich muss die Datei doch mit der tex endung einfügen oder? So wie es mir hier empfohlen wird:

http://gnuplot-tricks.blogspot.de/2009/05/gnuplot-tricks-many-say-that-it-is.html
oder überseh ich was?

rstuby
25-07-2012, 20:15
\put{0,0}{includegraphics{test}}

Kommt dieser Befehl in der testbild.tex vor?
Mit dem soll eine Graphikdatei test.eps eingefügt werden. Diese wird nicht gefunden, vielleicht weil sie bei dir testbild.eps heißt? Hast du den Namen zwischendurch geändert? Hast du die .eps auch nach wie vor im selben Ordner wie die .tex und deine Hauptdatei liegen?

jilly
25-07-2012, 20:51
uhh, vielen Dank. jetzt verstehe ich etwas mehr. Denn ja, ich habe den namen in der zwischenzeit geändert. Die dateien liegen alle im richtigen ordner. ich habe die zeile nun abgeändert in ...{testbild}
neue Fehlermeldung, siehe Anhang :( habe nun wieder in meine testbild datei geschaut, aber den fehler nicht gefunden.
ich hänge sie auch noch mal ran:



% 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
\GPcolortrue
}{}%
\@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(3599,4312){\makebox(0,0){\strut{}y=0.02}}%
}%
\gplgaddtomacro\gplfronttext{%
\csname LTb\endcsname%
\put(2138,772){\makebox(0,0){\strut{}-600}}%
\put(2626,772){\makebox(0,0){\strut{}-400}}%
\put(3113,772){\makebox(0,0){\strut{}-200}}%
\put(3600,772){\makebox(0,0){\strut{}0}}%
\put(4087,772){\makebox(0,0){\strut{}200}}%
\put(4574,772){\makebox(0,0){\strut{}400}}%
\put(5062,772){\makebox(0,0){\strut{}600}}%
\put(3600,442){\makebox(0,0){\strut{}$x [/mu}m$]}}%
\put(1966,1058){\makebox(0,0)[r]{\strut{}-600}}%
\put(1966,1546){\makebox(0,0)[r]{\strut{}-400}}%
\put(1966,2033){\makebox(0,0)[r]{\strut{}-200}}%
\put(1966,2520){\makebox(0,0)[r]{\strut{}0}}%
\put(1966,3007){\makebox(0,0)[r]{\strut{}200}}%
\put(1966,3494){\makebox(0,0)[r]{\strut{}400}}%
\put(1966,3982){\makebox(0,0)[r]{\strut{}600}}%
\put(1372,2520){\rotatebox{-270}{\makebox(0,0){\strut{}$z [m]$}}}%
\put(5413,1057){\makebox(0,0)[l]{\strut{} 0}}%
\put(5413,1349){\makebox(0,0)[l]{\strut{} 0.1}}%
\put(5413,1642){\makebox(0,0)[l]{\strut{} 0.2}}%
\put(5413,1934){\makebox(0,0)[l]{\strut{} 0.3}}%
\put(5413,2227){\makebox(0,0)[l]{\strut{} 0.4}}%
\put(5413,2519){\makebox(0,0)[l]{\strut{} 0.5}}%
\put(5413,2812){\makebox(0,0)[l]{\strut{} 0.6}}%
\put(5413,3104){\makebox(0,0)[l]{\strut{} 0.7}}%
\put(5413,3397){\makebox(0,0)[l]{\strut{} 0.8}}%
\put(5413,3689){\makebox(0,0)[l]{\strut{} 0.9}}%
\put(5413,3981){\makebox(0,0)[l]{\strut{} 1}}%
}%
\gplbacktext
\put(0,0){\includegraphics{testbild}}%
\gplfronttext
\end{picture}%
\endgroup



ach ja mittlerweile habe ich auch die eps.datei in eine pdf umgewandelt... in der hoffnung...

rais
26-07-2012, 04:24
Moin moin,

uhh, vielen Dank. jetzt verstehe ich etwas mehr. Denn ja, ich habe den namen in der zwischenzeit geändert. Die dateien liegen alle im richtigen ordner. ich habe die zeile nun abgeändert in ...{testbild}
neue Fehlermeldung, siehe Anhang :( habe nun wieder in meine testbild datei geschaut, aber den fehler nicht gefunden.

poste Fehlermeldungen besser als Text, nicht als Bild. (Du kannst Fehlermeldungen idR aus der .log-Datei rauskopieren.)
Dein Problem steckt hier:


\put(3600,442){\makebox(0,0){\strut{}$x [/mu}m$]}}%

MfG

rstuby
26-07-2012, 06:33
Irgendwie finde ich das seltsam, dass eine automatisch generierte Datei Klammerfehler enthält.

Wenn du die .eps in .pdf umgewandelt hast, dann hast du jetzt die Möglichkeit, mal zu probieren, mit pdflatex zu kompilieren. Allerdings müssen dafür ALLE Bilder als pdf oder png vorliegen. Das hat den Vorteil, dass du die weiteren Schritte dvips, pstopdf nicht mehr brauchst. also während dieser Schritte auch nichts mehr schieflaufen kann. Klammerfehler haben allerdings bei latex und pdflatex exakt die gleichen Auswirkungen...

jilly
26-07-2012, 08:24
Ganz ganz lieben Dank für eure Mithilfe. Mein Dokument wird gesetzt mitsamt Bild und Beschriftung und allem. Es kann nun auch mit pdflatex gestzt werden.
Der Klammerfehler war natürlich nicht automatisch generiert, sondern dabei handelte es sich um meine Achsenbeschriftung :mad:...
vielen Dank auch für den Hinweis mit der log-Datei (muss man nur mit nem text-editor öffnen..:o)