将 pschart 与 LaTeX 结合使用时出错

将 pschart 与 LaTeX 结合使用时出错

请考虑以下示例:

\documentclass{article}

\usepackage{auto-pst-pdf,pstricks-add}
\usepackage{siunitx}

\begin{document}

\begin{figure}
 \centering
 \psset{
   unit=4cm,
   nodesepA=5pt,
   nodesepB=-5pt
 }
  \begin{pspicture}(9,9)
   \psChart[
     userColor={blue!60,yellow!60,green!60,red!60},
     chartNodeO=1.25,
     shadow=true,
     shadowsize=5pt
   ]{1082, 1572, 2336, 643}{}{}
   \rput(psChartI1){\SI{1082}{\square\km}}
   \ncline{psChartO1}{psChart1}
   \nput{0}{psChartO1}{Rism. med}
   \rput(psChartI2){\SI{1572}{\square\km}}
   \ncline{psChartO2}{psChart2}
   \nput{90}{psChartO2}{Rism. uden}
   \rput(psChartI3){\SI{2336}{\square\km}}
   \ncline{psChartO3}{psChart3}
   \nput{270}{psChartO3}{Skov m.m.}
   \rput(psChartI4){\SI{643}{\square\km}}
   \ncline{psChartO4}{psChart4}
   \nput{0}{psChartO4}{Andet}
  \end{pspicture}
\end{figure}

\end{document}

如何使用 使其可编译latex?(如果我使用pdflatex-shell-escape则一切都很好。)

更新

latex使用--> dvips-->时,以下操作有效ps2pdf

\documentclass{article}

\usepackage{pstricks-add}
\usepackage{siunitx}

\begin{document}

\begin{figure}
 \centering
 \psset{
   unit=4cm,
   nodesepA=5pt,
   nodesepB=-5pt
 }
\fbox{%
  \begin{pspicture}(-0.98,-1.21)(1.44,1.17)
   \psChart[
     userColor={blue!60,yellow!60,green!60,red!60},
     chartNodeO=1.25,
     shadow=true,
     shadowsize=5pt
   ]{1082, 1572, 2336, 643}{}{}
   \rput(psChartI1){\SI{1082}{\square\km}}
   \ncline{psChartO1}{psChart1}
   \nput{0}{psChartO1}{Rism. med}
   \rput(psChartI2){\SI{1572}{\square\km}}
   \ncline{psChartO2}{psChart2}
   \nput{90}{psChartO2}{Rism. uden}
   \rput(psChartI3){\SI{2336}{\square\km}}
   \ncline{psChartO3}{psChart3}
   \nput{270}{psChartO3}{Skov m.m.}
   \rput(psChartI4){\SI{643}{\square\km}}
   \ncline{psChartO4}{psChart4}
   \nput{0}{psChartO4}{Andet}
  \end{pspicture}
}
\end{figure}

\end{document}

用于\fbox找到边界框的正确坐标。

答案1

默认情况下使用auto-pst-pdf裁剪创建的图像,这就是为什么环境指定正确的边界框并不重要的原因pspicture。该命令\psset用于 pspicture因此不予考虑auto-pst-pdf

latex使用auto-pst-pdf之前的所有设置时pspicture,您将得到一个 (4*9,4*9) 的图像,这太大了。它会移动到下一页,但auto-pst-pdf只使用第一页,它是空的。将的设置\psset放入pspicture环境中或放入全部进入环境postscript

如果您想使用(9,9)边界框,请使用

\begin{figure}
 \centering
  \begin{pspicture}(9,9)
  \rput(4.5,4.5){%
   \psset{unit=4cm,nodesepA=5pt,nodesepB=-5pt}
   \psChart[
    [ ... ] 
   \nput{0}{psChartO4}{Andet}}% end of \rput
  \end{pspicture}
[ ... ]

答案2

默认情况下它会打印页面外的内容,但如果将单位从 4cm 更改为 2cm,则会得到:

在此处输入图片描述

\documentclass{article}

\usepackage{pstricks-add}
\usepackage{siunitx}

\begin{document}

\begin{figure}
 \centering
 \psset{
   unit=2cm,%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   nodesepA=5pt,
   nodesepB=-5pt
 }
  \begin{pspicture}(9,9)
   \psChart[
     userColor={blue!60,yellow!60,green!60,red!60},
     chartNodeO=1.25,
     shadow=true,
     shadowsize=5pt
   ]{1082, 1572, 2336, 643}{}{}
   \rput(psChartI1){\SI{1082}{\square\km}}
   \ncline{psChartO1}{psChart1}
   \nput{0}{psChartO1}{Rism. med}
   \rput(psChartI2){\SI{1572}{\square\km}}
   \ncline{psChartO2}{psChart2}
   \nput{90}{psChartO2}{Rism. uden}
   \rput(psChartI3){\SI{2336}{\square\km}}
   \ncline{psChartO3}{psChart3}
   \nput{270}{psChartO3}{Skov m.m.}
   \rput(psChartI4){\SI{643}{\square\km}}
   \ncline{psChartO4}{psChart4}
   \nput{0}{psChartO4}{Andet}
  \end{pspicture}
\end{figure}

\end{document}

答案3

\psset{unit=<length>}对于这种情况,如果我们把 放在之后会更容易\pspicture。如果你把它放在 之前\pspicture,那么 的坐标\pspicture必须用坏的数字,您可能无法showgrid漂亮地显示网格。

\documentclass[pstricks]{standalone}
\usepackage{pstricks-add}
\usepackage{siunitx}

\begin{document}
\begin{pspicture}(-2.2,-2.8)(4,2.7)
    \psset
    {
        unit=2cm,
        nodesepA=5pt,
        nodesepB=-5pt,
    }
    \psChart[
        userColor={blue!60,yellow!60,green!60,red!60},
        chartNodeO=1.25,
        shadow=true,
        shadowsize=5pt,
    ]{1082, 1572, 2336, 643}{}{}
    \rput(psChartI1){\SI{1082}{\square\km}}
    \ncline{psChartO1}{psChart1}
    \nput{0}{psChartO1}{Rism. med}
    \rput(psChartI2){\SI{1572}{\square\km}}
    \ncline{psChartO2}{psChart2}
    \nput{90}{psChartO2}{Rism. uden}
    \rput(psChartI3){\SI{2336}{\square\km}}
    \ncline{psChartO3}{psChart3}
    \nput{270}{psChartO3}{Skov m.m.}
    \rput(psChartI4){\SI{643}{\square\km}}
    \ncline{psChartO4}{psChart4}
    \nput{0}{psChartO4}{Andet}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容