PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Latex und Gnuplot, selbe Schrift



Blubberblase
19-02-2013, 17:15
Hallo!

Ich bin gerade am lustigen Plotten meiner buten Bildchen für die Diplomarbeit. Dafür sind Berechnungsergebnisse im x-y Raum vorhanden, welche geplottet werden. Das funktioniert in Gnuplot ganz gut, allerdings soll die Schrift in dem späteren Latex Dokument zum Rest der Datei passen. Aktuell verwendet Gnuplot bei mir einen anderen Font als Latex. Gegoogelt habe ich auch schon, aber da gibts auch 1000 Möglichkeiten. Was ist denn eine einfache Variante wie das geht?

Besten Dank,
Blubb


Ps.: Ich brauche noch ein paar Achsenbeschriftungen aber sonst soll da nicht allzuviel Text in die Diagramme rein.

andi67
19-02-2013, 17:31
Es gibt eine Terminaleinstellung (epslatex) in Gnuplot, welche die Grafik und den Text getrennt erzeugt.
Kurven, Graphen etc werden hier in einer eps Dateiausgegeben und der gesamte Text, Bildtitel, Achsenbeschriftungen, label etc in einer tex Datei. Auf diese weise hast du dann volle Kontrolle über die Schriftart

Einbilden musst du dafür folgendes in dein Gnuplotskript



set terminal epslatex color
set output './bild.tex'

die eps Datei heißt dann bild.eps

Einbinden musst du die Bilder (die tex Dateien) dann per input:


\begin{figure}[!ht]
\input{bild.tex}
\caption{Bildunterschrift}
\label{bildlabel}
\end{figure}

bobmalaria
19-02-2013, 17:44
hi,

wenn die menge der datenpunkte ueberschaubar ist (<~1000) pro plot, dann ist pgfplots die erste wahl!
es ist sehr flexibel, du sparst dir den gang ueber ps dateien und ueber eps dateien ueberhaupt und kannst direkt mit pdflatex ein pdf erstellen.

pgfplot kann ausserdem auch gnuplot code direkt ausfuehren und das ergebnis plotten.

mit der externalize laibrary die bei tikz/pgf dabei ist, kann das fertige bild ausserdem automatisch als pdf exportiert werden. damit spart man sich das der plot bei jedem kompilieren neu erstellt wird.

mein tipp: wenn du die datenfiles schon hast, dann plotte sie direkt mit pgfplots - kein gnuplot noetig.

musst du noch rechnungen machen oder sonstiges, nutze die gnuplot optionen von pgfplots. das manual hat viele beispiele, schau einfach mal rein (http://ctan.org/pkg/pgfplots)

Curryhunter
19-02-2013, 19:06
und als dritte Alternative bietet sich auch die Verwendung des Pakets
gnuplottex an, welches Dir erlaubt, Deinen gesamten gnuplot-Code direkt in den LaTeX-Quelltext zu schreiben. Es wird dann wie beim epslatex-Terminal sowohl eine TeX- als auch eine eps-Datei erzeugt, welche beim LaTeX-Lauf zusammengefügt werden.


Grüße
Stefan

Blubberblase
19-02-2013, 20:05
Hallo,

Danke schonmal für die Rückmeldung. Bei mir werdens maximal Daten mit 2000 verschiedenen Messpunkten sein, davon kommen 4 in ein Bild. Davon allerdings um die 100-150 einzelne Bilder. Die sehen auch alle recht einheitlich aus. Bei Gnuplot hat es mir eben gefallen, dass ich mir alles einfach einstellen konnte und dann gings ans EPS erstellen. Allerdings sehen die Fonts dann wieder anders aus. Gibt es auch eine Möglichkeit die Gnuplot Fonts druch die Latexfonts zu ersetzen ?

Viele Grüße,
Blubb

Ps.: Bei den Kurven soll eine Kurve zudem dicker sein als die andere und sie liegen aufeinander.

Curryhunter
19-02-2013, 20:15
Hallo,
es ist ja grad der Charme, sowohl der Lösung über pgfplots (Stichwort: raw gnuplot) bzw. des Pakets gnuplottex, dass in beiden Fällen zwar der eigentlich Graph mittels gnuplot erzeugt wird (also die eigentlichen Datenpunkte), der Rest wird komplett mit LaTeX-Bordmitteln gemacht, so dass die Fonts die gleichen sind, wie im restlichen Dokument.

Ein Beispiel kann ich leider erst morgen liefern, die sind alle auf dem Arbeitsrechner :)

Grüße
Stefan

Blubberblase
19-02-2013, 20:27
Juhuu, das wäre super!

