問題

問題

我有一些要為 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 保存了所有本地內容。

相關內容