为了更加引人注目,我提出我的评论这是这里的一个新问题。
背景:
\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}