PSTricks und LaTeX vs. pdfLaTeX

PSTricks und LaTeX vs. pdfLaTeX

Ich versuche, meine These in zu konvertieren pdfLaTeX, da latex+ dvipssich beim Unterbrechen (sehr langer) URLs hässlich verhält ... Ich verwende das aktuelle TeXLive 2012 unter Linux.

Das einzige Problem (bisher) ist, dass ich pstricksdie zugehörigen Pakete stark verwende und es nicht schaffe, sie pdfLaTeXbei der Interaktion zwischen verschiedenen pspictureUmgebungen (siehe meine Bilder) ordentlich zum Laufen zu bringen (manchmal verwende ich dies auch, um darunterliegenden Text direkt mit Bildern zu verknüpfen):


latex+ dvips+ ps2pdf(gs)

Latex


pdflatex(Pfeil fehlt)

pdflatex


Code für das obige Beispiel:

\documentclass[12pt]{scrbook}   
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}

\begin{document}

\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){A}
\end{pspicture}
\vspace{5mm}
\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){B}
    \nccurve{->}{A}{B}
\end{pspicture}

\end{document}

Antwort1

Mehrere pspictureUmgebungen als Absätze können durch die postscriptUmgebung gekapselt werden:

\documentclass[12pt]{scrbook}   
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}

\begin{document}

\begin{postscript}%%%%%%%%%%%%%%
\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){A}
\end{pspicture}

\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){B}
    \nccurve{->}{A}{B}
\end{pspicture}
\end{postscript}%%%%%%%%%%%%%%

\end{document}

das wird als einzelnes Bild behandelt. Meine pdflatexAusgabe:

Bildbeschreibung hier eingeben

Innerhalb der postscriptUmgebung kann alles stehen, außer einem Seitenumbruch. Es wird immer wie eine Grafik behandelt, die in gespeichert wird <file>-pics.pdf, eine Seite pro Bild (wenn Sie mehrere Umgebungen haben).

Antwort2

Methode 1 (wenn Sie unbedingt pdflatex verwenden möchten)

Wenn wir pdflatex zum Kompilieren von PSTricks-Code verwenden, müssen sich die Knoten auf derselben physischen Seite der im Hintergrund erstellten zusätzlichen PDF-Datei befinden.

Ihr Originalcode sorgt dafür, dass die erste und die zweite Abbildung auf unterschiedliche physische Seiten aufgeteilt werden. Die erste befindet sich also auf Seite xund die andere auf Seite, ywo x=/=y.

Um sie auf derselben physischen Seite zu platzieren, können wir beide in einen anderen pspictureContainer setzen. Weitere Einzelheiten finden Sie in meinem Code unten.

\documentclass[12pt]{scrbook}   
\PassOptionsToPackage{pdf}{pstricks} %used for pdflatex
\usepackage{pstricks,pst-plot,pst-node,pst-func}

\begin{document}

\begin{pspicture}(-1.5,-4.25)(1.5,4.25)
\rput[b](0,0.25){%
\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){First Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.3 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){A}
\end{pspicture}}
%
\rput[t](0,-0.25){%
\begin{pspicture}(-1.5,0)(1.5,4)
    \psTextFrame[ref=c,linestyle=none](-1.5,3)(1.5,4){Second Plot}
    \psplot[fillcolor=blue!30,fillstyle=solid,opacity=0.5]{-1.5}{1.5}{x 0 0.6 GAUSS}
    \psaxes[labels=none,ticks=none]{->}(-1.5,0)(1.5,3)
    \pnode(1.5,0.5){B}
    \nccurve{->}{A}{B}
\end{pspicture}}
\end{pspicture}
\end{document}

Methode 2 (wenn Sie mit der Verwendung von Xelatex zufrieden sind)

Ohne Änderungen an Ihrem Originalcode vorzunehmen, kompilieren Sie ihn einfach mit xelatex. Fertig!

verwandte Informationen