Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 21

Thema: Gnuplot-Grafiken in Latex-Dokument einfügen

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62

    Gnuplot-Grafiken in Latex-Dokument einfügen

    Hallo!

    Für das Erstellen von 3D-Graphen verwende ich gnuplot. Das erzeugte Bild kann ich unter anderem im ps-Format abspeichern. Damit ich es auch in pdf-Dokumenten nutzen kann, konvertiere ich es mit GSView 4.6 ins PDF-Format.
    Das Bild füllt eine ganze Seite im Querformat (der Graph ist mehr breit als hoch) und zwar sowohl in der ps- als auch in der pdf-Datei.
    Jetzt will ich das Bild in mein Latex-Dokument (normales Layout, DIN A4 Hochformat) einbinden. Vorab: Zum Kompilieren (in dvi/ps/pdf) verwende ich TeXnicCenter. Das Bild habe ich einmal im ps-Format und einmal im pdf-Format im Ordner.
    1. Wenn ich eine dvi/ps-Datei erstelle, erscheint es im DVI-Viewer (YAP) und in GSView im Hochformat. Außerdem sieht es so aus, als wäre es mehrmals unsauber übereinander gelegt worden.
    2. Wenn ich das pdf-Bild einfüge, erscheint es im späteren pdf-Dokument genau so, wie ich es haben will: Im Querformat (also die x-Achse des Graphen waagrecht) und nur einmal!

    Mein Problem ist:
    Ich hätte mein Dokument zum Bearbeiten gerne im dvi-Format, weil ich so immer mal sehen kann, wie es aussieht (den DVI-Viewer kann ich geöffnet lassen, das PDF-Dokument muss ich vor dem Kompilieren immer erst schließen).
    Natürlich könnte ich das Bild drehen, dann ist es im dvi/ps-Format richtig herum. Dann ist es aber im PDF-Dokument wieder verdreht!!!

    Meine Frage ist: Wieso behandelt Latex das ps-Bild anders als das pdf-Bild?
    Und wie kann ich das Problem lösen?

    Mit freundlichen Grüßen

    Sebastian

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    Zitat Zitat von Deacon
    Hallo!
    Für das Erstellen von 3D-Graphen verwende ich gnuplot. Das erzeugte Bild kann ich unter anderem im ps-Format abspeichern. Damit ich es auch in pdf-Dokumenten nutzen kann, konvertiere ich es mit GSView 4.6 ins PDF-Format.
    Ich hoffe du speicherst als eps und nicht als ps, also so:
    Code:
    set terminal postscript eps enhanced color solid "Arial" 20
    wobei color und solid optional sind.

    Zitat Zitat von Deacon
    Das Bild füllt eine ganze Seite im Querformat (der Graph ist mehr breit als hoch) und zwar sowohl in der ps- als auch in der pdf-Datei.
    Die Bilder haben immer Querformat, es sei denn du gibst etwas anders vor.
    Aber wenn du diese in gsview öffnest, solltest du ein kleines Bild unten an der a4 Seite sehen. Im PDF nur ein kleines Bild, keine a4 Seite.

    Zitat Zitat von Deacon
    Jetzt will ich das Bild in mein Latex-Dokument (normales Layout, DIN A4 Hochformat) einbinden. Vorab: Zum Kompilieren (in dvi/ps/pdf) verwende ich TeXnicCenter. Das Bild habe ich einmal im ps-Format und einmal im pdf-Format im Ordner.
    Korrektur: Zum kompilieren nimmst du LaTeX und ganz sicher nicht TeXnicCenter (hast du das Prinzip von LaTeX ganz verstanden ?)

    Zitat Zitat von Deacon
    1. Wenn ich eine dvi/ps-Datei erstelle, erscheint es im DVI-Viewer (YAP) und in GSView im Hochformat. Außerdem sieht es so aus, als wäre es mehrmals unsauber übereinander gelegt worden.
    dvi zeigt bei Bildern so gut wie nie das richtige an. Das liegt aber nicht am dvi, sondern daran das dvi dafür prinzipiell nicht geeignet ist. Daher IMMER dvi nach ps konvertieren und das ps angucken.

    Ohne ein Beispiel ist dein Problem aber nicht nachzuvollziehen
    Zitat Zitat von Deacon
    Mein Problem ist:
    Ich hätte mein Dokument zum Bearbeiten gerne im dvi-Format, weil ich so immer mal sehen kann, wie es aussieht (den DVI-Viewer kann ich geöffnet lassen, das PDF-Dokument muss ich vor dem Kompilieren immer erst schließen).
    Dann schon ps statt pdf, siehe oben. AR kann man aber auch beibringen das PDF automatisch zu schließen. Und man kann es mit ALT+LINKS wieder neu laden.


    Zitat Zitat von Deacon
    Meine Frage ist: Wieso behandelt Latex das ps-Bild anders als das pdf-Bild?
    Und wie kann ich das Problem lösen?
    Weil die Informationen über die Seitengröße/Bildgröße sicher nicht dieselben sind.

    Matthias

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    Natürlich weiß ich, dass Latex das Dokument kompiliert! Ich wollte damit nur sagen, dass Texniccenter meine Benutzeroberfläche ist! Und da kann ich eben entscheiden ob ich
    LaTeX => DVI
    LaTeX => PDF
    LaTeX => PS
    haben will.

    Wenn ich mit gnuplot eine eps-Datei erstelle wie du das beschreibst, ändert sich gar nichts! Der Graph ist immernoch seitenfüllend (Querformat).
    Es gibt aber den Befehl "set term epslatex".
    Aber damit kann ich ehrlich gesagt gar nichts anfangen! Gnuplot erstellt dann nämlich eine .tex-Datei und eine .eps-Datei. Wie du sagst, ist der Graph dann am unteren Ende der Seite. Aber die Achsenbeschriftung fehlt!

    Ich habe auch schon gelesen, dass der DVI-Viewer nicht dazu geeignet ist, Bilder anzuzeigen! Aber GSView zeigt mir die PS-Datei ja auch nicht sauber an!
    YAP muss mir das Bild gar nicht anzeigen, ich will das Dokument am Ende ja im PDF- oder PS-Format haben. Also verwende ich in der Präambel der .tex-Datei \usepackage[draft]{graphicx}, damit nur ein Rahmen anstatt des Bildes angezeigt wird. Aber das nützt mir ja nichts, wenn ich einen Rahmen um das hochformatige Bild habe und mein Dokument entsprechend formatiere, wenn ich später in der PDF-Datei das Bild im Querformat habe/brauche!

    MfG
    Sebastian

  4. #4
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    Zitat Zitat von Deacon
    Natürlich weiß ich, dass Latex das Dokument kompiliert! Ich wollte damit nur sagen, dass Texniccenter meine Benutzeroberfläche ist!
    Ist schon ok. Habe halt schon erlebt das Leute es nicht verstanden hatten

    Zitat Zitat von Deacon
    Wenn ich mit gnuplot eine eps-Datei erstelle wie du das beschreibst, ändert sich gar nichts!
    Was hattest du den vorher ? Da du bislang gar keinen Code gepostet hast (sowohl gnuplot als auch LaTeX Minimalbeispiel) kann man nur raten.

    Zitat Zitat von Deacon
    Der Graph ist immernoch seitenfüllend (Querformat).
    Spezifizier das doch bitte mal genauer.

    Zitat Zitat von Deacon
    Es gibt aber den Befehl "set term epslatex".
    Aber damit kann ich ehrlich gesagt gar nichts anfangen!
    Dann schau doch mal in die Doku von gnuplot. Ich kenne es auch nicht.

    Zitat Zitat von Deacon
    Ich habe auch schon gelesen, dass der DVI-Viewer nicht dazu geeignet ist, Bilder anzuzeigen! Aber GSView zeigt mir die PS-Datei ja auch nicht sauber an!
    Dann ist ganz sicher etwas falsch.

    Zitat Zitat von Deacon
    YAP muss mir das Bild gar nicht anzeigen, ich will das Dokument am Ende ja im PDF- oder PS-Format haben. Also verwende ich in der Präambel der .tex-Datei \usepackage[draft]{graphicx}, damit nur ein Rahmen anstatt des Bildes angezeigt wird.
    Sinnvoller Ansatz.

    Zitat Zitat von Deacon
    Aber das nützt mir ja nichts, wenn ich einen Rahmen um das hochformatige Bild habe und mein Dokument entsprechend formatiere, wenn ich später in der PDF-Datei das Bild im Querformat habe/brauche!
    Um dieses Problem weiter einzugrenzen wären Daten von dir nötig. Also deinen gnuplot Quelltext (Minimales Beispiel), die eps Datei, das daraus erstellte PDF und dein LaTeX Quelltext als Minimalbeispiel.

    Matthias

  5. #5
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    OK, jetzt kommt's:
    Meine Kommandos in gnuplot 4.0 sehen so aus:

    gnuplot> set hidden3d
    gnuplot> set isosamples 40
    gnuplot> f(x,y)=sin(x)*y
    gnuplot> splot f(x,y)
    gnuplot> set term postscript
    gnuplot> Terminal type set to 'postscript'
    Options are 'landscape noenhanced monochrome blacktext \
    dashed dashlength 1.0 linewidth 1.0 defaultplex \
    palfuncparam 2000,0.003 \
    butt "Helvetica" 14'
    gnuplot> set output "Sinuskurve.ps"
    gnuplot> replot

    Ich erhalte die ps-Datei. die konvertiere ich mit GSView nach PDF
    (in GSView gibt's dazu folgende Angaben:
    Device: pdfwrite
    Resolution: 720
    Pages: 1
    Fixed Page Size)

    Jetzt kommt mein LaTeX-Dokument:

    \documentclass{scrartcl}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{ngerman}
    \usepackage{ae}
    \usepackage{graphicx}
    \begin{document}
    \includegraphics[width=10cm]{Sinuskurve}
    \end{document}

    Das Bild habe ich (als ps und pdf) im selben Ordner wie die .tex-Datei
    So, jetzt kommen die drei Ausgabeformate:
    LaTeX => DVI
    Bild ist "hochformatig", d.h. um 90° nach links gedreht. (Ich weiß nicht, wie ich es besser beschreiben soll, ich hoffe, du verstehst das! Die z-Achse ist horizontal auf dem Blatt.)
    LaTeX => PS
    Das gleiche wie bei DVI
    LaTeX => PDF
    Bild ist wunderbar angeordnet (Also z-Achse vertikal!)

    Das Phänomen, dass LaTeX bei DVI und PS das Bild mehrmals unsauber übereinander "zeichnet", ist jetzt weg. Woran das liegt, kann ich aber nicht nachvollziehen... Ich habe mehrere Faktoren zu vorhin verändert: nur wenige Packages in LaTeX eingebunden, Zeichnung nur s/w, andere Funktion...

    Ich danke dir, dass du dir die Zeig nimmst!
    Find ich echt klasse!

    Schönen Sonntag
    Sebastian

  6. #6
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    Update:
    Ich kann mit gnuplot doch EPS-Dateien erstellen:
    gnuplot> set terminal postscript eps color
    Insofern muss ich mich bei dir entschuldigen - ist ja genau das, was du vorhin gesagt hast!
    Ich hab's nur vorhin irgendwie nicht gecheckt!

    Das Bild erscheint jetzt in PS und DVI richtig ausgerichtet!
    Ich habe die eps-Datei wieder nach pdf konvertiert.
    Das Bild rutscht im pdf-Dokument ganz nach unten.
    Und das gibt jetzt wieder ein neues Problem:
    Wenn ich eine pdf-Datei erstelle, setzt LaTeX das Bild nicht - wie bei DVI oder PS - ganz oben auf die Seite, sondern ca. eine halbe Seite weiter unten.

    Das waren jetzt aber auf jeden Fall schon einige Erfolgserlebnisse!

    MfG

    Sebastian

  7. #7
    Sabrina212
    Gast

    Rofl

    Zitat Zitat von Deacon
    Wenn ich eine dvi/ps-Datei erstelle, erscheint es im DVI-Viewer (YAP) und in GSView im Hochformat.
    "hochformat" is insanity.





    Montreal hotels
    - California car rental

  8. #8
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    Zitat Zitat von Deacon

    Das Bild erscheint jetzt in PS und DVI richtig ausgerichtet!
    Ich habe die eps-Datei wieder nach pdf konvertiert.
    Das Bild rutscht im pdf-Dokument ganz nach unten.
    mach um das \includegraphics mal eine fbox. Dann siehst du ob oben eine zusätzlicher Platz ist.

    Übrigens sollte dein output auch als Dateiendung ein .eps haben.

    Matthias

  9. #9
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    Mit der fbox sieht man, dass oberhalb der Grafik jede Menge Platz verschwendet wird! Kann man da irgendwas zuschneiden?

    Und meinst du, mein endgültiges Dokument sollte .eps sein? Wie mache ich das? Texniccenter bietet mir nur PS an!

    Vielen Dank
    Sebastian

  10. #10
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    Zitat Zitat von Deacon
    Mit der fbox sieht man, dass oberhalb der Grafik jede Menge Platz verschwendet wird! Kann man da irgendwas zuschneiden?
    Dann hast du statt aus einem eps Bild ein pdf Bild zu erstellen, aus einer ps DIN a4 Seite ein pdf Bild erstellt.

    Zitat Zitat von Deacon
    Und meinst du, mein endgültiges Dokument sollte .eps sein? Wie mache ich das? Texniccenter bietet mir nur PS an!
    Nein, du musst ein eps-Bild haben statt einer ps-Seite

    Matthias

  11. #11
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    Hm, sonderbar...
    Mit gnuplot erstelle ich doch eine .eps-Datei
    Bloß gnuplot scheint da irgendwie keinen Unterschied zu machen !?!

    gnuplot> set terminal postscript eps
    gnuplot> Terminal type set to 'postscript'
    Options are 'eps noenhanced monochrome blacktext \
    dashed dashlength 1.0 linewidth 1.0 defaultplex \
    palfuncparam 2000,0.003 \
    butt "Helvetica" 14'

    gnuplot> set terminal postscript
    gnuplot> Terminal type set to 'postscript'
    Options are 'eps noenhanced monochrome blacktext \
    dashed dashlength 1.0 linewidth 1.0 defaultplex \
    palfuncparam 2000,0.003 \
    butt "Helvetica" 14'

    Wenn man die beiden Angaben vergleicht, sieht man, dass beide identisch sind.
    Aber für LaTeX hat es doch einen Unterschied gemacht!?!
    Die .eps-Datei wurde richtig eingebunden, die .ps-Datei dagegen um 90° gedreht!

    Kannst du mir mal ganz langsam/ausführlich erklären, wie du mit gnuplot eine EPS-Datei erstellst?
    Das wäre total nett!

    Sebastian

  12. #12
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    Zitat Zitat von Deacon
    Kannst du mir mal ganz langsam/ausführlich erklären, wie du mit gnuplot eine EPS-Datei erstellst?
    Genauso wie ich es gepostet habe. Wenn du ein .ps Datei erstellst ist sie IMMER ein DIN a4 Blatt und kein Bild. Nur .eps Datei dürfen andere Formate enthalten.

    Danach wandle ich die eps Datei nur noch mittels epstopdf in ein pdf um und binde das pdf Bild ganz normal ein. Die eps Dateien könnte ich aber genauso einbinden und es macht keinen Unterschied.

    Ein Beispiel von mir:
    Code:
    set encoding iso_8859_1
    set xlabel 'Pumpstrom (mA)'
    set ylabel 'Leistung (mW)'
    set y2label 'Rauschanteil (%)'
    set terminal postscript eps enhanced solid "Arial" 20
    #
    set title '{/=26 Rauschanteil bei hoher Schwelle}'
    set output "Rauschanteil.eps"
    #set terminal x11
    set xrange[200:600]
    set yrange[0:40]
    set y2range [0:100]
    set y2tics 0, 10
    set ytics nomirror
    plot 'Laserleistung.txt' using 1:2 with lines title "" axis x1y1, \
    'Rauschanteil-10u.txt' using 1:2 with points ps 2 pt 5 title "" axis x1y2
    
    set output
    Und erklär mir nochmal bitte was an meiner Anweisung nicht klappt und warum du stattdessen das eps im terminal immer weglässt ?

    Matthias

  13. #13
    Registrierter Benutzer
    Registriert seit
    03.01.2006
    Beiträge
    62
    Ich glaub, ich hab ein grundlegendes Verständnisproblem!
    Ich hab zwar ein Buch (Latex Praxisbuch - Niedermair), das wirklich genial ist, und auch viele Interneteiten durchgelesen, aber überall wird nur das Erstellen von Dokumenten erklärt!
    Aber wie LaTeX arbeitet, sieht man nur ganz grob. Ich hab mir keine großen Gedanken darum gemacht und einfach Texniccenter verwendet. Aber das reicht wohl nicht.
    Wie compiliere ich eine tex-Datei eigentlich manuell?
    Muss ich dazu die latex.exe in meinem Ordner C:\texmf\miktex\bin aufrufen?

    Und wie konvertiere ich eine eps-Datei mit epstopdf nach PDF? Was muss ich dazu tun?
    Hab einfach nirgendwo eine Antwort bekommen, deswegen schreib ich's hier rein...

    MfG
    Sebastian

    ps: Übrigens hab ich doch bei gnuplot die Erweiterung eps gar nicht weggelassen.
    Hab doch "set terminal postscript eps" verwendet!

  14. #14
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo Sebastian,
    ich hab mit gnuplot zwar noch nix gemacht, und windows meide ich wo's nur geht, aber...
    Zitat Zitat von Deacon
    Ich glaub, ich hab ein grundlegendes Verständnisproblem!
    Ich hab zwar ein Buch (Latex Praxisbuch - Niedermair), das wirklich genial ist, und auch viele Interneteiten durchgelesen, aber überall wird nur das Erstellen von Dokumenten erklärt!
    Ich kenne das Buch nicht, und welche Internetseiten auch immer Du Dir angesehen hast: ja genau, mit LaTeX erstellst Du ein Dokument - und das in Buchdruckqualität. (übrigens: Die von Adobe bekannte Dateerweiterung pdf steht für "portable document format")
    Zitat Zitat von Deacon
    Aber wie LaTeX arbeitet, sieht man nur ganz grob. Ich hab mir keine großen Gedanken darum gemacht und einfach Texniccenter verwendet. Aber das reicht wohl nicht.
    Zu Texniccenter kann ich nix sagen, aber es scheint hier viele zu geben, denen es durchaus genügt.
    Zitat Zitat von Deacon
    Wie compiliere ich eine tex-Datei eigentlich manuell?
    Muss ich dazu die latex.exe in meinem Ordner C:\texmf\miktex\bin aufrufen?
    Erstmal mußt Du Dich fragen, wie Dein Ausgangsformat aussehen soll: PDF oder DVI (PS), bzw. ob Du irgendwelche Bilder in einem bestimmten Format laden willst: (e)ps : latex, jpg/png/pdf: pdflatex
    bzw. ob Du so etwas wie pstricks im Dokument verwendest -> latex
    Wenn "C:\texmf\miktex\bin" mit in Deiner %PATH% - Umgebungsvariablen gesetzt ist, dann kannst Du dich mit "cd" in Dein Arbeitsordner begeben und dort die Programme direkt aufrufen:
    latex foo.tex
    erstellt foo.dvi, wenn das endgültige Format pdf sein soll, dann sind noch weitere Schritte nötig:
    dvips foo.dvi #erstellt ps, alternativ ginge auch `dvips -Ppdf foo.dvi -o foo.eps´ für eps
    ps2pdf foo.ps #erstellt das pdf, in der Alternative also `epstopdf foo.eps´
    bzw.
    pdflatex foo.tex
    erstellt foo.pdf
    "foo" mußt Du natürlich mit Deinem Dokumentnamen ersetzen.
    idR reicht das allerdings nicht aus, da hier weder Index noch Literatur noch Nomenklatur berücksichtigt werden, ein halbwegs vollständiger Ablauf wäre also:
    latex foo.tex
    bibtex foo.tex
    makeindex foo.nlo -s nomencl.ist -o foo.nls
    makeindex foo.idx
    latex foo.tex
    latex foo.tex
    dvips foo.dvi
    ps2pdf foo.ps
    bzw. bei Verwendung von pdflatex statt latex entfallen die beiden letzten Schritte
    Natürlich kommt's drauf an, ob Du ein Symbolverzeichnis (erster makeindex-Aufruf), einen Index (zweiter makeindex-Aufruf) und ein Literaturverzeichnis überhaupt in Deinem Dokument haben willst. (Kannst mal sehen, was Dir Texniccenter sonst alles abgenommen hat).
    Zitat Zitat von Deacon
    Und wie konvertiere ich eine eps-Datei mit epstopdf nach PDF? Was muss ich dazu tun?
    Da Du das Programm schon erwähnst:
    epstopdf foo.eps
    schon ausprobiert ? Vielleicht auch mal
    epstopdf -?
    oder
    epstopdf --help
    tippen.
    Zitat Zitat von Deacon
    Hab einfach nirgendwo eine Antwort bekommen, deswegen schreib ich's hier rein...
    schon mal SuFu-> "epstopdf" probiert?
    Zitat Zitat von Deacon
    ps: Übrigens hab ich doch bei gnuplot die Erweiterung eps gar nicht weggelassen.
    Hab doch "set terminal postscript eps" verwendet!
    Und hast Du auch geschaut, was hinterher bei rausgekommen ist? ps oder eps?

    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  15. #15
    Registrierter Benutzer
    Registriert seit
    10.04.2005
    Ort
    Hannover
    Beiträge
    1.854
    epstopdf ist unter linux ein Kommandozeilenprogramm das gs aufruft.
    Unter Windows ist es eine Oberfläche die auch gs aufruft. Such mal danach.

    Zu deinem Problem: Ich hatte mit eps, gnuplot und latex noch nie ein Problem. Dein Codebeispiel erzeugt bei mir auch deinen Fehler nicht:

    Code:
    set hidden3d
    set isosamples 40
    f(x,y)=sin(x)*y
    splot f(x,y)
    set terminal postscript eps enhanced "Arial" 20
    set output "Sinuskurve.eps"
    replot
    Code:
    \documentclass{scrartcl}
    \usepackage{graphicx}
    \begin{document}
    	\fbox{\includegraphics[width=10cm]{Sinuskurve}}
    \end{document}
    Für PDF habe ich "epstopdf Sinuskurve.eps" aufgerufen und ein Sinuskurve.pdf bekommen.

    Matthias

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •