请考虑以下示例:
\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}