PSTricks 和 LaTeX 與 pdfLaTeX

PSTricks 和 LaTeX 與 pdfLaTeX

我正在嘗試將我的論文轉換為pdfLaTeX,因為latex+dvips在破壞(很長)URL 時表現得很醜......我在 Linux 上使用最新的 TeXLive 2012。

唯一的問題是(到目前為止),我大量使用了相關的包,並且在不同環境之間交互時pstricks我無法讓它們很好地工作(參見我的圖片) (有時也使用這個來讓文本直接與圖片如下):pdfLaTeXpspicture


latex+ dvips+ ps2pdf(GS)

乳膠


pdflatex(箭頭缺失)

pdf乳膠


上面例子的程式碼:

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

答案1

環境可以封裝多個pspicture環境作為段落postscript

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

將作為單一圖像處理。我的pdflatex輸出:

在此輸入影像描述

環境內部postscript可以是任何東西,除了分頁符號。它將始終作為保存在 中的圖形進行處理<file>-pics.pdf,每個圖像一頁(如果您有更多環境)。

答案2

方法1(如果你堅持使用pdflatex)

當我們使用pdflatex編譯PSTricks程式碼時,節點必須位於幕後產生的輔助PDF檔案的同一實體頁面中。

您的原始程式碼使第一個圖形和第二個圖形在不同的實體頁面中分開。即,第一個位於 page 上x,另一個位於 page ywhere上x=/=y

為了使它們位於同一個實體頁面上,我們可以將它們放在另一個pspicture作為容器中。有關詳細信息,請參閱下面的我的程式碼。

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

方法 2(如果您樂意使用 xelatex)

無需修改原始程式碼,只需使用xelatex.完畢!

相關內容