PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Plot verschoben (Gnuplot, EPS-Latex)



Alekkz
07-12-2008, 17:30
Hallo,

ich habe gleich mit meinem ersten Posting hier ein Problem mit Tex und dem EpsLatex-Terminal von Gnuplot.

Ich plotte mit dem EPS-Latex-Terminal in Gnuplot. Dabei kommt ein Tex-File und ein eps-File raus. Das Tex-File enthält meine Achsenbeschriftungen und die Titel, das EPS alleine die Kurven.

Nach der Anleitung unter http://bohnsack.com/?p=841 bastle ich die eps zu pdfs um und beschneide die auch. Ebenfalls nach Anleitung füge ich das in mein Tex-File ein.

Jetzt das Problem: alles funktioniert wunderbar, allerdings ist die pdf-Grafik gegen den Inhalt aus dem Tex-File verschoben! Das Resultat ist angehängt.

Noch etwas Code:

Ich füge ein mit


\begin{figure}[htbp]
\centering
\scalebox{1.0}{\input{PlasmaFreqVsVorspannung.tex} }
\caption[Plasmafreq. in Abh. v. Vorspannung]{Plasmafrequenz $\omega_\mathrm{p}$ in Abhängigkeit der Vorspannung $U$. }
\label{fig:PlasmafreqVsVorspannung}
\end{figure}


Die Stelle in der eingebundenen Tex-Datei, an der was falsch läuft, dürfte die hier sein:



\put(0,0){\includegraphics{PlasmaFreqVsVorspannung }}%


Wenn ich dort in dem put-Kommando statt dem Tupel (0,0) das Tupel (1300,650) eintrage, dann passt's. Hat jemand eine Idee, was falsch sein könnte?

Ich habe schon verschiedenes ausprobiert:


Gnuplot 4.3 statt Gnuplot 4.2
Paket graphics statt Paket graphicx
scalebox weglassen
dvipdfm statt pdflatex
Und, IIRC, die Graphiken als eps statt als pdf


Hat alles nichts geholfen.

Mein Google-Suche sagt mir, dass ich wahrscheinlich der einzige Mensch auf der Welt bin, der dieses Problem hat.

Ich bedanke mich im Voraus für eure Hilfe!

Grüße,

Alex

rais
07-12-2008, 19:15
Moin moin,


Ich plotte mit dem EPS-Latex-Terminal in Gnuplot. Dabei kommt ein Tex-File und ein eps-File raus. Das Tex-File enthält meine Achsenbeschriftungen und die Titel, das EPS alleine die Kurven.

Nach der Anleitung unter http://bohnsack.com/?p=841 bastle ich die eps zu pdfs um und beschneide die auch. Ebenfalls nach Anleitung füge ich das in mein Tex-File ein.

Jetzt das Problem: alles funktioniert wunderbar, allerdings ist die pdf-Grafik gegen den Inhalt aus dem Tex-File verschoben! Das Resultat ist angehängt.

versuche erstmal, das dort angegebene Beispiel durchzuspielen (die dazu erforderlichen Dateien stehen dort zum Download bereit). In Schritt 5 sollte nach pdfcrop (vorm mv) die angehängte Datei bei rauskommen.
Wenn das bei Dir so ist und mit Deinem eigenen Datensatz nicht, dann erstelle bitte ein nachvollziehbares Minimalbeispiel.
MfG

Alekkz
07-12-2008, 19:50
Rais, erstmal Danke für Deine Zeit!

Angehängt habe ich mein Minimalbeispiel. Der Fehler tritt auch mit dem fremden Datensatz auf.

Das Skript "PLOTTEN" plottet mit Gnuplot. Das Skript PDFMAGIC erzeugt ein PDF und beschneidet es. Bis hierhin sieht alles so aus, wie es aussehen soll. Anschließend übersetzt man TestTEX.tex. Und dann passiert der Fehler - der Plot ist wieder verschoben. Siehe dazu das angehängte pdf.

Tritt bei jemand anders der Fehler auch auf?

Ich bin weiterhin für jeden Hilfe sehr dankbar!

Grüße

Alex

rais
07-12-2008, 21:48
Moin Alex,


Das Skript "PLOTTEN" plottet mit Gnuplot. Das Skript PDFMAGIC erzeugt ein PDF und beschneidet es. Bis hierhin sieht alles so aus, wie es aussehen soll. Anschließend übersetzt man TestTEX.tex. Und dann passiert der Fehler - der Plot ist wieder verschoben. Siehe dazu das angehängte pdf.

sieht so aus, als hättest Du einen Schritt übersprungen -- vgl. mal (brauchst nur `PDFMAGIC' aufzurufen und Dir das Ergebnis in `position-main.pdf' anzusehen).
Ich hab die Namen mal etwas geändert und den mv weggelassen, vllt ist es so etwas einfacher nachvollziehbar, was wann womit aufgerufen wird.;-)

MfG

Alekkz
07-12-2008, 22:07
Wow, rais! Danke!

Das funktioniert - allerdings verstehe ich nicht, warum der Zwischenschritt sein muss. Warum muss ich erst in einem Zwischenschritt ein pdf basteln, in dem der Plot und die Achsenbeschriftungen etc. zusammengeführt werden?

Was könnte denn falsch laufen, wenn das nicht direkt geht? Ich steige auf jeden Fall für den Text mal auf den Zwischenschritt um, das lässt sich ja recht einfach skripten (das bekomme also sogar ich hin ;))...

Vielen Dank nochmal!

