El siguiente ejemplo trivial ilustra mi objetivo de crear un operador de conversión ptcm
( pt
to cm
). Desafortunadamente, produce errores en el mundo TeX a diferencia del mundo PS.
\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}
Los mensajes de error son:
! 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}
¿Cómo crear un nuevo operador de conversión?
Respuesta1
<argument> /ptcm {\pst
@number\psunit \space div} bind def
le muestra que \pst@number
ha sido analizado \pst @number
porque @
no es una letra.
Beamer lee los cuerpos de los fotogramas como un argumento macro, por lo que es necesario colocarlos \makeatletter
antes del fotograma.