How to position hole in an arrow in xypic

I'd give a try to tikz-cd:

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[row sep=3em,column sep=1em]
&&&& T(U_1\cap U_2) \arrow[ddl,swap,"(\sigma_1)_*"] \arrow[ddr,"(\sigma_2)_*"] \\
& U_1\cap U_2 \arrow[ddl,swap,"\sigma_1"] \arrow[urrr,dashed,"D"] \\
&&& T(\mathbb{C}\setminus\{0\}) \arrow[rr,"\scriptscriptstyle\textit{bundle transition}"] &&
    T(\mathbb{C}\setminus\{0\}) \\
\mathbb{C}\setminus\{0\} \arrow[urrr,dashed,"D"] 
                         \arrow[rr,swap,"\scriptscriptstyle\textit{coordinate transition}"] &&
\mathbb{C}\setminus\{0\} \arrow[urrr,dashed,"D"]
  \arrow[uul,leftarrow,crossing over,"\sigma_2"]
\end{tikzcd}
\]
\end{document}

The trick is to draw the crossing over arrow later than the arrow it has to be crossed over (reversing the direction with leftarrow).

enter image description here

If you want the left triangle to be in the background, just change the arrow that must cross over:

\documentclass{article}
\usepackage{amsmath,amssymb}

\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[row sep=3em,column sep=1em]
&&&& T(U_1\cap U_2) \arrow[ddl,swap,"(\sigma_1)_*"] \arrow[ddr,"(\sigma_2)_*"] \\
& U_1\cap U_2 \arrow[ddl,swap,"\sigma_1"] \arrow[ddr,"\sigma_2"]
              \arrow[urrr,dashed,"D"] \\
&&& T(\mathbb{C}\setminus\{0\}) \arrow[rr,"\scriptscriptstyle\textit{bundle transition}"] &&
    T(\mathbb{C}\setminus\{0\}) \\
\mathbb{C}\setminus\{0\} \arrow[urrr,dashed,crossing over,"D"] 
                         \arrow[rr,swap,"\scriptscriptstyle\textit{coordinate transition}"] &&
\mathbb{C}\setminus\{0\} \arrow[urrr,dashed,"D"]
\end{tikzcd}
\]
\end{document}

enter image description here

An alternative form where it may be easier to guess the 3D aspect, with the bigger triangle in front.

\documentclass{article}
\usepackage{amsmath,amssymb}

\usepackage{tikz-cd}

\begin{document}
\[
\begin{tikzcd}[row sep=3em,column sep=1em]
& U_1\cap U_2 \arrow[ddl,swap,"\sigma_1"] \arrow[ddr,"\sigma_2"]
              \arrow[drrr,dashed,"D"] \\
&&&& T(U_1\cap U_2) \arrow[ddr,"(\sigma_2)_*"] \\
\mathbb{C}\setminus\{0\} \arrow[drrr,dashed,"D"] 
                         \arrow[rr,"\scriptscriptstyle\textit{coordinate transition}"] &&
\mathbb{C}\setminus\{0\} \arrow[drrr,dashed,"D"] \\
&&& T(\mathbb{C}\setminus\{0\}) 
    \arrow[rr,swap,"\scriptscriptstyle\textit{bundle transition}"]
    \arrow[uur,leftarrow,crossing over,"(\sigma_1)_*"]  &&
    T(\mathbb{C}\setminus\{0\})
\end{tikzcd}
\]
\end{document}

enter image description here


I, too, would opt for tikz-cd.

Anyway, this is a solution with xy-pic. Note that it works only with the latex -> dvips -> ps2pdf route.

\documentclass{article}
\usepackage{amsmath,amssymb}
\usepackage[dvips,all]{xy}
\usepackage{xcolor}

\newcommand{\CC}{\mathbb{C}}

\begin{document}
\[
\xymatrix{
        &               &       &       &T(U_1 \cap U_2) \ar[ddr]^{(\sigma_2)_*} \ar[ddl]_{(\sigma_1)_*}    &       \\
        &U_1 \cap U_2 \ar[ddl]_{\sigma_1} \ar@{-->}[urrr]^D &        &       &                   &       \\
        &               &       &T(\CC \setminus \{ 0\}) \ar[rr]^{\textit{bundle transition}} & & T(\CC \setminus \{ 0\}) \\
\CC \setminus \{ 0\} \ar[rr]_{\textit{coordinate transition}} \ar@{-->}[urrr]^D & & 
\CC \setminus \{ 0\} \ar@*{[|(15)][white]}[uul]\ar@{<-}[uul]_{\sigma_2}\ar@{-->}[urrr]^D &   &   & \\}
\]

\[
\xymatrix{
        &               &       &       &T(U_1 \cap U_2) \ar[ddr]^{(\sigma_2)_*} \ar[ddl]_{(\sigma_1)_*}    &       \\
        &U_1 \cap U_2 \ar[ddr]^{\sigma_2} \ar[ddl]_{\sigma_1} \ar@{-->}[urrr]^D &        &       &                   &       \\
        &               &       &T(\CC \setminus \{ 0\}) \ar[rr]^{\textit{bundle transition}} & & T(\CC \setminus \{ 0\}) \\
\CC \setminus \{ 0\} \ar[rr]_{\textit{coordinate transition}} \ar@*{[|(15)][white]}[urrr]\ar@{-->}[urrr]^D & & 
\CC \setminus \{ 0\} \ar@{-->}[urrr]^D &   &   & \\}
\]

\end{document} 

enter image description here

The main idea is to draw a thicker white arrow over the underlying arrow, for example

\ar@*{[|(15)][white]}[urrr]

and then the visible arrow over that

\ar@{-->}[urrr]^D

Tags:

Xy Pic