以下简单示例说明了我创建转换运算符ptcm
( pt
to cm
) 的目标。不幸的是,与 PS 世界不同,它在 TeX 世界中会产生错误。
\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}
错误信息如下:
! 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}
如何创建一个新的转换运算符?
答案1
<argument> /ptcm {\pst
@number\psunit \space div} bind def
显示\pst@number
已经被解析为\pst @number
因为@
不是字母。
Beamer 将框架主体作为宏参数读取,因此您需要将其放在\makeatletter
框架之前。