问题

问题

我有一些常量以及宏需要为 PostScript 定义。

\pstVerb
{   
  /a {3} def
  /b {2} def
}

有三个可能的地方:

  • 在序言中(A)。
  • 在里面document但在外面pspicture(B)。
  • pspicture(C)中。

\documentclass[border=15pt,pstricks]{standalone}
% A
\begin{document}
% B
\begin{pspicture}[showgrid](-4,-4)(4,4)
% C
\psellipse(0,0)(!a b)
\end{pspicture}
\end{document}

对于选项 A 和 B,我得到了如下不必要的空格。

在此处输入图片描述

但对于选项C,

\documentclass[border=15pt,pstricks]{standalone}
\begin{document}
\begin{pspicture}[showgrid](-4,-4)(4,4)
\pstVerb
{   /a {3} def
/b {2} def
}%
\psellipse(0,0)(!a b)
\end{pspicture}
\end{document}

白色空间不再存在。

在此处输入图片描述

问题

我们应该在哪里使用\pstVerb

答案1

你可以在你想要的地方使用它,但你必须注意不要覆盖现有的定义。/a并且/b已经以多种方式定义了内部函数。

始终使用至少有两个字母的变量或使用自己的字典:

\documentclass[border=15pt,pstricks]{standalone}
\pstVerb{   
    /aA 3 def
    /bB 2 def
}
\pstVerb{
  /myDict 2 dict def % define a local dictionary with two variables
  myDict begin
    /a 3 def
    /b 2 def
  end
}

\begin{document}
\begin{pspicture}[showgrid](-4,-4)(4,4)
    \psellipse(0,0)(! myDict begin a b end )
    \psellipse(0,1)(! aA bB )
\end{pspicture}
\end{document}

对于 C 来说它可以起作用,因为pspicture 保存了所有本地内容。

相关内容