# Curved Arrows in Tikz

I am new in Tikz and have searched but not found what I am looking for (which should be a particularly simple).

I have a commutative diagram in which I am illustrating diagram chasing. I would like a curved arrow from B to C' but I need it to go around the outside of the diagram, curving around B'. Similarly, I need a curved arrow from B to C' but curving around C. I have been unable to move the arrows outside of inside of the diagram. What is the simple way of specifying this?

Moreover, is there a general way of telling Tikz how to add curves to your arrows, i.e. if I wanted to do the same thing as above but then make the arrow 'wavy' the whole way from B to C' or specify an arbitrary path of curved and loops from one node to the next?

$\begin{tikzpicture} \matrix (m) [matrix of math nodes, row sep=3em, column sep=3em, text height=1.5ex, text depth=0.25ex] { B & C \\ B' & C' \\ }; \path[->] (m-1-1) edge node[above] {g} (m-1-2) edge node[left] {\beta} (m-2-1) edge [bend left=30] (m-2-2) edge [bend right=15] (m-2-2); \path[->] (m-1-2) edge node[right] {\gamma} (m-2-2); \path[->] (m-2-1) edge node[below] {g'} (m-2-2); \end{tikzpicture}$


This is a possible solution, use of looseness=xx and bend left=xx, For the wavy line and arrow, here a style called snake it is defined,

Code

\usepackage[margin=1in]{geometry}
\usepackage{amsmath}% http://ctan.org/pkg/stackrel
\usepackage{tikz,siunitx}
\usetikzlibrary{matrix,positioning,calc}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{snake it/.style={-stealth,
decoration={snake,
amplitude = .4mm,
segment length = 2mm,
post length=0.9mm},decorate}}
\begin{document}

$\begin{tikzpicture} \matrix (m) [matrix of nodes, row sep=3em, column sep=3em, text height=1.5ex, text depth=0.25ex] { B & C \\ B' & C' \\ }; \path[->] (m-1-1) edge node[above] {g} (m-1-2) edge node[left] {\beta} (m-2-1) edge [bend left=90,looseness=2,snake it] (m-2-2) edge [bend right=90,looseness=2] (m-2-2); \path[->] (m-1-2) edge node[right] {\gamma} (m-2-2); \path[->] (m-2-1) edge node[below] {g'} (m-2-2); \end{tikzpicture}$
\end{document}

• Thank you! This is exactly what I was looking for but never stumbled across anything like this. An elegant and importantly - for me - simple solution! (+1) Nov 1, 2014 at 3:22