# How to draw a braid of long exact sequences

For example, in page 353 of Ranicki's book Algebraic and geometric surgery,

there is a braid of long exact sequences like so:

I use xy-pic.

-
@AndrewStacey is on his way :) – percusse Oct 7 '13 at 11:53

That brings back memories. But here is the basic structure. From the xy guide you will learn how to make the arrows curve more (if needed)

\documentclass[a4paper]{memoir}
\usepackage[all]{xy}
\usepackage{amsmath}
\begin{document}

$\xymatrix{ A \ar[rd] \ar@/^/[rr] & & C \ar[rd] \ar@/^/[rr] & & E \ar[rd] \ar@/^/[rr] & & G \\ & B \ar[ur] \ar[dr] & & D \ar[ur] \ar[dr]& & F \ar[ur] \ar[dr]& \\ A \ar[ur] \ar@/_/[rr]^J & & C \ar[ur] \ar@/_/[rr]^{\sigma_*} & & E \ar[ur] \ar@/_/[rr] & & G \\ }$

\end{document}


-
Decreasing the row spacing may help: \xymatrix@R-1pc{... or so. – egreg Oct 7 '13 at 12:25

# Remarks

The same as @daleif's answer, just with tikz-cd instead of xy-pic. Have fun!

# Implementation

\documentclass[tikz]{standalone}
\usepackage{amsmath,amssymb,tikz-cd}
\begin{document}
\begin{tikzcd}[cells={nodes={minimum width=1.5cm}}]% to make it more symmetric
L_{m+1}(\mathbb{Z}) \arrow[bend left]{rr} \arrow{rd}
&
& \Theta_m \arrow[bend left]{rr}{0} \arrow{rd}
&
& \pi_m(BO) \arrow[bend left]{rr} \arrow{rd}
&
& \Omega^{fr}_{m-1}
\\
%
& \Theta^{fr}_{m} \arrow{ru} \arrow{rd}
&
& A_m \arrow{ru} \arrow{rd}
&
& \Theta^{fr}_{m-1} \arrow{ru} \arrow{rd}
&
\\
%
\pi_m(O) \arrow[bend right]{rr}{J} \arrow{ru}
&
& \Omega^{fr}_m \arrow[bend right]{rr}{\sigma^*} \arrow{ru}
&
& L_m(\mathbb{Z}) \arrow[bend right]{rr} \arrow{ru}
&
& \Theta_{m-1}
\end{tikzcd}
\end{document}


# Output

-
much nicer arrowheads ;-) – daleif Oct 8 '13 at 11:48
@daleif tikz-cd (and tikz as well) automatically uses the arrowhead of the standard Computer Modern \rightarrow, to match the equations. You can still customize the arrowheads by adding /tikz/commutative diagrams/diagrams={>=*<arrow head>*} to either \tikzset or to the parameters of the drawing. – Henri Menke Oct 8 '13 at 11:54
@daleif -- if you choose the option [cmtip] for xy you'll get the "nicer" arrowheads. not sure why, but [all] doesn't do it. – barbara beeton Oct 8 '13 at 13:44

Another tikz option, but using matrix of nodes.

% arara: pdflatex
\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{matrix}
\usepackage{amssymb}

% make the arrows look like stealth fighter jets
\tikzset{>=stealth}
\begin{document}

\begin{tikzpicture}

\matrix[name=M, matrix of nodes,cells={nodes={minimum width=1.5cm}}, column sep=1.5cm, row sep=1cm]{
$L_{m+1}(\mathbb{Z})$ &                & $\Theta_m$      &       & $\pi_m(BO)$       &                    & $\Omega_{m-1}^{fr}$ \\
&$\Theta_m^{fr}$ &                 & $A_m$ &                   & $\Theta_{m-1}^{fr}$& \\
$\pi_m(O)$            &                & $\Omega_m^{fr}$ &       & $L_m(\mathbb{Z})$ &                    & $\Theta_{m-1}$ \\
};
% straight edges
\foreach \start/\end in {
M-1-1/M-2-2,
M-3-1/M-2-2,
M-2-2/M-1-3,
M-2-2/M-3-3,
M-1-3/M-2-4,
M-3-3/M-2-4,
M-2-4/M-1-5,
M-2-4/M-3-5,
M-1-5/M-2-6,
M-3-5/M-2-6,
M-2-6/M-1-7,
M-2-6/M-3-7}
{
\draw[->] (\start) edge (\end);
}
% curved arrows
\draw[->] (M-1-1) to[out=30,in=150] (M-1-3);
\draw[->] (M-1-3) to[out=30,in=150] node[pos=0.5,above]{$0$} (M-1-5);
\draw[->] (M-1-5) to[out=30,in=150]  (M-1-7);
\draw[->] (M-3-1) to[out=-30,in=-150] node[pos=0.5,above]{$J$} (M-3-3);
\draw[->] (M-3-3) to[out=-30,in=-150] node[pos=0.5,above]{$\sigma^*$} (M-3-5);
\draw[->] (M-3-5) to[out=-30,in=-150] (M-3-7);
\end{tikzpicture}

\end{document}

-