Frage

Frage

Ich muss einige Konstanten und Makros für PostScript definieren.

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

Es gibt drei mögliche Orte:

  • In der Präambel (A).
  • Drinnen document, aber draußen pspicture(B).
  • In 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}

Bei Option A und B habe ich die folgenden unnötigen Leerzeichen erhalten.

Bildbeschreibung hier eingeben

Aber für Option 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}

die weißen Räume sind nicht mehr vorhanden.

Bildbeschreibung hier eingeben

Frage

Wo sollten wir verwenden \pstVerb?

Antwort1

Sie können es verwenden, wo Sie möchten, müssen jedoch darauf achten, dass Sie vorhandene Definitionen nicht überschreiben. Für interne Funktionen sind /adiese bereits auf verschiedene Weise definiert./b

Verwenden Sie immer Variablen mit mindestens zwei Buchstaben oder nutzen Sie ein eigenes Wörterbuch:

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

Für C funktioniert es, weil pspicture alles lokal gilt.

verwandte Informationen