如何在没有 \pstheader 的情况下定义全局常量或全局 RPN 函数?

如何在没有 \pstheader 的情况下定义全局常量或全局 RPN 函数?

我想放

\pstVerb
{
    true setglobal
    globaldict begin
    /side 4 def
    /potocar {2 copy cos mul 3 1 roll sin mul} bind def
    end
    false setglobal
}

在序言中而不是在中,pspicture以使其成为全局的。

\documentclass[12pt]{beamer}

\usepackage{pst-eucl}

\usepackage[active,tightpage]{preview}
\PreviewBorder=12pt
\PreviewEnvironment{pspicture}

\pstVerb
{
    true setglobal
    globaldict begin
    /side 4 def
    /potocar {2 copy cos mul 3 1 roll sin mul} bind def
    end
    false setglobal
}

\begin{document}

\begin{frame}
\begin{pspicture}(-0.2,-0.2)(8,5)
\pstGeonode[PosAngle={180,225,-45,0},CurveType=polygon]
    (!0 side){A}
    (!0 0){B}
    (!80 sin 2 exp side mul 40 sin div 70 sin div 0){C}
    (!80 sin side mul 30 sin div 20 potocar){D}\pause

\psset{linecolor=red}
\pstLineAB{A}{D}\pause
\pstLineAB{B}{D}\pause

\psset
{
    linecolor=magenta,
    linewidth=0.5\pslinewidth,
    arcsep=\pslinewidth,
    arrows=<->,
    MarkAngleRadius=1.0,
    LabelSep=0.75,
}

\tiny
% A
\pstMarkAngle{B}{A}{D}{$\theta$}\pause
% B
\pstMarkAngle{C}{B}{D}{$20^\circ$}\pause
% D
\pstMarkAngle{B}{D}{C}{$50^\circ$}\pause
\pstMarkAngle{A}{D}{B}{$30^\circ$}
\end{pspicture}

\end{frame}
\end{document}

我问亚历克斯关于它一条评论, 他回应了但似乎不起作用。我在dvips阶段或ps2pdf阶段中收到编译错误,提示“/undefined in side”。我没有检查哪个阶段产生了错误,但latex成功编译了它。

答案1

preview是罪魁祸首。它似乎丢弃了任何外部的东西\PreviewEnvironmentpspicture在本例中),不让它们进入 Postscript 输出。我检查了 PS 输出。side和的定义potocar没有进入其中。如果你删除preview相关的行,一切都会好起来。

相关内容