rais
07-12-2008, 22:27
Moin Alex,
bei der position.pdf (nach epstopdf) gibt es bereits einen Rand, um die spätere Beschriftung zu halten und die dazugehörige position.tex geht davon aus, daß dieser Rand auch da ist -- und wenn Du diesen einfach abschneidest ...

MfG

Alekkz
07-12-2008, 22:34
Rais, Du verdienst Dir hiermit heute schon Deinen zweiten virtuellen Cookie!

Herzallerbesten Dank, erst jetzt habe ich verstanden, was da passiert. Hätte ich besser mal früher gefragt, das hatte mir viele Stunden Arbeit gespart. Warum probiere ich eigentlich immer ALLES aus, nur eben nicht das, was die Lösung wäre?

Schönen Abend noch!

Grüße

Alex

Nabla
08-12-2010, 18:36
hallo

habe das selbe problem... nur sehe ich den schritt nicht, den anscheinend auch ich übersehen habe.
folgedes mache ich:
1. mit gnuplot die eps und tex datei erstellen
2. eps -> pdf
3. pdfcrop dateiname
4. die texdatei von gnuplot zusammen mit der gecropten datei in mein document einbinden

wenn ich die gecropte pdf datei nutze, ist das bild zu weit unten links. wenn ich die ursprüngliche benutze, ist das bild zu weit oben rechts. was mache ich falsch?

kann das bitte jemand ohne scripts oder der gleichen erklären?

localghost
08-12-2010, 21:37
Nimm lieber gleich Pakete wie pgfplots (http://ctan.org/pkg/pgfplots) oder pst-plot (http://ctan.org/pkg/pst-plot). Erspart dir eine Menge Ärger. Derselbe Rat wurde dir schon mal gegeben [1]. Allerdings hast nicht darauf reagiert.

[1] gnuplot epslatex pdflatex - Abbildungen in sich verschoben .:. goLaTeX — Mein LaTeX-Forum (http://www.golatex.de/gnuplot-epslatex-pdflatex-abbildungen-in-sich-verschoben-t5025.html)


Thorsten

ellocco
09-12-2010, 10:55
Nimm lieber gleich Pakete wie pgfplots (http://ctan.org/pkg/pgfplots) oder pst-plot (http://ctan.org/pkg/pst-plot). Erspart dir eine Menge Ärger.
...
Thorsten

Hallo Thorsten,

ich bin gerade faul, deshalb frage ich Dich direkt: Kann es sein,
daß dann jedesmal gnuplot gestartet wird, wenn das LaTeX-File
kompiliert wird?

Ich habe mir für MS-DOS ein Skript gebastelt, daß mir aus den
beiden Gnuplot-Quellen über verschiedene Wege eigenständige
Grafiken erstellt.

Wenn der Gnuplot-Output (ich arbeite mit Gnuplot v4.4 PL 0-rc1)
direkt mit pdflatex verarbeitet werden soll, wird noch eine Datei
"config.cfg" benötigt, in der vorallem das Paket epstopdf
oder alternativ das Paket epspdfconversion geladen werden
muß (das beiliegende *.CFG-File ist weder minimal noch optimal,
es ist zum anschauen und verbessern).

Unter Windoof ist das Beispiel sofort lauffähig, sofern die notwendigen
Pakete vorhanden sind und die dritte Zeile im Gnuplot-Script angepaßt
wurde:

cd '...'

Wer noch mehr Komfort mag, startet noch ein zweites Script innerhalb
des Gnuplot-Files, daß das Ergebnis in das richtige Verzeichnis kopiert.

Unter Windoof brauche ich jetzt nur noch das Gnuplot-File in das
Fenster der grafischen Benutzeroberfläche von Gnuplot ziehen
und alles ist fertig :-)

Grüße

ellocco


P.S.:
Ich bevorzuge das Paket epspdfconversion wg. der höheren
Flexibilität und der Möglichkeit die Schriften einbetten zu lassen.

P.P.S.:
Unix NutzerInnen müssen sich das Batch-Skript entsprechend umschreiben.

P.P.P.S.:
Für die Ungeduldigen enthält das Archivfile auch Beispielergebnisse.

Nabla
10-12-2010, 14:11
danke für eure bemühungen. manchmal zahlt es sich aus, hartnäckig zu bleiben

hab ne einfach lösung gefunden.

den output, den gnuplot unter dem epslatex terminal modus ausgibt, kann man auch im pdflatex leicht kompilieren, wenn man


\usepackage{epstopdf}

in seinen pdflatex quellcode einbindet

Curryhunter
10-12-2010, 14:35
Hallo Leute,
bin gerade über diesen Faden hier gestolpert. Da gleich meine Frage: Warum macht ihr das so kompliziert mit Umwegen über pdfcrop etc.? Wenn ihr gnuplot nutzen wollt, geht das auch völlig ohne den Editor überhaupt zu verlassen:


\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage[miktex]{gnuplottex}
\usepackage{epstopdf}
\begin{document}
\pagestyle{empty}
\begin{figure}[!ht]
\begin{gnuplot}[terminal=epslatex]
plot sin(x) w l
\end{gnuplot}
\caption{Sinusfunktion}
\end{figure}
\end{document}

Ihr müsstet nur enable write 18 oder shell escape aktiviert haben. Alle gnuplot-Befehle könnt ihr dann einfach in die LaTeX-Datei mit reinschreiben.
Beachten müsst ihr nur, dass, sollte schon ein gnuplot-Output da sein, gnuplot nicht erneut aufgerufen wird. Glaube ich zumindest (nicht getestet).

Grüße
Stefan