当 \uput 包含非零维对象时,它可以模仿 \rput 吗?

当 \uput 包含非零维对象时,它可以模仿 \rput 吗?

零维物体

对于零维物体,\uput可以\rput按照以下示例进行模仿。

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

\begin{document} 

\begin{pspicture}[showgrid=bottom](6,6) 
% the first angle in [] will be ignored when the labelsep = 0.
\uput{0}[0]{0}(2,3){\pscircle(1,1){1}}
\uput{0}[45]{45}(2,3){\pscircle[linecolor=red](1,1){1}}
\uput{0}[90]{90}(2,3){\pscircle[linecolor=blue](1,1){1}}
\end{pspicture} 

\begin{pspicture}[showgrid=bottom](6,6) 
\rput{0}(2,3){\pscircle(1,1){1}}
\rput{45}(2,3){\pscircle[linecolor=red](1,1){1}}
\rput{90}(2,3){\pscircle[linecolor=blue](1,1){1}}
\end{pspicture} 

\end{document}

非零维物体

以下是我尝试用 模仿\rput。不幸的是,我失败了,放弃了!使用 时\uput我无法将 的中心移动\object到,而使用 可以做到这一点。(2,3)\uput\rput

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

\newcommand\object[1][black]{%
\pspicture(3,2)
\psframe*[linecolor=#1](3,2)
\endpspicture
}
\begin{document} 

\begin{pspicture}[showgrid=bottom](6,6) 
\uput{0}[0]{0}(2,3){\object}
\uput{1.5}[0]{0}(2,3){\object[yellow]}
\uput{-1.5}[0]{0}(2,3){\object[blue]}
\end{pspicture} 

\begin{pspicture}[showgrid=bottom](6,6) 
\rput{0}(2,3){\object}
\end{pspicture} 

\end{document}

你有什么主意吗?

答案1

不可以。一般来说这是不可能的,而且从定义上来说也没有意义。

无法通过调整和\rput{0}(2,3){\object}来模仿。\uput{<labelsep>}[<direction angle>]{0}(2,3){\object}<labelsep><direction angle>

但可能存在一种特殊情况,

\begin{pspicture}[showgrid=bottom](6,6) 
\uput{0}[0](2,3){\object}
\end{pspicture} 

\begin{pspicture}[showgrid=bottom](6,6) 
\rput[l]{0}(2,3){\object}
\end{pspicture} 

答案2

只是为了向已接受的答案添加额外的信息。我几秒钟前才知道。

\nput(而不是\uput)可以模仿\rput非零维对象的作用(问题中的第二种情况)。

\documentclass[pstricks,border=12pt]{standalone} 
\usepackage{pst-node}
\newcommand\object[1][black]{%
\pspicture(3,2)
\psframe*[linecolor=#1](3,2)
\endpspicture
}
\begin{document} 

\begin{pspicture}[showgrid=bottom](6,6)
\pnode(2,3){A}
\nput[rot=0,labelsep=-1.5]{0}{A}{\object[blue]}
\end{pspicture} 

\begin{pspicture}[showgrid=bottom](6,6) 
\rput{0}(2,3){\object}
\end{pspicture} 

\end{document}

相关内容