Mit PSTricks erstellte Grafik in Dokument einfügen

Tabellen und Grafiken erstellen und anordnen


swerder
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 4. Aug 2010, 10:43

Mit PSTricks erstellte Grafik in Dokument einfügen

Beitrag von swerder »

Guten Tag,

ich suche nach einer Lösung, um mein mit PSTricks erstelltes Bild in ein PDF-Dokument einzufügen.

Meine Systemvoraussetzungen:
Windows XP
Texniccenter (aktuelle stabile Version)
Miktex (2.8xxx Komplettinstallation)

Zuerst das PSTricksBild (ich habe BeispielCode von der PSTricksHomepage entnommen)
\documentclass{article}
\usepackage{pst-solides3d}
\pagestyle{empty}

\begin{document}

\begin{pspicture}(-2,-1)(1.75,2.7)
\psset{lightsrc=10 -20 50,viewpoint=50 -20 20 rtp2xyz,Decran=50,algebraic}
\defFunction{helice}(t){3*cos(4*t)}{3*sin(4*t)}{t}
\psSolid[object=courbe,
        range=0 6,
        linecolor=blue!60,linewidth=1pt,
        resolution=360,
        function=helice,
        r=0.6]%
\end{pspicture}

\end{document}
Um diesen Code im Texniccenter zu kompilieren muss man das Ausgabeformat auf Latex => PS => PDF umstellen. Erzeugtes PDF habe ich diesem Beitrag beigefügt (exa024.pdf). Die mit pstricks erzeugte Grafik befindet sich im linken oberen Teil des PDFs, die restliche Seite ist leer (so wie es in vielen Manuals beschrieben ist).

Nun möchte ich diese Grafik in ein weiteres Texdokument einfügen. Dabei möchte ich folgenden Weg vermeiden: Markieren des Bildausschnitts, kopieren in den Arbeitsspeicher und in beliebiger Grafikverarbeitung einfügen und z.B. als .jpg speichern.

Gibt es eine elegante Lösung, den PSTricksCode direkt in ein Latexdokument zu integrieren?

Ziel soll es sein, die Grafik in folgende tex-Datei zu integrieren:
\documentclass{scrreprt}
\usepackage[latin1]{inputenc}
\begin{document}
Hallo Welt, dies ist ein Test. Unter diesem Text soll meine mit PSTricks erstellte Grafik eingefügt werden.
\end{document}

Mit freundlichen Grüßen
Stephan Werder
Dateianhänge
exa024.pdf
(22.8 KiB) 494-mal heruntergeladen
beispielbild.pdf
(17.1 KiB) 601-mal heruntergeladen

Schweinebacke

Beitrag von Schweinebacke »

Beachte den Link zu pstricks in den wichtigen Hinweisen und Vorabhilfen für dieses Unterforum. In der dortigen Beschreibung ist das erklärt.

swerder
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 4. Aug 2010, 10:43

Beitrag von swerder »

Vielen Dank für die Hinweise, nach etlichen Versuchen und Manuals sehe ich langsam den Wald vor lauter Bäumen nicht mehr.

Immerhin ist es mir gelungen das PDF (exa024) als Bild einzufügen. Es wird allerdings die Komplette A4 Seite eingebunden. Um mein Problem zu lösen benötige ich also Pakete, die mir den leeren Teil der Seite entfernen.

