以下示例使用\psscaleboxto
会产生错误:
“我无法执行该乘法或除法,因为结果超出范围。”
为什么会发生这种情况?
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}(20,20)
\psscaleboxto(1,1) {
\psframe(0,0)(5,5)
}
\end{pspicture}
\end{document}
答案1
这行不通,因为所有 PSTricks 对象在 TeX 中的宽度和高度都是 0pt。这就是为什么你不能将“无”扩展为 1x1 的原因。这将起作用:
\documentclass{article}
\usepackage{pstricks}
\begin{document}
\begin{pspicture}[showgrid](10,10)
\psscaleboxto(1,1){\rule{5cm}{5cm}}
\psframe*[unit=0.2,linecolor=red](5,5)(10,10)
\end{pspicture}
\end{document}
\rule
在 TeX 级别上已知宽度和高度。
您可以使用默认值\resizebox
,或者\psscalebox
如果您有pspicture
环境:
\documentclass{article}
\usepackage{pstricks,graphicx}
\begin{document}
\resizebox{4cm}{2cm}{%
\begin{pspicture}[showgrid](10,10)
\psframe*[linecolor=red](5,5)(10,10)
\psdot[dotstyle=x,dotscale=5](3,3)
\end{pspicture}%
}
\qquad
\psscaleboxto(2,4){%
\begin{pspicture}[showgrid](10,10)
\psframe*[linecolor=red](5,5)(10,10)
\psdot[dotstyle=x,dotscale=5](3,3)
\end{pspicture}%
}
\end{document}