TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am trying to make a diagram where two arrows will be crossing one arrow. I have the current code for putting in one hole:

 \Omega \ar[r]|(.35)\hole^-{d} \ar[d]^-{e_*}

which seems to work just fine. But I can't quite seem to find a way to put in multiple holes using this command, and I haven't been able to figure out the (seemingly) more complicated approach using "Paths". What can I do? Thanks!

Edit: I also need to be able to position the hole where I need it, because the arrows passing through are curved and coming from the same source. Here is the code so far:

\cdots \ar[r]& \Omega_c^{k-1}(\bbR^n\times\bbR)\ar[r]^-{d} \ar[d]^-{\pi_*} \ar @/_15pt/ [ddl]_(.25)K \ar @/_35pt/ [dd]_(.7){\id} & \Omega_c^{k}(\bbR^n\times\bbR)\ar[r]^-{d} \ar[d]^-{\pi_*} \ar @/_10pt/ [ddl]_(.25)K \ar @/_35pt/ [dd]_(.7){\id}& \Omega_c^{k+1}(\bbR^n\times\bbR)\ar[r]^-{d} \ar[d]^-{\pi_*} \ar @/_10pt/ [ddl]_(.25)K \ar @/_35pt/ [dd]_(.7){\id}& \cdots \\
\cdots \ar[r]|(.5)\hole& \Omega_c^{k-2}(\bbR^n)\ar[r]|(.35)\hole^-{d} \ar[d]^-{e_*} & \Omega_c^{k-1}(\bbR^n)\ar[r]|(.35)\hole^-{d} \ar[d]^-{e_*}& \Omega_c^{k}(\bbR^n)\ar[r]^-{d} \ar[d]^-{e_*}& \cdots \\
\cdots \ar[r]& \Omega_c^{k-1}(\bbR^n\times\bbR)\ar[r]^-{d} & \Omega_c^{k}(\bbR^n\times\bbR)\ar[r]^-{d} & \Omega_c^{k+1}(\bbR^n\times\bbR)\ar[r]^-{d} & \cdots
share|improve this question
up vote 4 down vote accepted

You can add multiples holes by repeating the command. Ex :


P.S. xypic is capable to compute the intersection with other (straight) lines with the command


Some "complete" example :

A\ar[d] & B\ar[d] & C\ar[d] & D\ar[d]\\
share|improve this answer
Beautiful! Thanks so much. :) – Glen M Wilson Nov 1 '11 at 14:05
The first suggestion does the trick. I was trying to repeat the command like: \ar[r]|(.35)\hole|(.65)\hole^{d} which was not working. Thanks again! – Glen M Wilson Nov 1 '11 at 14:15
@GlenMWilson For me \ar[r]|(.35)\hole|(.65)\hole^{d} works fine. – Matsaya Nov 1 '11 at 14:24
Hmm... I'm using xypic version 3.7. Maybe that is to blame. I should probably update my TeX distribution one of these days. Also, I'm compiling with xelatex. I'll try just plain latex and see if that fixes things. – Glen M Wilson Nov 1 '11 at 14:52

One thing you should also note: the multiple holes should be writen in the order as the arrow shows. So this code does not work:


This includes the holes whose positions are given by intersection !{[?];[?]}, or the default (0.5) position of |{Label}.

share|improve this answer

Your Answer


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.