I want to draw the following diagram in LaTeX. This is essentially a diagram of the snake lemma, but a bit different from the usual one.
By rotating the diagram of the snake lemma ninety degrees and inverting it, this diagram can be obtained. But, to write this directly may be more comfortable.
Thank you for your help.
The following is the code for the usual snake lemma.
\begin{document}
\documentclass{article}
\thispagestyle{empty}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tikz-cd}
\usetikzlibrary{%
matrix,%
calc,%
arrows%
}
\begin{tikzpicture}[>=triangle 60]
\matrix[matrix of math nodes,column sep={60pt,between origins},row
sep={60pt,between origins},nodes={asymmetrical rectangle}] (s)
{
&|[name=ka]| \ker f &|[name=kb]| \ker g &|[name=kc]| \ker h \\
%
&|[name=A]| A' &|[name=B]| B' &|[name=C]| C' &|[name=01]| 0 \\
%
|[name=02]| 0 &|[name=A']| A &|[name=B']| B &|[name=C']| C \\
%
&|[name=ca]| \coker f &|[name=cb]| \coker g &|[name=cc]| \coker h \\
};
\draw[->] (ka) edge (A)
(kb) edge (B)
(kc) edge (C)
(A) edge (B)
(B) edge node[auto] {\(p\)} (C)
(C) edge (01)
(A) edge node[auto] {\(f\)} (A')
(B) edge node[auto] {\(g\)} (B')
(C) edge node[auto] {\(h\)} (C')
(02) edge (A')
(A') edge node[auto] {\(i\)} (B')
(B') edge (C')
(A') edge (ca)
(B') edge (cb)
(C') edge (cc)
;
\draw[->,gray] (ka) edge (kb)
(kb) edge (kc)
(ca) edge (cb)
(cb) edge (cc)
;
\draw[->,gray,rounded corners] (kc) -| node[auto,text=black,pos=.7]
{\(\partial\)} ($(01.east)+(.5,0)$) |- ($(B)!.35!(B')$) -|
($(02.west)+(-.5,0)$) |- (ca);
\end{tikzpicture}
The output is
The code for this usual snake lemma diagram can be also seen in How do you draw the "snake" arrow for the connecting homomorphism in the snake lemma?
tikz-cd
you also have direct access to the cells so writing the arrow grom G to Coker is easy.