使用 ([...]node) 语法时,如何将 PostScript 表达式传递给 nodesep 和 offset?

使用 ([...]node) 语法时,如何将 PostScript 表达式传递给 nodesep 和 offset?

引自pst-news13.pdf第 3 页:

labelsep的第一个可选参数\uput。现在可以使用 PostScript 符号表示此长度,例如{! 45 sin 3 mul}。然后使用 时处于活动状态的单位\uput。对于单位,不允许使用 PS 符号,否则会导致错误!

如果labelsep(是长度键)可以接受 RPN 表达式,为什么nodesepoffset(也是长度键)不能接受 RPN 表达式?

对于当前的实现,angle可以用RPN来表示,例如angle={!30 60 add}

以下是为您提供的 MWE。

\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pstricks-add}

\begin{document}
    \begin{pspicture}[showgrid](3,3)
        \pnode{A}
        \pnode
        [!
            60 cos 3 mul
            60 sin 3 mul
        ](A){B}
        \psline{->}(A)(B)
    \end{pspicture}

%   \begin{pspicture}[showgrid](3,3)
%       \pnode{A}
%       \psline(A){->}([nodesep=,offset=]A)
%   \end{pspicture}
\end{document}

答案1

nodesepoffset是长度,并且必须有一个单位,至少是当前的单位。

\documentclass{article}
\usepackage{pst-node}

\begin{document}
    \begin{pspicture}[showgrid](3,3)
        \pnode{A}
        \pnode
        [!
            60 cos 3 mul
            60 sin 3 mul
        ](A){B}
        \psline{->}(A)(B)
    \end{pspicture}

\bigskip
   \begin{pspicture}[showgrid](3,3)
       \pnode{A}
       \psline{->}(A)(!\psGetNodeCenter{A} 
         A.x 60 cos 3 mul add 
         A.y 60 sin 3 mul add)
   \end{pspicture}

\end{document}

在此处输入图片描述

相关内容