我想调用pstricks 中的myfun
一个节点mynode
,但不知道如何处理。以下是示例:
\documentclass[preview,border=10pt]{standalone}
\usepackage{pstricks-add}
\def\myfun(#1,#2)
{
\psline[linewidth=0.75\pslinewidth]{<->}(! #1 0.25 sub #2 0.1 add)(! #1 0.25 add #2 0.1 add)
}
\begin{document}
\begin{pspicture}[showgrid](2,2)
% my implementation
\myfun(1,1)
% what I want: (i) define a node; (ii) draw \myfun around it
\pnode(1,1){mynode}
% but how to define `\myfun(mynode)`?
\end{pspicture}
\end{document}
答案1
以下示例更新了\myfun
工作方式。它没有明确采用参数,而是(x,y)
采用更通用的(<coordinate>)
参数,可以是节点、x,y
坐标、r;t
坐标或其他任何参数。从根本上讲,更新会MyNoDe
为传递的坐标参数设置一个新节点,并用于\psGetNodeCenter
提取MyNoDe.x
(x
坐标)和MyNoDe.y
(y
-坐标)。
\documentclass{article}
\usepackage{pst-node}
\def\myfun(#1){
\pnode(#1){MyNoDe}% Set temporary node
\psline
[linewidth = 0.75\pslinewidth]% options
{<->}% style
(! \psGetNodeCenter{MyNoDe} MyNoDe.x MyNoDe.y)% from
(! \psGetNodeCenter{MyNoDe} MyNoDe.x 0.25 add MyNoDe.y 0.1 add)% to
}
\begin{document}
\begin{pspicture}[showgrid](2,2)
% my implementation
\myfun(1,1)
% what I want: (i) define a node; (ii) draw \myfun around it
\pnode(0.5,1){mynode}
\myfun(mynode)
\myfun(1.5;30)
\end{pspicture}
\end{document}
我已经更新了\psline
内部\myfun
以拥有不同的from
和to
节点;您的示例将绘制一个零长度的\psline
。
答案2
\documentclass[preview,border=10pt]{standalone}
\usepackage{pstricks-add}
\def\myfun(#1){%
\pcline[linewidth=0.75\pslinewidth,nodesep=2.5mm,offset=0.25]{<->}(#1)(#1)}
\begin{document}
\begin{pspicture}[showgrid](2,2)
\pnode(1,1){mynode}
\myfun(mynode)
\end{pspicture}
\end{document}
或者作为替代方案:
\def\myfun(#1){%
\rput(#1){%
\psline[linewidth=0.75\pslinewidth]{<->}(-0.25,0.1)(0.25,0.1)}}