PSTricks e LaTeX vs.

PSTricks e LaTeX vs.

Estou tentando converter minha tese para pdfLaTeX, já que latex+ dvipsse comporta feio quando se trata de quebrar URLs (muito longos)... Estou usando o TeXLive 2012 atualizado no Linux.

O único problema (até agora) é que eu usei muito pstricksos pacotes relacionados e não consigo fazê-los funcionar bem pdfLaTeX(veja minhas fotos) ao interagir entre diferentes pspictureambientes (também usando isso às vezes para ter texto diretamente relacionado a fotos abaixo):


latex+ dvips+ ps2pdf(gs)

látex


pdflatex(falta a seta)

pdflatex


Código para o exemplo acima:

\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}

Responder1

Vários pspictureambientes como parágrafos podem ser encapsulados pelo postscriptambiente:

\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}

que será tratado como uma única imagem. Minha pdflatexsaída:

insira a descrição da imagem aqui

Dentro do postscriptambiente pode haver qualquer coisa, exceto uma quebra de página. Será sempre tratado como um gráfico que é salvo em <file>-pics.pdfuma página por imagem (se você tiver mais ambientes).

Responder2

Método 1 (se você insiste em usar pdflatex)

Quando usamos o pdflatex para compilar o código PSTricks, os nós devem estar na mesma página física do arquivo PDF auxiliar produzido nos bastidores.

Seu código original faz com que a primeira figura e a segunda sejam separadas em páginas físicas diferentes. Ou seja, o primeiro está na página xe o outro está na página yonde x=/=y.

Para colocá-los na mesma página física, podemos colocar ambos em outra pspicturecomo o container. Veja meu código abaixo para obter detalhes.

\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}

Método 2 (se você estiver satisfeito em usar xelatex)

Sem modificação no seu código original, basta compilá-lo com xelatex. Feito!

informação relacionada