# Control the arrow curvature

How to change the opening of the curve? To be the same as the drawing in red

\documentclass[a4paper, 12pt]{book}
\usepackage[brazil]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[top=2cm,bottom=3cm,left=2cm,right=2cm]{geometry}
\usepackage{amsmath, amssymb, amsfonts, latexsym, upgreek, exscale, stmaryrd, marvosym, wasysym, textcomp, epic}
\usepackage{tikz, tikz-cd}
\usepackage{dsfont}
\usetikzlibrary{babel, arrows}

\begin{document}

\begin{tikzpicture}
\node (a1) at (0,0) {0};
\node (a2) at (0,-2) {$T^0_{C}$};
\node (a3) at (0,-4) {$T^1_{\overline{C}/C}$};
\node (a4) at (0,-6) {0};
\node (a5) at (0,-8) {$T^2_{\overline{C}\backslash C}$};
\node (a6) at (0,-10) {0};

\node (b1) at (3,-1) {$T^0_{\overline{C}\to C}$};
\node (b2) at (3,-3) {$T^0_{C}(\overline{\mathcal{O}})$};
\node (b3) at (3,-5) {$T^1_{\overline{C}\to C}$};
\node (b4) at (3,-7) {$T^1_{C}(\overline{\mathcal{O}})$};
\node (b5) at (3,-9) {$T^2_{\overline{C}\to C}$};

\node (c1) at (6,0) {0};
\node (c2) at (6,-2) {$T^0_{\overline{C}}$};
\node (c3) at (6,-4) {$T^1_{\overline{C}\backslash C}$};
\node (c4) at (6,-6) {$T^1_{C}$};
\node (c5) at (6,-8) {$T^2_{\overline{C}/C}$};
\node (c6) at (6,-10) {0};

\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (a1) to (b1);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b1) to (c2);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (c2) .. controls +(2.5,-1) .. (c3);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (c3) to (b3);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b3) to (a4);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (a4) .. controls +(-2.5,-1) .. (a5);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (a5) to (b5);
\draw [-Implies, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b5) to (c6);

\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (c1) to (b1);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b1) to node [above] {{\scriptsize $\cong$}} (a2);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (a2) .. controls +(-2.5,-1) .. (a3);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (a3) to (b3);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b3) to (c4);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (c4) .. controls +(2.5,-1) .. (c5);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (c5) to (b5);
\draw [-Implies, dotted, double equal sign distance, shorten >=0.2cm, shorten <=0.2cm] (b5) to (a6);

\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (a1) .. controls +(-2.5,-1) .. (a2);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (a2) to (b2);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (b2) to (c3);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (c3) .. controls +(2.5,-1) .. (c4);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (c4) to (b4);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (b4) to (a5);
\draw [->, dashed, shorten >=0.2cm, shorten <=0.2cm] (a5) .. controls +(-2.5,-1) .. (a6);

\draw [->, shorten >=0.2cm, shorten <=0.2cm] (c1) .. controls +(2.5,-1) .. (c2);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (c2) to (b2);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (b2) to (a3);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (a3) .. controls +(-2.5,-1) .. (a4);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (a4) to (b4);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (b4) to (c5);
\draw [->, shorten >=0.2cm, shorten <=0.2cm] (c5) .. controls +(2.5,-1) .. (c6);

\end{tikzpicture}

\end{document}

• Change the control points for whichever of those lines is the one in the place where you drew the red one. You want to pull a bit more down and out and a bit more up and out.
– cfr
Mar 19, 2017 at 3:41

Since you are using control points for the curves, you need to adjust those to change them.

For example,

\documentclass[12pt,tikz]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
\begin{tikzpicture}
[
shorten >=2mm, shorten <=2mm,
]
\node (a1) at (0,0) {0};
\node (a2) at (0,-2) {$T^0_{C}$};
\node (a3) at (0,-4) {$T^1_{\overline{C}/C}$};
\node (a4) at (0,-6) {0};
\node (a5) at (0,-8) {$T^2_{\overline{C}\backslash C}$};
\node (a6) at (0,-10) {0};

