PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dot-Dateien (Graphviz) in LaTeX



vbd
27-09-2006, 16:52
Hi,

hier kommt gleich meine nächste Frage.

Nutze dot-Dateien und erstelle mit Graphviz daraus Postscript-Dateien.
Diese Postscriptdateien möchte ich in LaTeX einbinden. Nutze pdflatex und weiss inzwischen auch das auf diesem Weg keine Postscript-Dateien verwendet werden, sondern PDF, JPEG, PNG. Soweit so klar.

Wie kriege ich ps2pdf dazu aus der Postscript-Datei ein PDF zu erzeugen mit den Abmessungen der Postscript-Datei und nicht eine DIN A4-Seite.
Beispiel:
aus der DOT-Datei generiertes PNG -> 200x539 Pixel
aus der DOT-Datei generiertes PS -> umgewandelt mit ps2pdf -> DIN A4...

ps2pdf -g200x536 edi.ps edi.pdf erzeugt ein leeres PDF

Was mache ich falsch?

bischi
27-09-2006, 18:13
Bist du sicher, dass er dir A4 erstellt? Oder zeigt dies nur der AR so an?

Bind mal das File in LaTeX ein.

MfG Bischi

edico
28-09-2006, 09:33
Es sind zweierlei Paar Schuh - aus dem ascii/dot-file eine Graphik (sei's raster oder vector) zu erstellen und der Kompilierungsprozess mit ps2pdf resp. pdflatex.

Das graphviz-Beispiel

###
### net graphviz file :: from ascii to raster or vector graphics
### digraph modus
###
digraph netzwerk {
a -> {b c d e f};
b -> d;
c -> d;
a [shape=box, color=blue, label="myNetwerk"];
b [color=red, label="Mafo"];
c [color=red, label="Partner"];
d [color=red, label="Clients"];
e [color=darkgreen, label="OAP"];
f [color=darkgreen, label="IT"];
}

transformierst du z.B. mit folgenden Sequenzen:

$ dot -o net.dot net somit ascii -> dot
$ dot net.dot -Tps -o net.eps somit dot -> eps
$ epstopdf net.eps somit eps -> pdf
($ convert net.eps net.png somit eps -> png)

Die generierten EPS- resp. PDF Graphiken haben die 'richtige BoundingBox', so dass du

$ latex foo && dvips -Ppdf -G0 foo.dvi && ps2pdf foo.ps mit der Graphik 'net.eps' bzw.
$ pdflatex foo mit der Graphik 'net.pdf'

kompilieren kannst.

edico

vbd
05-10-2006, 10:28
Habe folgendes ausgetüftelt:



C:\>dot -Tpng net.dot -o net.png
C:\>identify net.png
net.png PNG 443x251 443x251+0+0 DirectClass 8-bit 3.41797kb




C:\>dot -Tps net.dot -o net.eps
C:\>convert net.eps net.png
C:\>identify net.png
net.png PNG 332x188 332x188+0+0 DirectClass 8-bit 7.69531kb 0.031u 0:01




C:\>dot -Tps net.dot -o net.eps
C:\>convert net.eps net.pdf
C:\>identify net.pdf
net.pdf PDF 612x792 612x792+0+0 DirectClass 8-bit 1.38684mb 0.078u 0:01


Mein Problem sind wohl diese Größenunterschiede. Wie kommt es zu diesen bzw. wo muß ich ansetzen?

System:
Windows XP SP2
Imagemagick-Static: 6.2.9-Q16
Graphivz-dot 2.8
Ghostscript 8.54

edico
05-10-2006, 16:37
Ich blicke nicht durch, was dein Problem ist. In deinem Startposting hast du geschrieben, dass du pdftex nimmst. Dann ziehe doch die PNG Graphiken heran - was spricht dagegen?
Ausserdem ...

[1] Warum generierst du PNG via EPS und nicht direkt aus DOT?
[2] Wenn du PDF brauchst, nimm mal nicht convert (wie ist denn deine BBox),
sondern transformiere
[a] entweder direkt ' gs -sDEVICE=pdfwrite -dEPSCrop -sOutputFile=net.pdf net.eps'
[b] oder 'epstopdf net.eps' (wie schon gesagt).

Wenn sich deine Daten auf mein Beispiel beziehen, dann habe ich:
$ identify net.eps
net.eps PS 336x198 DirectClass 8-bit 194kb 0.0u 0:01
BBox 35 35 371 233
$ identify net.png
net.png PNG 336x198 DirectClass 8-bit 7351b 0.0u 0:01
336 x 198
$ identify net.pdf
net.pdf PDF 612x792 DirectClass 8-bit 1420kb 0.0u 0:01
BBox 36 36 371 233

edico

vbd
09-10-2006, 16:16
Auf meinem privaten Linux-Rechner funktioniert es wie gewünscht. Der Windows-Rechner in der Firma macht es anders....
Wohl ein Setup-Problem - mal sehen.

Trotzdem Danke für die Hilfe - hat mir auf jedenfall schon weitergeholfen.