# Shifting curved line downwards in xymatrix

In the following MEW I have two problems

1. Only due to the MWE: stackexchange is having some problem highlighting my code (due to the back upper coma)
2. The real problem: I would like that the snake go through in the middle, between V,WZ and rho1,rho2,rho3.
    \documentclass{article}
\usepackage[all]{xy}
\usepackage{amsmath}
\begin{document}

\xymatrix@C=1pc{
&&\operatorname{ker}(\rho_1) \ar[rr]\ar[d]^-{\iota_1}
&&\operatorname{ker}(\rho_2) \ar[rr]\ar[d]^-{\iota_2}
&&\operatorname{ker}(\rho_3) \ar[d]^-{\iota_3}
\arr[d][ll][llllld][dddllll][dddllll]  \\
&&V \ar[rr]^{\phi}\ar[d]^{\rho_1}
&&W \ar[rr]^{\psi}\ar[d]^{\rho_2}
&&Z \ar[rr]\ar[d]^{\rho_3}&&0\\
0\ar[rr] &&V' \ar[rr]^{\phi'}\ar[d]^-{\pi_1}
&&W' \ar[rr]^{\psi'}\ar[d]^-{\pi_2}
&&Z'\ar[d]^-{\pi_3} &&\\
&&\operatorname{coker}(\rho_1)\ar[rr]
&&\operatorname{coker}(\rho_2)\ar[rr]
&&\operatorname{coker}(\rho_3)&&
}

\end{document}


• Welcome to TeX SX! It is easy to do with pstricks, if you may consider doing it with this package. Feb 27, 2021 at 19:04
• @Bernard I have done a huge lot with tikz or xymatrix. I can use pstrick only if it can live together with the other two. In this case it would interest me. Thank you. Feb 27, 2021 at 19:48

From the old question How do you draw the "snake" arrow for the connecting homomorphism in the snake lemma? you can adapt your code. Here I have put part of your letters.

\documentclass[12pt]{article}
\usepackage[all]{xy}
\usepackage{amsmath}
\DeclareMathOperator{\coker}{coker}
\newcommand*\pp{{\rlap{$$'$$}}}
\begin{document}
%
$\xymatrix@!{ && {\ker(\rho_1)} \ar[r] & {\ker(\rho_2)} \ar[r] & {\ker(\rho_3)} \arr[d][l]^d[lll]|!{[];[d]}\hole|!{[l];[dl]}\hole|!{[ll];[dll]}\hole [dddll]|!{[ddllll];[ddll]}\hole [dddll] & \\ && A \ar[r]^{f} & B \ar[r]^{g} & C \ar[r] & 0 \\ 0 \ar[rr] && A\pp \ar[r]^{f'} & B\pp \ar[r]^{g'} & C\pp & \\ && {\coker(a)} \ar[r] & {\coker(b)} \ar[r] & {\coker(c)} & \\ % vertical arrows \ar"1,3";"2,3"^{\iota_1} \ar"1,4";"2,4" \ar"1,5";"2,5" \ar"2,3";"3,3"^a \ar"2,4";"3,4"^b \ar"2,5";"3,5"^c \ar"3,3";"4,3" \ar"3,4";"4,4" \ar"3,5";"4,5" }$
\end{document}


• the main requirement was the arrow to cross in the middle, between A,B,C and a,b,c. Thank you for the link, it has perhaps the only workable solution for me: tikz-cd Feb 28, 2021 at 6:26
• @Agyla I hoped to have given an help. Xy package for me it is very complicated instead of tikz-cd. Best regards. Feb 28, 2021 at 21:31

A pstricks solution:

\documentclass{article}
\usepackage{mathtools}
\DeclareMathOperator{\coker}{coker}
\usepackage{pst-node, multido}

\begin{document}

$\psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, linejoin=1, nodesep=2pt, rowsep=0.75cm, colsep=0.8cm, shortput =tablr, labelsep=1.5pt} \everypsbox{\scriptstyle} \begin{psmatrix}[mnode = R] %%% nodes & \ker(\rho_1) & \ker(\rho_2) &\ker(\rho_3)\\ & V & W & Z & 0 \pnode[0,-0.3cm]{I}\\ 0 & V' & W' & Z' \\ & \coker(\rho_1) & \coker(\rho_2) &\coker(\rho_3) %%% snake arrow {\psset{linearc=0.4}% \ncbar[arrows=-, armA=1.2cm, nodesepB=0pt]{1,4}{I} \ncbar[angle=180, armB=1.2cm, nodesepA=0pt]{I}{4,2}} %%% horizontal arrows% \foreach \s/\t in {2/3,3/4}{\ncline{1,\s}{1,\t}\ncline{4,\s}{4,\t}} \ncline{2,2}{2,3}^{\phi } \ncline{2,3}{2,4}^{\psi } \ncline{2,4}{2,5} \ncline{3,1}{3,2}\ncline{3,2}{3,3}^{\phi'} \ncline{3,3}{3,4}^{\psi'} %%% vertical arrows \psset{border=1.5pt} \foreach \i/\c in {1/2,2/3,3/4}{\ncline{1,\c}{2,\c}>{\iota_\i} \ncline{2,\c}{3,\c}>{\rho_\i} % \ncline{3,\c}{4,\c}>{\pi_\i}} \end{psmatrix}$

\end{document}


• beautiful, but is does not compile with lualatex, tex.stackexchange.com/questions/99724/lualatex-and-pstricks Feb 28, 2021 at 6:19
• @Agyla: You're right, auto-pst-pdf-lua doesn't work correctly. I obtained the result with xelatex, which works fine. Feb 28, 2021 at 10:49