PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gnuplot-EPS lässt sich nicht einfügen



c_verres
22-03-2011, 09:32
Hallo,

ich möchte gerne Bilder aus Gnuplot (Version 4.4 patchlevel 2) in mein LaTeX-Dokument einfügen. Dazu gehe ich folgendermaßen vor:

1. bild.plt laufen lassen
2. aus bild.tex PS-Datei erstellen
3. Mittels Ghostview diese PS-Datei in eine EPS umwandeln.
4. Aus bild-test.tex eine PS-Datei erstellen.

Leider enthält bild-test.ps kein Bild? Was läuft schief?

Curryhunter
22-03-2011, 15:47
Hallo,
warum erstellst du nicht direkt mit gnuplot eine eps-datei?
Und was hältst du davon, alles direkt in LaTeX zu schreiben? Aktiviere mal --shell-escape (bzw. --enable-write18) in Deinen LaTeX-Profilen und probier das Beispiel aus:


\documentclass{article}
\usepackage{graphicx}
\usepackage{gnuplottex}
\begin{document}

%\begin{figure}[htb]
%\includegraphics{bild.eps}
%\end{figure}

\begin{figure}
\begin{gnuplot}[terminal=epslatex]
set xlabel ''
set ylabel ''
f(x)=x**2
plot f(x)
\end{gnuplot}
\end{figure}

\end{document}

c_verres
22-03-2011, 16:02
warum erstellst du nicht direkt mit gnuplot eine eps-datei?


Weil ich für die Achsenbeschriftungen die LaTeX-Schriftart haben möchte.



Und was hältst du davon, alles direkt in LaTeX zu schreiben? Aktiviere mal --shell-escape (bzw. --enable-write18) in Deinen LaTeX-Profilen und probier das Beispiel aus:


\documentclass{article}
\usepackage{graphicx}
\usepackage{gnuplottex}
\begin{document}

%\begin{figure}[htb]
%\includegraphics{bild.eps}
%\end{figure}

\begin{figure}
\begin{gnuplot}[terminal=epslatex]
set xlabel ''
set ylabel ''
f(x)=x**2
plot f(x)
\end{gnuplot}
\end{figure}

\end{document}

Für dieses Beispiel ist das praktikabel, aber wenn ich viele Diagramme in einem großen Dokument habe, sind mir einzelne EPS-Dateien lieber.

c_verres
23-03-2011, 08:49
Hat jemand ne Idee, warum bild-test.ps leer ist? Das ist übrigens auch dann der Fall, wenn ich das Beispiel von Curryhunter nehme.

u_fischer
23-03-2011, 09:05
Nun, da du die wirklich wichtigen Informationen (log-Datei, Terminalmeldungen, erzeugte eps-Datei) nicht gibst, kann man, was dein erstes Problem angeht, nur raten.

Was gnuplottex angeht: Ich habe zwar kein gnuplot installiert, aber der Doku nach musst du, damit es mit miktex funktioniert, die Option miktex benutzen:


\usepackage[miktex]{gnuplottex}

Daneben muss natürlich --shell-escape aktiviert sein, und gnuplot im Pfad sein.

c_verres
23-03-2011, 09:38
OK, ich lasse bild.plt laufen und erhalte bild.tex.

Lasse ich latex über bild.tex laufen erhalte ich die angehängte Log-Datei.

Die PS-Datei ist angehängt. Aus dieser habe ich mittels Ghostview ein EPS erstellt (automatische Boundingsbox-Korrektur, auch angehängt).

Jetzt lasse ich bild-test.tex laufen.

u_fischer
23-03-2011, 10:19
Nun offensichtlich mag latex/dvips die bild.eps nicht. Da die bild.tex mit der du sie erstellt hast, kann ich nicht testen, ob es bei mir gehen würden. Warum gehst du den Weg über ps anstatt direkt eps (dvips -E*) zu erstellen?

c_verres
23-03-2011, 10:59
Nun offensichtlich mag latex/dvips die bild.eps nicht. Da die bild.tex mit der du sie erstellt hast, kann ich nicht testen, ob es bei mir gehen würden.

:confused:



Warum gehst du den Weg über ps anstatt direkt eps (dvips -E*) zu erstellen?

Hm, und wie erstelle ich direkt ein EPS, wenn ich MikTeX mit TexnicCenter nutze?

Curryhunter
23-03-2011, 12:35
Dann noch mal ich:
Mit meinem schon angegebenen Beispiel erhältst du, wenn du das durchlaufen lässt, eine .eps (Graph ohne Beschriftung) und eine .tex-Datei (Beschriftung des Graphen), welche intern zusammengesetzt werden und das fertige Diagramm ergeben. Angehängt habe ich einmal alle Dateien, die man beim Latex-Lauf erhält.
Bei vielen Graphen im Dokument würde ich dann jeden einzelnen Graphen (bzw. gnuplotaufruf) in eine eigene Datei nehmen und diese im Hauptdokument per \input einbinden.


\documentclass{article}
\usepackage{graphicx}
\usepackage[miktex]{gnuplottex}
\begin{document}

%\begin{figure}[htb]
%\includegraphics{bild.eps}
%\end{figure}

\begin{figure}
\begin{gnuplot}[terminal=epslatex]
set xlabel ''
set ylabel ''
f(x)=x**2
plot f(x)
\end{gnuplot}
\end{figure}

\end{document}

c_verres
24-03-2011, 10:19
Warum gehst du den Weg über ps anstatt direkt eps (dvips -E*) zu erstellen?

OK, habe das hinbekommen, aber das funktioniert nicht immer: Bei einigen Diagrammen wird nämlich die BoundingBox nicht korrekt gesetzt (Es wird zuviel abgeschnitten).

Gibt es nicht noch ne andere Möglichkeit, eps-/PDF-Dateien mit Gnuplot zu erzeugen, um diese danach in LaTeX einzubinden?