Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I have an xymatrix in which two arrows cross each other, say

\xymatrix{ \ar[dr] &  \\ \ar[ur] & }

and I would like one arrow to cross over the other. I also want to to be able to do this without using knots; the reason is that I want to draw some diagrams where the arrows just intersect and some diagrams where they don't, and I'd prefer that they have a uniform look to them.

There is an example of how to do this in the xy-pic user's guide, but 1) I don't quite understand it, and 2) it seems to require that I thread a single arrow through multiple entries. I don't want to have to do that; I really just want two arrows, one of which crosses over the other.

I tried to give the "under" arrow an empty label, but that didn't work. Any ideas?

share|improve this question
add comment

2 Answers

up vote 9 down vote accepted

It's not so hard.

Dig a hole:

\xymatrix{ \ar[dr]|\hole &  \\ \ar[ur] & }

Calculate the intersection point and dig a hole:

\xymatrix{ \ar[drr]|!{[d];[r]}\hole & & \\ \ar[ur] & & }

enter image description here

share|improve this answer
    
@Stefan: Then use \xymatrix{ \ar[drr]|!{[d];[r]}\hole & & \\ \ar[ur] & & } –  Leo Liu Feb 5 '11 at 20:44
    
Sorry I removed my comment regarding manual adjustment right before you added yours. It's good to have a |!{...} notation example here now. –  Stefan Kottwitz Feb 5 '11 at 20:51
    
Great, thanks! Quick follow-up question: the diagonal arrows are showing up weirdly aliased in my PDF reader (Foxit). Is this a problem with my reader or should I be tweaking a TeX setting or what? –  Qiaochu Yuan Feb 5 '11 at 22:31
2  
@Qiaochu: Try \usepackage{xypdf}. –  Leo Liu Feb 6 '11 at 4:32
    
perfect! Thanks again! –  Qiaochu Yuan Feb 6 '11 at 12:16
add comment

There's a general trick, no matter if xy-pic or let's say TikZ is used. It also works with bent arrows, naturally.

  1. Draw the arrow which shall cross below
  2. Draw the arrow which shall cross above, but thick and in background color
  3. Draw the arrow which shall cross above again, but normally

For example:

\documentclass{article}
\usepackage[dvips,all]{xy}
\begin{document}
\xymatrix{ \ar[dr]& \\ \ar@*{[|(6)][white]}[ur]\ar[ur] & }
\end{document}

For line styles and color a capable driver is required. I used dvips.

enter image description here

share|improve this answer
    
In TikZ, it's OK. However, I don't think it is needed in Xy-pic. –  Leo Liu Feb 5 '11 at 20:27
    
@Leo: this way I don't need to take care where to put an empty break by \hole, such as in complex drawings with many arrows crossing, possibly even bent. –  Stefan Kottwitz Feb 5 '11 at 20:35
    
That's still not necessary. See "Exercise 6" of xyguide. –  Leo Liu Feb 5 '11 at 20:42
    
@Leo: I see what you mean, using the crossing notation. –  Stefan Kottwitz Feb 5 '11 at 20:46
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.