Dann werden damit also die .eps dateien einmal beim Erstelles des Dokuments erstellt und dann auch seperat gespeichert? Da es sich auch um ziemlich viele Messdaten handelt, würde ich sie doch gerne in einem seperaten Ordner speichern. Kann ich desweiteren auch die Dateien mit den Kurven so wie in gnuplot benennen und auch die Achsen nach Lust und Laune skalieren?

Besten Dank,
Blubb

Curryhunter
19-02-2013, 20:36
ja, das müsste auch gehen. Hast du Deine gnuplot-BEfehle irgendwo als Text gespeichert?
Dann müsste es reichen, das Paket gnuplottex einzubinden und kannst dann die gnuplot-Befehle direkt im LAtex-Code einsetzen.

So in etwa:

usepackage[miktex]{gnuplottex}
\begin{document}
\begin{figure}
\begin{gnuplot}[terminal=epslatex]
plot sin(x)
\end{gnuplot}
\end{figure}
\end{document}

PRobiers einfach mal. Voraussetzung ist, dass shell-escape bzw enable-write18 aktiviert sind. Und gnuplot muss natürlich vom System aufgerufen werden können.

Grüße
Stefan

P.S. Gleiches/ähnliches geht auch mit pgfplots, hier ruft man den gnuplot-Code nur anders auf:

\addplot+[raw gnuplot, id=sin] gnuplot {
plot sin(x)
};

Blubberblase
20-02-2013, 10:04
Hey hey,

Irgendwie kommt bei mir keine Anzeige des Plots später im getechten Dokument. Ich freu mich ja schon, wenns nur irgendwie funktioniert :D

Viele Grüße,
Blubb

rstuby
20-02-2013, 10:12
Weißt du, wo man in deinem Editor die Zusatzoption shell-escape bzw enable-write18 einträgt bzw. nachsieht, ob sie da schon steht? Wenn nein, welchen Editor benutzt du?
Oder probiere es mal auf der Kommandozeile:
pdflatex --shell-escape datei.tex

Blubberblase
20-02-2013, 10:19
Ich verwende leider 2 unterschiedliche Editoren, einmal UltraEdit 8.2 und TechMaker, die aktuelle Version.

Das Tech Dokument habe ich fertig vom Institut bekommen, da sie das doch so haben wollen und alles einheitlich aussehen soll.

Curryhunter
20-02-2013, 11:06
Probier mal bitte dieses Beispiel, ob das bei Dir läuft.
Wenn keine Ausgabe erzeugt wird, lad mal bitte die dazugehörende log-Datei hoch.

Deine beiden Editoren kenn ich leider nicht.


\documentclass[
a4paper
,12pt
,cleardoublepage=empty
,oneside
]{scrbook}

\usepackage[miktex]{gnuplottex}

\usepackage{graphicx}

\usepackage{epsfig}

\begin{document}

\begin{gnuplot}[terminal=latex]
plot sin(x), cos(x)
\end{gnuplot}

\begin{gnuplot}
set grid
set title 'gnuplottex test $e^x$'
set ylabel '$y$'
set xlabel '$x$'
plot exp(x) with linespoints
\end{gnuplot}

\end{document}

