[Tex/LaTex] arrow tip when using “.. controls ..” in tikz

arrowscommutative-diagramstikz-pgf

When I draw a commutative diagram with tikz, I normally use the syntax

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{center}
\begin{tikzpicture}
\node (a) at (0,0) {$A$};
\node (b) at (2,0) {$B$};
\node (c) at (4,0) {$C$};
\path[->]
(a) edge (b)
(b) edge (c)
(a) edge [bend left] (c)
(a) edge [bend right] (c);
\end{tikzpicture}
\end{center}

\end{document}

This time, due to the size of the nodes, I need to use .. controls (2,2) .. to make the arrows avoid the nodes. But when I type

\begin{center}
\begin{tikzpicture}
\node (a) at (0,0) {$A$};
\node (b) at (2,0) {$B$};
\node (c) at (4,0) {$C$};
\draw[->]
(a) edge (b)
(b) edge (c)
(a) .. controls (2,2) ..  (c)
(a) .. controls (2,-2) .. (c);
\end{tikzpicture}
\end{center}

the arrow tip appears only at the last line drawn using the controls syntax (and at the two edges). How can I specify that I want an arrow tip at every line?

Best Answer

You can use arrows.meta library and looseness key to control the distance from the control point to the two end points as said in the pgfmanual.

\documentclass{beamer}

\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage[tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}

\begin{document}
\begin{center}
\begin{tikzpicture}
\node (a) at (0,0) {$A$};
\node (b) at (2,0) {$B$};
\node (c) at (4,0) {$C$};

\path[->]
(a) edge (b)
(b) edge (c)
(a) edge [out=80,in=100,looseness=5] (c)
(a) edge [out=-55,in=-125,looseness=1.5] (c);
\end{tikzpicture}

\end{center}
\end{document}

enter image description here