[Xy-pic] curved arrows and non-rectangular shapes

Ross Moore ross at ics.mq.edu.au
Sat Nov 15 08:52:49 CET 2003

Hello Stefan,

Thanks for the useful example, which has helped to pin-point
the bug, which has be suspected for some time.

The problem was due to the edge-type of the target node
being ignored when computing the spline-parameter value
of the edge-point along the curve, thus resulting in an
incorrect value being used.

Two small edits within  xycurve.tex  are sufficient
to patch the code to work correctly.

The (tar, gzip'd) archive:

http://www-texdev.ics.mq.edu.au/xypic/xymods.tgz

contains a corrected version of xycurve.tex
along with various other corrections to Xy-pic that
have been discovered since the 3.7 release.
(including those you mention below).

Hope this helps,

Ross Moore

On Fri, 14 Nov 2003, Stefan Fink wrote:

> Hi all,
>
> having the following code, I discovered a strange behavior of curved
> arrows pointing to elliptic shapes.
>
> \documentclass{article}
> \usepackage[all]{xy}
> \begin{document}
> \UseCurveFrames
> \begin{xy}
> ( 15, 40) *=<24mm,16mm>[o][F]\txt{a}="a" *\frm{.},
> ( 70, 60) *=<8mm>[F-]\txt{b}="b",
> \POS "b"  \ar              "a"|c
> \POS "b"  \ar @/_2ex/      "a"|d
> \POS "a"  \ar @{<-}@/^4ex/ "b"|e
> \POS "a"  \ar @/^6ex/      "b"|f
> \end{xy}
> \end{document}
>
> As you can see, straight arrows (c) and curved arrows starting at an
> elliptic shape (f) make no problems. But I wasn't able to draw an curved
> arrow (d) from b to a, which reaches the ellipse boundary. It always
> ends at the surrounding rectangular frame, even when it's not drawn (the
> frame).
> To workaround this problem, I used arrow e with replaced head and tail.
> It looks like what I wanted, but actually it points in the wrong direction.
> Of course this will be no solution, if you have two elliptic shapes
> pointing to each other.
> If I missed an essential issue in understanding arrows or if there's
> another way to solve this, please give me an hint.
>
> Besides, to use the option \UseCurveFrames you have to first bugfix
> xyframe.tex. Find the line
>
>    \def\UseCurveFrames{\xywithoption{curve}{\UseCurveframes@}}%
>
> and change it to
>
>    \def\UseCurveFrames{\xywithoption{curve}{\UseCurveFrames@}}%
>
> Second, don't use the misspelled \UseCurvedFrames as mentioned in the
> reference manual.
> I am using XY-pic version 3.7 (1999/02/16) - maybe it's just too old and
> the bugs are already fixed.
>
> Regards, Stefan.
>
>
> _______________________________________________
> xy-pic mailing list
> http://tug.org/mailman/listinfo/xy-pic
>