Perché non TikZ? Tra parentesi così si evita il problema di definire a mano la bounding box (quella che hai usato nell’esempio è esagerata per disegnare una freccia da [tt](0,0)[/tt] a [tt](0,3)[/tt]).
Nella mia implementazione puoi sfruttare delle chiavi per rendere più chiaro il lavoro (personalmente trovo PSTricks poco intuitivo con mille mila argomenti ai comandi: le opzioni in TikZ agevolano notevolmente la lettura del codice quando serve andare a riprenderlo): `
\documentclass[tikz,border=10pt]{standalone}
\usepackage{tikz}
\tikzset{origin/.store in=\origin,
origin={(0,0)},
direction/.store in=\direction,
direction=90,
segment length/.store in=\seglen,
segment length=3cm,
module label/.store in=\modplace,
module label=above,
origin label/.store in=\orplace,
origin label=below,
draw custom arrow/.code={
\begin{scope}[shift={\origin}]
\draw[-stealth] (0,0) node[label={\orplace}:\origin]{} –(\direction:\seglen) node[\modplace]{\seglen};
\end{scope}
}
}
\makeatletter%
\def\frecciasu{\@ifnextchar[{\@withopt}{\@withoutopt}}%
\def\@withopt[#1]{\node[#1,draw custom arrow]}%
\def\@withoutopt{\node[draw custom arrow]}%
\makeatother%
\begin{document}
\tikz\frecciasu{};
\tikz\frecciasu[origin={(2,1)},direction=45,segment length=2cm,origin label=below left,module label=midway,sloped,above]{};
\end{document}
`
[attachment=852]ScreenShot2013-12-06at5.55.55PM.png[/attachment]
*Nota (per successivo debug): sembra impossibile che [tt]origin label=below left,module label=midway,sloped,above[/tt] funzioni correttamente e senza parentesi. Probabilmente le opzioni vengono prese tutte ugualmente, ma serve verificare se funziona solo perché non ci sono altre “custom option” dopo.
Ciao
Claudio