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.
    &&\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}
        \ar`r[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} &&\\

enter image description here

  • Welcome to TeX SX! It is easy to do with pstricks, if you may consider doing it with this package.
    – Bernard
    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.
    – Agyla
    Feb 27, 2021 at 19:48

2 Answers 2


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.

              && {\ker(\rho_1)} \ar[r]   & {\ker(\rho_2)} \ar[r]   & {\ker(\rho_3)}
                    `[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"

enter image description here

  • 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
    – Agyla
    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.
    – Sebastiano
    Feb 28, 2021 at 21:31

A pstricks solution:

\usepackage{pst-node, multido}


$ \psset{arrows=->, arrowinset=0.15, linewidth=0.6pt, linejoin=1, nodesep=2pt, rowsep=0.75cm, colsep=0.8cm, shortput =tablr, labelsep=1.5pt}
\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
     \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
    \foreach \i/\c in {1/2,2/3,3/4}{\ncline{1,\c}{2,\c}>{\iota_\i} \ncline{2,\c}{3,\c}>{\rho_\i} %


enter image description here


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .