Das folgende triviale Beispiel veranschaulicht mein Ziel, einen Konvertierungsoperator ptcm
( pt
in cm
) zu erstellen. Leider erzeugt es in der TeX-Welt im Gegensatz zur PS-Welt Fehler.
\documentclass{beamer}
\usepackage{pstricks}
\usepackage[active,tightpage]{preview}
\PreviewEnvironment{pspicture}
\PreviewBorder=12pt
\SpecialCoor
\begin{document}
\begin{frame}
\begin{pspicture}[showgrid=top](4,4)
\makeatletter
\pstVerb{/ptcm {\pst@number\psunit\space div} bind def}
\makeatother
\psline(!4 12 ptcm sub 0)
\end{pspicture}
\end{frame}
\end{document}
Die Fehlermeldungen lauten:
! Undefined control sequence.
<argument> /ptcm {\pst
@number\psunit \space div} bind def
l.17 \end{frame}
?
! Emergency stop.
<argument> /ptcm {\pst
@number\psunit \space div} bind def
l.17 \end{frame}
Wie erstelle ich einen neuen Konvertierungsoperator?
Antwort1
<argument> /ptcm {\pst
@number\psunit \space div} bind def
zeigt Ihnen, dass die \pst@number
Analyse „ \pst @number
weil“ @
kein Buchstabe ist.
Beamer liest Frame-Körper als Makroargument, daher müssen Sie sie \makeatletter
vor den Frame setzen.