Wie heißen mögliche Pakete dafür? Der aktuelle TexCode sieht so aus, Kompilierte PDF ist auch dem Beitrag angeheftet:
\documentclass{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\begin{document}
Hallo Welt, dies ist ein Test. Unter diesem Text soll meine mit PSTricks erstellte Grafik eingefügt werden.
\begin{figure}[htbp]
	\centering
		\includegraphics[width=0.30\textwidth]{C:/Users/Stephan/Desktop/testpstricks/exa024.pdf}
	\caption{PSTrickshelix}
	\label{fig:exa024}
\end{figure}
\end{document}
Mit freundlichen Grüßen
Stephan Werder
Dateianhänge
beispielbild.pdf
(38.89 KiB) 509-mal heruntergeladen

Benutzeravatar
nfa019
Forum-Century
Forum-Century
Beiträge: 115
Registriert: Mi 2. Jun 2010, 22:32

Beitrag von nfa019 »

zunächst musst du Latex sagen, dass eps rauskommen soll, z.B. wie hier mit der TeXtoEPS Umgebung.
\documentclass[12pt]{article}
\usepackage{pstcol,pst-node,pst-plot,pst-eps,graphicx}
\psset{arrows=->, unit=3cm, arcangle=20, 
       labelsep=2.5pt, subgriddiv=10, shortput=nab}
\pagestyle{empty}
\begin{document}

\begin{TeXtoEPS} % Export nach EPS
	\begin{pspicture}(-0.5,-0.4)(2.5,0.25)
		\pnode(-0.5,0){0} %Leerer Node für Pfeil zum Ausgangszustand
		% die Nodes
		\cnodeput(0,0){s0}{$s_0$}
		\cnodeput(1,0){s1}{$s_1$}
		\cnodeput[doubleline=true](2,0){s2}{$s_2$}

		% die Edges

		{\small 
		\ncarc{0}{s0}          % -> zum Startzustand
		\ncarc{s0}{s1}^{$0$}
		\ncarc{s1}{s2}^{$0$}
		\ncarc{s1}{s0}^{$1$}

		% Loops
		\nccircle[angle=180]{s0}{0.4cm}_{$1$}    % nach unten
		\nccircle[angle=-90]{s2}{0.4cm}_{$0,1$}  % nach rechts
		}
	\end{pspicture}
\end{TeXtoEPS}

\end{document}
und dann kompilieren und dann mit dvips nach eps bringen, anschließend epstopdf wie hier
latex beispiel.tex
dvips -E -h ~/texmf/texheader/texc.pro \
 -h ~/texmf/texheader/pstricks.pro \
 -h ~/texmf/texheader/pst-dots.pro \
 -h ~/texmf/texheader/pst-node.pro \
 -h ~/texmf/texheader/3D4.pro \
 -h ~/texmf/texheader/special.pro \
 -h ~/texmf/texheader/color.pro \
 -h ~/texmf/texheader/texps.pro \
  -h ~/texmf/texheader/8r.enc \
 -o beispiel.eps beispiel.dvi
epstopdf beispiel.eps
Die Pfade musst du natürlich anpassen.

Anschließend kannst du beispiel.pdf so einbinden, wie du es vorhast.

CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Re: Mit PSTricks erstellte Grafik in Dokument einfügen

Beitrag von CrazyHorse »

swerder hat geschrieben: ich suche nach einer Lösung, um mein mit PSTricks erstelltes Bild in ein PDF-Dokument einzufügen.

Meine Systemvoraussetzungen:
Windows XP
Texniccenter (aktuelle stabile Version)
Miktex (2.8xxx Komplettinstallation)
Du benutzt einfach
\usepackage{auto-pst-pdf}
und startest dann pdflatex mit der Option -shell-escape. Diese trägst
du im TexnicCenter-Menü ein:

Alt-F7, dann links LaTeX=>PDF und rechts bei den Argumenten vor
-interaction=... ergänzen zu
-shell-escape -interaction=...
Dann wird die Grafik automatisch in eine PDF-Abbildung gewandelt und auch automatisch eingefügt. Perl musst du installiert haben, was man grundsätzlich haben sollte. Ein kostenloses gibt es bei http://www.activestate.com/perl

Herbert

CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Beitrag von CrazyHorse »

nfa019 hat geschrieben:zunächst musst du Latex sagen, dass eps rauskommen soll, z.B. wie hier mit der TeXtoEPS Umgebung.
Das ist die schlechteste aller möglichen Varianten ...

Herbert

swerder
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Mi 4. Aug 2010, 10:43

Beitrag von swerder »

So, ich habe das gestellte Problem endgültig lösen können. Damit andere Leute auch etwas davon haben, hier die Lösung mit ausführlicher Schritt für Schritt Anleitung.


Benötigte Software:

Betriebssystem: WinXP 32bit
Miktex 2.8 Komplettinstallation
Texniccenter (aktuelle stabile Version, keine selbstdefinierten Ausgabeprofile, also das was eine Standardinstallation mitliefert)
Ghostview (aktuelle Version)
Ghostscript (aktuelle Version)

1. Texdatei für die PSTricks-Grafik erstellen mit Texniccenter

\documentclass{article}
\usepackage{pst-solides3d}
\pagestyle{empty}
\begin{document}
\begin{pspicture}(-2,-1)(1.75,2.7)
\psset{lightsrc=10 -20 50,viewpoint=50 -20 20 rtp2xyz,Decran=50,algebraic}
\defFunction{helice}(t){3*cos(4*t)}{3*sin(4*t)}{t}
\psSolid[object=courbe,
        range=0 6,
        linecolor=blue!60,linewidth=1pt,
        resolution=360,
        function=helice,
        r=0.6]%
\end{pspicture}
\end{document}
Nun muss im Texniccenter das Ausgabeprofil auf "LaTeX => PS" umgestellt werden. Nun klickt man auf den Button "Aktives Dokument erstellen". Die Datei wird komiliert, dabei werden im Verzeichnis der TexDatei unter anderem eine EPS-Datei erstellt.

2. BoundingBox neu setzen
Mittels GhostView öffne man die EPS Datei. Unter dem Menüpunkt "Datei" befindet sich die Auswahlmöglichkeit "PS to EPS". Es öffnet sich ein weiterer Dialog, es ist wichtig, dass der Haken bei "Automatisch Berechnung der BoundingBox" gesetzt ist. Nun wird ein Zielordner und ein neuer Name für die Grafik vergeben (z.B helix.eps).
Betrachtet man diese neue eps-Datei, so stellt man fest, dass die weissen Ränder weggeschnitten sind.

3. EPS-Datei in Texdatei einfügen
Folgender TexCode liegt im Texniccenter vor:
\documentclass{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage{graphicx}

\begin{document}
Unter diesem Text soll meine mit PSTricks erstellte Grafik eingefügt werden.
\begin{figure}[htbp]
	\centering
	\includegraphics[width=0.30\textwidth]{helix.eps}
	\caption{PSTrickshelix}
	\label{fig:exa024}
\end{figure}
\end{document}
Das Ausgabeprofil "Latex => PS => PDF" einstellen, anschließend "aktuelles Dokument erstellen".

Viel Spaß beim Nachmachen. Die Datein sind dem Beitrag beigefügt. Vielleicht gibts noch bessere Lösungen, z.B. die BoundingBox direkt im Texcode der PSTricksdatei zu erstellen. Würde mich über Verbesserungsvorschläge/Kritik freuen.

Stephan
Dateianhänge
PSTricksHelix.ps
Grafik mit weissem Rand
(336.21 KiB) 506-mal heruntergeladen
helix.eps
Grafik mit neuer BoundingBox
(336.22 KiB) 479-mal heruntergeladen
EPSeinfueg.pdf
eingefügte Grafik in PDF
(27.62 KiB) 520-mal heruntergeladen

Benutzeravatar
nfa019
Forum-Century
Forum-Century
Beiträge: 115
Registriert: Mi 2. Jun 2010, 22:32

Beitrag von nfa019 »

CrazyHorse hat geschrieben:
nfa019 hat geschrieben:zunächst musst du Latex sagen, dass eps rauskommen soll, z.B. wie hier mit der TeXtoEPS Umgebung.
Das ist die schlechteste aller möglichen Varianten ...

Herbert
hatte aber den Vorteil, dass sie auch schon ohne auto-pst-pdf funktioniert (das Beispiel stammt aus der Zeit, als es das Paket noch gar nicht gab :) )

CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Beitrag von CrazyHorse »

swerder hat geschrieben:So, ich habe das gestellte Problem endgültig lösen können. Damit andere Leute auch etwas davon haben, hier die Lösung mit ausführlicher Schritt für Schritt Anleitung.

[ ... ]

Viel Spaß beim Nachmachen. Die Datein sind dem Beitrag beigefügt. Vielleicht gibts noch bessere Lösungen, z.B. die BoundingBox direkt im Texcode der PSTricksdatei zu erstellen. Würde mich über Verbesserungsvorschläge/Kritik freuen.
das ist doch viel zu umständlich. Die Anwendung von auto-pst-pdf erfordert lediglich die Angabe von -shell-escape als Variable. Danach kann man nach Lust und Laune pdflatex nutzen.

Herbert

CrazyHorse
Forum-Guru
Forum-Guru
Beiträge: 252
Registriert: Di 16. Mär 2010, 09:39

Beitrag von CrazyHorse »

nfa019 hat geschrieben:
CrazyHorse hat geschrieben:
nfa019 hat geschrieben:zunächst musst du Latex sagen, dass eps rauskommen soll, z.B. wie hier mit der TeXtoEPS Umgebung.
Das ist die schlechteste aller möglichen Varianten ...

Herbert
hatte aber den Vorteil, dass sie auch schon ohne auto-pst-pdf funktioniert (das Beispiel stammt aus der Zeit, als es das Paket noch gar nicht gab :) )
es funktioniert eben _nicht_ immer. Die Bounding Box ist in vielen Fällen falsch.

Herbert

Antworten