psscaleboxto 中的算术溢出

psscaleboxto 中的算术溢出

以下示例使用\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}

在此处输入图片描述

相关内容