Pregunta

Pregunta

Tengo algunas constantes y macros que definir para PostScript.

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

Hay tres lugares posibles:

  • En el preámbulo (A).
  • Dentro documentpero fuera pspicture(B).
  • pspicture).

\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}

Para las opciones A y B, obtuve espacios en blanco innecesarios de la siguiente manera.

ingrese la descripción de la imagen aquí

Pero para la opción 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}

los espacios en blanco ya no salen.

ingrese la descripción de la imagen aquí

Pregunta

¿Dónde deberíamos utilizar \pstVerb?

Respuesta1

Puedes usarlo donde quieras, pero debes prestar atención a no sobrescribir las definiciones existentes. /ay /bya están definidos de varias maneras para funciones internas.

Utilice siempre variables con al menos dos letras o utilice un diccionario propio:

\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}

Para C funciona porque pspicture contiene todos los locales.

información relacionada