Blubberblase
20-02-2013, 11:17
This is pdfTeX, Version 3.1415926-1.40.10 (MiKTeX 2.8) (preloaded format=pdflatex 2013.2.20) 20 FEB 2013 11:15
entering extended mode
**C:/Dokumente*und*Einstellungen/user/Desktop/test.tex
("C:/Dokumente und Einstellungen/user/Desktop/test.tex"
LaTeX2e <2009/09/24>
Babel <v3.8l> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman, ngerman, german-x-2009-06-19, ngerman-x-2009-06-19, french, loaded.

("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\scrbook.cls"
Document Class: scrbook 2012/07/29 v3.11b KOMA-Script document class (book)

("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\scrkbase.sty"
Package: scrkbase 2012/07/29 v3.11b KOMA-Script package (KOMA-Script-dependent
basics and keyval usage)

("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\scrbase.sty"
Package: scrbase 2012/07/29 v3.11b KOMA-Script package (KOMA-Script-independent
basics and keyval usage)
("C:\Programme\MiKTeX 2.8\tex\latex\graphics\keyval.sty"
Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
\KV@toks@=\toks14
)
("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\scrlfile.sty"
Package: scrlfile 2012/06/15 v3.12 KOMA-Script package (loading files)

Package scrlfile, 2012/06/15 v3.12 KOMA-Script package (loading files)
Copyright (C) Markus Kohm

)))
("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\tocbasic.sty"
Package: tocbasic 2012/04/04 v3.10b KOMA-Script package (handling toc-files)
)
Package tocbasic Info: omitting babel extension for `toc'
(tocbasic) because of feature `nobabel' available
(tocbasic) for `toc' on input line 117.
Package tocbasic Info: omitting babel extension for `lof'
(tocbasic) because of feature `nobabel' available
(tocbasic) for `lof' on input line 118.
Package tocbasic Info: omitting babel extension for `lot'
(tocbasic) because of feature `nobabel' available
(tocbasic) for `lot' on input line 119.
Package scrbook Info: You've used obsolete option `12pt'.
(scrbook) \KOMAExecuteOptions{fontsize=12pt} will be
(scrbook) used instead.
(scrbook) You may simply replace `12pt'
(scrbook) by `fontsize=12pt'.
Class scrbook Info: You've used standard option `oneside'.
(scrbook) This is correct!
(scrbook) Internally I'm using `twoside=false'.
(scrbook) If you'd like to set the option with \KOMAoptions,
(scrbook) you'd have to use `twoside=false' there
(scrbook) instead of `oneside', too.
Class scrbook Info: File `scrsize12pt.clo' used to setup font sizes on input li
ne 1368.

("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\scrsize12pt.clo"
File: scrsize12pt.clo 2012/07/29 v3.11b KOMA-Script font size class option (12p
t)
)
("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\k
oma-script\typearea.sty"
Package: typearea 2012/07/29 v3.11b KOMA-Script package (type area)

Package typearea, 2012/07/29 v3.11b KOMA-Script package (type area)
Copyright (C) Frank Neukam, 1992-1994
Copyright (C) Markus Kohm, 1994-

\ta@bcor=\skip41
\ta@div=\count79
Package typearea Info: You've used standard option `a4paper'.
(typearea) This is correct!
(typearea) Internally I'm using `paper=a4'.
(typearea) If you'd like to set the option with \KOMAoptions,
(typearea) you'd have to use `paper=a4' there
(typearea) instead of `a4paper', too.
Package typearea Info: You've used standard option `oneside'.
(typearea) This is correct!
(typearea) Internally I'm using `twoside=false'.
(typearea) If you'd like to set the option with \KOMAoptions,
(typearea) you'd have to use `twoside=false' there
(typearea) instead of `oneside', too.
\ta@hblk=\skip42
\ta@vblk=\skip43
\ta@temp=\skip44
Package typearea Info: These are the values describing the layout:
(typearea) DIV = 12
(typearea) BCOR = 0.0pt
(typearea) \paperwidth = 597.50793pt
(typearea) \textwidth = 448.13095pt
(typearea) DIV departure = -6%
(typearea) \evensidemargin = 2.4185pt
(typearea) \oddsidemargin = 2.4185pt
(typearea) \paperheight = 845.04694pt
(typearea) \textheight = 635.5pt
(typearea) \topmargin = -41.72441pt
(typearea) \headheight = 18.125pt
(typearea) \headsep = 21.75pt
(typearea) \topskip = 12.0pt
(typearea) \footskip = 50.75pt
(typearea) \baselineskip = 14.5pt
(typearea) on input line 1213.
)
\c@part=\count80
\c@chapter=\count81
\c@section=\count82
\c@subsection=\count83
\c@subsubsection=\count84
\c@paragraph=\count85
\c@subparagraph=\count86
\abovecaptionskip=\skip45
\belowcaptionskip=\skip46
\c@pti@nb@sid@b@x=\box26
\c@figure=\count87
\c@table=\count88
\bibindent=\dimen102
)
("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\g
nuplottex\gnuplottex.sty"
Package: gnuplottex 2011/09/12 v0.4.4 gnuplot graphs in LaTeX
("C:\Programme\MiKTeX 2.8\tex\latex\base\latexsym.sty"
Package: latexsym 1998/08/17 v2.2e Standard LaTeX package (lasy symbols)
\symlasy=\mathgroup4
LaTeX Font Info: Overwriting symbol font `lasy' in version `bold'
(Font) U/lasy/m/n --> U/lasy/b/n on input line 47.
) ("C:\Programme\MiKTeX 2.8\tex\latex\graphics\graphicx.sty"
Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)

("C:\Programme\MiKTeX 2.8\tex\latex\graphics\graphics.sty"
Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)

("C:\Programme\MiKTeX 2.8\tex\latex\graphics\trig.sty"
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
)
("C:\Programme\MiKTeX 2.8\tex\latex\00miktex\graphics.cfg"
File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
)
Package graphics Info: Driver file: pdftex.def on input line 91.

("C:\Programme\MiKTeX 2.8\tex\latex\pdftex-def\pdftex.def"
File: pdftex.def 2010/04/15 v0.04r Graphics/color for pdfTeX
\Gread@gobject=\count89
))
\Gin@req@height=\dimen103
\Gin@req@width=\dimen104
)
("C:\Dokumente und Einstellungen\user\Anwendungsdaten\MiKTeX\2.8\tex\ latex\m
oreverb\moreverb.sty"
Package: moreverb 2008/06/03 v2.3a `more' verbatim facilities
("C:\Programme\MiKTeX 2.8\tex\latex\tools\verbatim.sty"
Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements
\every@verbatim=\toks15
\verbatim@line=\toks16
\verbatim@in@stream=\read1
)
\tab@position=\count90
\tab@size=\count91
\listing@line=\count92
) ("C:\Programme\MiKTeX 2.8\tex\latex\base\ifthen.sty"
Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
)
\verbatim@out=\write3
runsystem(echo t > "w18-test-2013220675")...disabled (restricted).

runsystem(del "w18-test-2013220675")...disabled (restricted).



Package gnuplottex Warning: Shell escape not enabled.
(gnuplottex) You'll need to convert the graphs yourself..

\c@fignum=\count93
) ("C:\Programme\MiKTeX 2.8\tex\latex\graphics\epsfig.sty"
Package: epsfig 1999/02/16 v1.7a (e)psfig emulation (SPQR)
\epsfxsize=\dimen105
\epsfysize=\dimen106
)
("C:\Dokumente und Einstellungen\user\Desktop\test.aux")
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 14.
LaTeX Font Info: ... okay on input line 14.

("C:\Programme\MiKTeX 2.8\tex\context\base\supp-pdf.tex"
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count94
\scratchdimen=\dimen107
\scratchbox=\box27
\nofMPsegments=\count95
\nofMParguments=\count96
\everyMPshowfont=\toks17
\MPscratchCnt=\count97
\MPscratchDim=\dimen108
\MPnumerator=\count98
\everyMPtoPDFconversion=\toks18
) Opening gnuplot stream test-gnuplottex-fig1.gnuplot

Package gnuplottex Warning: Please convert test-gnuplottex-fig1.gnuplot manuall
y.

Opening gnuplot stream test-gnuplottex-fig2.gnuplot

Package gnuplottex Warning: Please convert test-gnuplottex-fig2.gnuplot manuall
y.

("C:\Dokumente und Einstellungen\user\Desktop\test.aux") )
Here is how much of TeX's memory you used:
2226 strings out of 495285
33989 string characters out of 3180615
110059 words of memory out of 3000000
5446 multiletter control sequences out of 15000+200000
3938 words of font info for 15 fonts, out of 3000000 for 9000
14 hyphenation exceptions out of 8191
40i,1n,49p,265b,72s stack positions out of 5000i,500n,10000p,200000b,50000s

No pages of output.
PDF statistics:
0 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)


Da ist der Code :)

Curryhunter
20-02-2013, 11:38
Ah alles klar, Dein Editor hat anscheinend shell-escape nicht aktiviert.

Kannst du mal auf der Kommandozeile:
pdflatex --shell-escape datei.tex

bzw.
pdflatex --enable-write18 datei.tex
probieren?

Blubberblase
20-02-2013, 12:16
So Update: Jop, habs gemacht, jetzt gibts immer noch den error und ne kleine Berichtigung zu den Programmen, es ist doch WinEdt (5.5), was ich verwende.

Curryhunter
20-02-2013, 16:30
Hallo,
welchen Fehler erhältst du denn nun bei dem Lauf, wenn Du über die Kommandozeile gehst? Wird gnuplot gefunden, wenn du auf der Kommandozeile gnuplot eingibst?


Bei WinEdt findest Du die notwendige Einstellung bei Optionen - Execution Modes (in der englischen Fassung, deutscher Name ist mir nicht bekannt), dort kannst Du in der linken Spalte die verschiedenen Methoden des LaTeX-Durchlaufs auswählen. Wähle pdflatex aus und schreibe unterhalb der linken Spalte bei den Parametern ein:
--enable-write18 "%N%T" Damit erlaubst du pdflatex ein externes Programm, in diesem Fall gnuplot aufzurufen.

Grüße
Stefan

Blubberblase
22-02-2013, 21:36
Danke, es funktioniert. das war sowas was ich gesucht habe. Am Insititutsrechner gings leider nicht, da ich dort sogut wie keinerlei Benutzerrechte habe.

Besten Dank!
Blubb