[Xy-pic] xypic bug

Michael Barr barr@barrs.org
Sat, 1 Dec 2001 07:39:41 -0500 (EST)


It is definitely a bug.  Kris Rose is now gainfully employed and rarely
answers questions.  Ross Moore is good about answering and tells me that
in his unreleased version the bug is fixed.  But he didn't reply when I
asked him about releasing it.  Meantime, the way around it is to keep
those intersecting lines short.  That is, piece them together from shorter
segments.  I don't recall, but there may be an example of this in my
documentation to diagxy, which is a front end for xypic.  The latest
version is available at ftp.math.mcgill.ca/pub/barr/diagxy.zip.

Michael Barr

> Date: Fri, 30 Nov 2001 12:17:09 -0600 (CST)
> From: James Borger <borger@math.uchicago.edu>
> To: <xy-pic@tug.org>
> Subject: [Xy-pic] bug?
> 
> 
> Dear xy-pic-ers,
> 
> I've found what appears to be a bug in the way xy-pic handles 
> intersections of lines.  That said, I have pretty limited experience with 
> xy-pic, so the bug could easily be in me.
> 
> I want to typeset a three-dimensional commutative diagram and have some
> lines appear to pass under others.  The problem is that sometimes xy-pic
> draws only one of the two pieces of the lower line, which should be
> broken.  I had this problem once before and was able to work around it by
> changing things that I though should have no effect on the output.
> Unfortunately, I didn't save that example.
> 
> The misbehaving (LaTeX) code is below (in simplified form).  The arrow
> from J to K is the offending one.
> 
> Best,
> 
> Jim Borger
> 
> =======================================================================
> 
> \documentclass{amsart}
> \usepackage{amscd, amssymb}
> \usepackage[all]{xy}
> 
> \begin{document}
> 
> \[
> \begin{xy} <0pt,0pt>;<16mm,0mm>:<0mm,-7mm>::
>   (2,0) *+{A}="a",
>   (5,0) *+{B}="b",
>   (2,3) *+{C}="c",
>   (5,3) *+{D}="d",
>   (0,4) *+{E}="e",
>   (2,6) *+{F}="f",
>   (5,6) *+{G}="g",
>   (0,7) *+{H}="h",
>   (3,7) *+{I}="i",
>   (1,8) *+{J}="j",
>   (4,8) *+{K}="k",
>   (0,10) *+{L}="l",
>   (3,10) *+{M}="m",
>   \ar "a";"b"
>   \ar "c";"a"
>   \ar "d";"b"
>   \ar "e";"a"
>   \ar "f";"c"
>   \ar "f";"g" |!{"i";"d"}\hole
>   \ar "g";"d"
>   \ar "h";"e"
>   \ar "h";"i"
> 
>   \ar "i";"d"
>   \ar "f";"j" |!{"h";"i"}\hole
>   \ar "j";"k" |!{"m";"i"}\hole
>   \ar "k";"g"
>   \ar "l";"j"
>   \ar "l";"h"
>   \ar "l";"m"
>   \ar "m";"i"
>   \ar "m";"k"
> \end{xy}
> \]
> 
> \end{document}