[Xy-pic] Loop arrow in xymatrix

Ross Moore ross.moore at mq.edu.au
Sat Jul 31 00:37:11 CEST 2010

Hi Vadim,

On 30/07/2010, at 1:29 AM, Vadim Radionov <vadim.radionov at gmail.com> wrote:

> Dear list members,
> I once again forgot how to use XYpic.  Can you help me with the following:
> \documentclass{amsart}
> \usepackage[arrow,matrix,curve,dvips]{xy}
> \begin{document}
>  \xymatrix{(6,3,2,4,1,5)
       \save !R \ar@(ul,ur) \restore
>  \ar[d]  \\ ( 4,2,5,1,6,3)  }
> \end{document}

That small change should get the arrow to start at the right edge of the wide object.
Or you don't need to go all the way to the edge: !R(.9) might be better, or use a smaller factor.

> This works. When I change \ar@(ul,ur) to \ar@(ur,dr), it does not.  Is it because most part of the arrow intersects with the cell?

Yes, because the arrow is assumed to start at the centre of the object.
This is not best, for self-arrows, when the object is quite wide.
But the \save...\restore mechanism lets you put arbitrary kernel coding to shift the current position to anywhere you like.

> In this case, how can i shift the loop arrow to the right?
> Thank you in advance,
> Vadim

Hope this helps.


More information about the xy-pic mailing list