¿Cómo crear un nuevo operador de conversión?

¿Cómo crear un nuevo operador de conversión?

El siguiente ejemplo trivial ilustra mi objetivo de crear un operador de conversión ptcm( ptto 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@numberha sido analizado \pst @numberporque @no es una letra.

Beamer lee los cuerpos de los fotogramas como un argumento macro, por lo que es necesario colocarlos \makeatletterantes del fotograma.

información relacionada