我有一些常量以及宏需要为 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
保存了所有本地内容。