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ßenpspicture
(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.
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.
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 /a
diese 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.