Como criar um novo operador de conversão?

Como criar um novo operador de conversão?

O exemplo trivial a seguir ilustra meu objetivo de criar um operador de conversão ptcm( ptto cm). Infelizmente, produz erros no mundo TeX, em oposição ao 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}

As mensagens de erro são:

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

Como criar um novo operador de conversão?

Responder1

<argument> /ptcm {\pst 
                       @number\psunit \space div} bind def

mostra que \pst@numberfoi analisado como \pst @numberporque @não é uma carta.

O Beamer lê os corpos dos quadros como um argumento macro, então você precisa colocá-los \makeatletterantes do quadro.

informação relacionada