PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pst-pdf läuft ohne Fehler aber in der Ausgabe ist nichts



weaker
05-10-2008, 20:27
Hallo alle zusammen,

nachdem ich mich jetzt mehrere Stunden durchs www gekämpft habe, hab ich es endlich geschafft, dass pstricks Code in der Vorlage von Matthias Pospiech läuft. Aber in der Ausgabe taucht das Bild nicht auf. Nun der Reihe nach:

- Ich verwende ein aktuelles MikTeX 2.7 auf XP SP3 mit dem aktuellen TeXnicCenter und dem Acrobat Reader 9.
- Das TeXnicCenter habe ich um das Ausgabeprofil LaTeX => pst-pdf => PDF von LocalGhost ergänzt und die Pfade angepasst.
- Ich verwende die Vorlage von M. Pospiech in der aktuellen Version. Einzig beim pst-pdf-Paket in der Präambel entferne ich den Kommentar.
- Dann lade ich von der pstricks.de Seite irgendein Beispiel, etwa dieses (http://tug.org/PSTricks/Examples/Simple/simple0.tex) (nur pstricks code):

\newgray{lGray}{0.95}
\psset{unit=0.05mm}% 1:20, or =0.1mm for 1:10
\begin{pspicture}(-100,-100)(1000,1300)
\pspolygon[linewidth=2pt,fillcolor=lGray,%
fillstyle=solid](0,0)(0,940)(860,1250)(860,0)
\psset{linewidth=0.2pt,arrowscale=2,tbarsize=10pt}
\psline{|<->|}(0,-100)(860,-100)\rput*(430,-100){860mm}
\psline{|<->|}(960,0)(960,1250)\rput*{90}(960,625){1250mm}
\psline{|<->|}(-100,0)(-100,940)\rput*{90}(-100,470){940mm}
\end{pspicture}
- Diesen Code füge ich komplett zwischen einem \begin{postscript} \end{postscript} in der demo.tex an einer Stelle ein, an der zuvor normaler Text steht. (Also nicht in irgendwelchen Minipages, sondern an einer möglichst normalen Stelle.)

Der Compilevorgang scheint auch zu klappen, Am Ende steht 0 Fehler, 7 Warnungen. Aber im Ausgabe-PDF ist nichts zu sehen.

Ich habe den Ablauf zwar noch nicht ganz verstanden, aber es wird ja auch ein DVI erzeugt und eine PDF-Datei mit den ganzen Bildern drin, die ...-pics.pdf heißt.

Die DVI-Datei kann ich öffnen, aber in YAP ist kein Bild zu sehen, sondern nur Teile des pstricks-Quellcodes. Download der DVI Datei (per sendspace) (http://www.sendspace.com/file/xrvtxs)

In der Compile-Ausgabe im TeXnicCenter finde ich auch weiterhin "Undefined control sequence" Meldungen bei den pstricks-Befehlen, aber sie haben kein Fehlersymbol und werden auch nicht mitgerechnet. Das könnte ja auch OK sein, wenn ich den gesamten Ablauf richtig interpretiere.

Aber was läuft hier schief, dass ich in der fertigen PDF-Datei keine Spur des Bildes sehe?

EDIT: Wenn ich die Beispiele von der pstricks-Seite als eigene Dokumente kompiliere, sind sie bei der Ausgabe mit latex.exe fehlerfrei, bei pdflatex.exe mit pst-pdf ist die Box um die Grafiken meist etwas zu klein, aber das kann man bei den pspicture-Optionen ändern. Also es schon so, dass ich schon korrektes pst-pdf Output gesehen habe, nur nicht in der komplexeren Umgebung der Pospiech-Vorlage. Da kommen sich vielleicht wieder Pakete in die Quere (?)

Vielen Dank schonmal
weaker

voss
05-10-2008, 20:34
- Diesen Code füge ich komplett zwischen einem \begin{postscript} \end{postscript} in der demo.tex an einer Stelle ein, an der zuvor normaler Text steht. (Also nicht in irgendwelchen Minipages, sondern an einer möglichst normalen Stelle.)

Der Compilevorgang scheint auch zu klappen, Am Ende steht 0 Fehler, 7 Warnungen. Aber im Ausgabe-PDF ist nichts zu sehen.

Ich habe den Ablauf zwar noch nicht ganz verstanden, aber es wird ja auch ein DVI erzeugt und eine PDF-Datei mit den ganzen Bildern drin, die ...-pics.pdf heißt.

Die DVI-Datei kann ich öffnen, aber in YAP ist kein Bild zu sehen, sondern nur Teile des pstricks-Quellcodes. Download der DVI Datei (per sendspace) (http://www.sendspace.com/file/xrvtxs)

In der Compile-Ausgabe im TeXnicCenter finde ich auch weiterhin "Undefined control sequence" Meldungen bei den pstricks-Befehlen, aber sie haben kein Fehlersymbol und werden auch nicht mitgerechnet. Das könnte ja auch OK sein, wenn ich den gesamten Ablauf richtig interpretiere.

Aber was läuft hier schief, dass ich in der fertigen PDF-Datei keine Spur des Bildes sehe?


Du brauchst hier die postscript-Umgebung nicht. Lass sie weg
und berichte, was passiert.

Herbert

weaker
05-10-2008, 20:47
Das geht ja flott hier :-)
Also das hab ich natürlich schon probiert, bzw. war der Grund warum ich überhaupt weitergesucht habe: Ohne die postscript-Umgebung bekomme ich gleich beim ersten Lauf von pdflatex "Undefined control sequence" Fehler beginnend bei dem newgray und psset Befehl, dann heißt es "Environment pspicture undefined". Bei allen pstricks-Befehlen bekomme ich Fehler.

EDIT: Kleine Ergänzung: Ich habe zwar gelesen, dass eine Zwischendatei namens ...-pics.pdf erstellt werden soll, allerdings gibt es diese bei mir nicht. Hängt wohl daran, dass im DVI schon nix verwertbares drin ist.

Grüße
weaker

localghost
05-10-2008, 21:33
[…] Also das hab ich natürlich schon probiert, bzw. war der Grund warum ich überhaupt weitergesucht habe: Ohne die postscript-Umgebung bekomme ich gleich beim ersten Lauf von pdflatex "Undefined control sequence" Fehler beginnend bei dem newgray und psset Befehl, dann heißt es "Environment pspicture undefined". Bei allen pstricks-Befehlen bekomme ich Fehler. […]
Und dir ist sicher nicht in den Sinn gekommen, dass Du zunächst mal ein Paket wie pstricks-add (http://www.ctan.org/pkg/pstricks-add) laden musst.


MfG
Thorsten¹

weaker
05-10-2008, 21:46
Nein, auf die Idee bin ich nicht gekommen. Kenne mich auch nicht wirklich gut aus, welches Paket wovon abhängt.
Habe jetzt

\usepackage{pstricks, pstricks-add}
\usepackage{pst-plot, pst-node, pst-coil, pst-eps} drin.
Also alles wie in der Vorlage einkommentiert und pstricks-add hinzugefügt. (Oder soll das woanders hin?)

Jetzt ist in der DVI-Datei das pstricks-Bild zu sehen (etwas abgeschnitten links unten im Eck) und es existiert eine ...-pics.ps Datei, in der das Bild ebenfalls drin ist (am oberen Rand, auch teilweise abgeschnitten).

Die Fehlermeldungen in der Compile-Ausgabe sind auch weg, aber im Ziel-PDF ist an der Stelle immer noch nichts zu sehen. Wenigstens nähere ich mich dem Ziel.

Noch einen weiteren Tip für mich?

localghost
05-10-2008, 21:53
[…] Noch einen weiteren Tip für mich?
Für dein Beispiel brauchst Du eigentlich nur pst-pdf (http://www.ctan.org/pkg/pst-pdf) und pstricks-add (http://www.ctan.org/pkg/pstricks-add). Starte mal einen zweiten Durchlauf und sieh dir die Ausgabe erneut an.

weaker
05-10-2008, 21:56
Ich nehme mal an, pst-pdf ohne die (in der Vorlage voreingestellte) Option "nopstricks". Sonst wird pstricks ja gar nicht geladen, oder?
EDIT: Scheint egal, pstricks-add lädt dann wahrscheinlich pstricks.

Ändert aber leider nichts dran, dass im Ziel-PDF nichts ankommt.

localghost
05-10-2008, 22:00
Reduziere das Ganze mal zu einem Minimalbeispiel (http://www.minimalbeispiel.de). Wer weiß, was da in deinem Code so alles rumgurkt.

weaker
05-10-2008, 22:07
Also das hier hat das gleiche Problem.
Das DVI und die ...-pics.ps werden genauso erstellt, wie im anderen Beispiel beschrieben.


\documentclass[a4paper,12pt]{article}
\usepackage{pst-pdf}
\usepackage{pstricks-add}
\begin{document}

Testtext vorher.

\newgray{lGray}{0.95}
\psset{unit=0.05mm}% 1:20, or =0.1mm for 1:10
\begin{pspicture}(-100,-100)(1000,1300)
\pspolygon[linewidth=2pt,fillcolor=lGray,%
fillstyle=solid](0,0)(0,940)(860,1250)(860,0)
\psset{linewidth=0.2pt,arrowscale=2,tbarsize=10pt}
\psline{|<->|}(0,-100)(860,-100)\rput*(430,-100){860mm}
\psline{|<->|}(960,0)(960,1250)\rput*{90}(960,625){1250mm}
\psline{|<->|}(-100,0)(-100,940)\rput*{90}(-100,470){940mm}
\end{pspicture}

Testtext nachher.

\end{document}



EDIT: Jetzt geht das Minimalbeispiel (zwar ist die Grafik leicht beschnitten, aber es geht.)!
Es lag daran, dass TeXnicCenter den Pfad zu Ghostscript wieder vergessen hat. Ich musste das Profil auch schon mehr als einmal importieren. Irgendwie scheint das noch verbugt mit den Profilen.

EDIT2: Jetzt geht es auch in der Vorlage von M. Pospiech!

weaker
05-10-2008, 22:55
Vielen Dank an alle Helfer!
pstricks-add war offensichtlich der Schlüssel.

Dann bleibt mir noch die Frage: Ist das normal, dass das mit dem Zuschnitt der Grafik nicht unbedingt hinhaut?

Und gibt es ein Werkzeug, mit dem ich eine pstricks-"Grafik" zuschneiden kann, damit ich nicht zuviel weißen Rand drumherum habe? (Inkscape erzeugt nämlich pstricks für die ganze Seite und nicht nur die markierten Objekte.)

Danke nochmal
weaker

localghost
05-10-2008, 22:57
EDIT: Jetzt geht das Minimalbeispiel (zwar ist die Grafik leicht beschnitten, aber es geht.)!
Es lag daran, dass TeXnicCenter den Pfad zu Ghostscript wieder vergessen hat. Ich musste das Profil auch schon mehr als einmal importieren. Irgendwie scheint das noch verbugt mit den Profilen.
Die Vergesslichkeit vom TeXnicCenter kann ich so jetzt nicht bestätigen.

EDIT2: Jetzt geht es auch in der Vorlage von M. Pospiech!
Bleibt nur noch die Frage: Ist das normal, dass das mit dem Zuschnitt der Grafik nicht unbedingt hinhaut?
Offenbar ja. Mir ist es auch noch nicht aufgefallen, aber die Erklärung anhand deines Beispiels ist ganz einfach.

Die pspicture-Umgebungen, die von pst-pdf (http://www.ctan.org/pkg/pst-pdf) in die Datei ausgelagert werden, werden exakt entsprechend den Koordinatenangaben zugeschnitten. Hier also (-100,-100) und (1000,1300). Wenn jetzt Elemente des Bildes über diese Koordinaten hinausragen, werden sie abgeschnitten. Und genau das tun die letzten drei Zeilen in der pspicture-Umgebung, auch wenn es zunächst nicht so aussieht.

Du kannst das ganz leicht überprüfen, indem Du pst-pdf (http://www.ctan.org/pkg/pst-pdf) auskommentierst und mit dem Profil "LaTeX => PS" ein PS-Datei erzeugst. Dort erscheint das ganze Bild. Verhindern kannst Du diesen Effekt eigentlich nur, indem Du etwas mehr Platz für die pspicture-Umgebung reservierst.

weaker
05-10-2008, 23:54
Mich macht aber noch folgendes stutzig:
Während das hier mit LaTeX => DVI (EDIT: und auch LaTeX => PS)

\documentclass[a4paper,12pt]{article}
\usepackage{pstricks}

\begin{document}
\newgray{lGray}{0.95}
\psset{unit=0.05mm}% 1:20, or =0.1mm for 1:10
\begin{pspicture}(-100,-100)(1000,1300)
\pspolygon[linewidth=2pt,fillcolor=lGray,%
fillstyle=solid](0,0)(0,940)(860,1250)(860,0)
\psset{linewidth=0.2pt,arrowscale=2,tbarsize=10pt}
\psline{|<->|}(0,-100)(860,-100)\rput*(430,-100){860mm}
\psline{|<->|}(960,0)(960,1250)\rput*{90}(960,625){1250mm}
\psline{|<->|}(-100,0)(-100,940)\rput*{90}(-100,470){940mm}
\end{pspicture}
\end{document}im DVI völlig richtig aussieht, nämlich hochkant, so wie auf der pstricks-Seite, erzeugt das hier mit LaTeX => pst-pdf => PDF die Grafik um 90° gedreht.

\documentclass[a4paper,12pt]{article}
\usepackage{pst-pdf}
\usepackage{pstricks-add}

\begin{document}
\newgray{lGray}{0.95}
\psset{unit=0.05mm}% 1:20, or =0.1mm for 1:10
\begin{pspicture}(-100,-100)(1000,1300)
\pspolygon[linewidth=2pt,fillcolor=lGray,%
fillstyle=solid](0,0)(0,940)(860,1250)(860,0)
\psset{linewidth=0.2pt,arrowscale=2,tbarsize=10pt}
\psline{|<->|}(0,-100)(860,-100)\rput*(430,-100){860mm}
\psline{|<->|}(960,0)(960,1250)\rput*{90}(960,625){1250mm}
\psline{|<->|}(-100,0)(-100,940)\rput*{90}(-100,470){940mm}
\end{pspicture}
\end{document}
Das könnte auch der Grund sein, dass da was abgeschnitten wird, wenn nämlich die Begrenzungen bleiben, das Bild aber rotiert wird.
In der ...-pics.ps ist das Bild nämlich noch hochkant, in ...-pics.pdf ist es quer. Hab auch schon Ghostscript aktualisiert, aber da scheint was automatisch gedreht zu werden...