为什么 \uput 的 labelsep 在以 RPN 表示时不起作用?

为什么 \uput 的 labelsep 在以 RPN 表示时不起作用?

为了更加引人注目,我提出我的评论这是这里的一个新问题。

背景:

\uput使用以下语法

在此处输入图片描述

接受 5 个参数。我已测试了后四个参数,它们可以在 RPN 中表示。第一个参数是唯一一个无法在 RPN 中表示的参数。

问题:

为什么 的第一个参数\uput无法在 RPN 中表示?这是一个错误吗?您可以尝试\uput{! 2 sqrt}[!0]{!0}(!0 0){Hello World}Hello World \sqrt{2}单位长度放在原点的右侧(0,0),但会失败。

答案1

这不是关于 RPN 的问题。这是关于能否通过 传递 Postscript 命令的问题\uput。这似乎不起作用。我完全不知道为什么。更熟悉 内部结构的人pstricks可以解释这一点。

但是,我假设您希望能够根据上下文决定文本的放置方式(如果不是,则只需写入实际值)。您可以使用一些expl3魔法来完成此操作,如以下代码所示:

\documentclass{article}
%..%
\usepackage{xparse}
\ExplSyntaxOn
\DeclareDocumentCommand{\fpsqrt}{ m }
    {
        \fp_eval:n {  #1 ^ ( 1 / 2 ) }        
    }
\ExplSyntaxOff
%..%
\usepackage{pstricks}
\psset{unit=0.5cm}
\pagestyle{empty}
\begin{document}

$\sqrt{2}=\fpsqrt{2}$

\begin{pspicture}[showgrid=true](-10,-10)(10,10)
    \uput{ \fpsqrt{2} }[0]{30}( 0, 0){Hello World}
\end{pspicture}

\end{document}

这导致

在此处输入图片描述

答案2

对于最新的pstricks包,labelsep可以\uput接受 RPN 表达式(无单位)并且它采用活动单位。

\documentclass[pstricks,border=12pt]{standalone}
\SpecialCoor
\begin{document}
\begin{pspicture}[showgrid](-1,-1)(3,3)
    \pscircle(1,1){!2 sqrt}
    \uput{!2 sqrt}[45](1,1){\qdisk(0,0){2pt}}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容