\node (b1) at (3,-1) {$T^0_{\overline{C}\to C}$};
\node (b2) at (3,-3) {$T^0_{C}(\overline{\mathcal{O}})$};
\node (b3) at (3,-5) {$T^1_{\overline{C}\to C}$};
\node (b4) at (3,-7) {$T^1_{C}(\overline{\mathcal{O}})$};
\node (b5) at (3,-9) {$T^2_{\overline{C}\to C}$};

\node (c1) at (6,0) {0};
\node (c2) at (6,-2) {$T^0_{\overline{C}}$};
\node (c3) at (6,-4) {$T^1_{\overline{C}\backslash C}$};
\node (c4) at (6,-6) {$T^1_{C}$};
\node (c5) at (6,-8) {$T^2_{\overline{C}/C}$};
\node (c6) at (6,-10) {0};

\draw [-Implies, double equal sign distance] (a1) to (b1);
\draw [-Implies, double equal sign distance] (b1) to (c2);
\draw [-Implies, double equal sign distance] (c2) .. controls +(2.5,-1) .. (c3);
\draw [-Implies, double equal sign distance] (c3) to (b3);
\draw [-Implies, double equal sign distance] (b3) to (a4);
\draw [-Implies, double equal sign distance] (a4) .. controls +(-2.5,-1) .. (a5);
\draw [-Implies, double equal sign distance] (a5) to (b5);
\draw [-Implies, double equal sign distance] (b5) to (c6);

\draw [-Implies, dotted, double equal sign distance] (c1) to (b1);
\draw [-Implies, dotted, double equal sign distance] (b1) to node [above] {{\scriptsize $\cong$}} (a2);
\draw [-Implies, dotted, double equal sign distance] (a2) .. controls +(-2.5,-1) .. (a3);
\draw [-Implies, dotted, double equal sign distance] (a3) to (b3);
\draw [-Implies, dotted, double equal sign distance] (b3) to (c4);
\draw [-Implies, dotted, double equal sign distance] (c4) .. controls +(2.5,-1) .. (c5);
\draw [-Implies, dotted, double equal sign distance] (c5) to (b5);
\draw [-Implies, dotted, double equal sign distance] (b5) to (a6);

\draw [->, dashed] (a1) .. controls +(-2.5,-1) .. (a2);
\draw [->, dashed] (a2) to (b2);
\draw [->, dashed] (b2) to (c3);
\draw [->, dashed] (c3) .. controls +(2.5,-1) .. (c4);
\draw [->, dashed] (c4) to (b4);
\draw [->, dashed] (b4) to (a5);
\draw [->, dashed] (a5) .. controls +(-2.5,-1) .. (a6);

\draw [->,red] (c1) .. controls +(2.5,-.65) and +(2.5,.65) .. (c2);
\draw [->] (c2) to (b2);
\draw [->] (b2) to (a3);
\draw [->] (a3) .. controls +(-2.5,-1) .. (a4);
\draw [->] (a4) to (b4);
\draw [->] (b4) to (c5);
\draw [->] (c5) .. controls +(2.5,-1) .. (c6);

\end{tikzpicture}
\end{document}


Which produces something closer to your target, perhaps. But, the point is that you can change the curve to suit by altering one or both of the control points.

• Perfect, thank you very much. I had not understood how to work with 2 controls. In this solution I did not understand why -65 and +.65. Would it be the first controls in relation to the node (c1) and the second in relation to the node (c2)? Another problem I could not solve using controls is to put a label on the arrow, for example, \draw [->, shorten >=0.2cm, shorten <=0.2cm] (c1) .. controls +(2.5,-0.65) and +(2.5,0.65) .. [above] {$\phi$} (c2); does not work Mar 19, 2017 at 4:23
• Yes. You need a coordinate right after ... If you want to add a label, do it after.
– cfr
Mar 19, 2017 at 14:11
• Just put it after (c2) rather than before.
– cfr
Mar 19, 2017 at 16:51
• You can use midway, right or pos=0.75, above or whatever if you want it to come somewhere other than at the end.
– cfr
Mar 19, 2017 at 16:52
• Solved with \draw [->, shorten >=0.2cm, shorten <=0.2cm] (c1) .. controls +(2.5,-0.65) and +(2.5,0.65) .. (c2) node [right, pos=0.5] {$\phi$}; thank you Mar 19, 2017 at 17:53