# Inserting text inside an arrow in Tikz

I want to draw an arrow between two nodes (a) and (b), and write text inside the arrow. How can I modify this command to control the size of the arrow head and insert the text?

\draw[->, >=latex, blue!20!white, line width=15pt]   (a) to (b) ;

-

You can perfectly use the shapes library for this. Use \usetikzlibrary{shapes.arrows}. Based on an example from the TikZ manual, page 441:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.arrows}

\begin{document}
\begin{tikzpicture}[every node/.style={single arrow, draw=none, rotate=60}]
\node [fill=red!50] {arrow 1};
\node [fill=blue!50, single arrow head indent=1ex] at (1.5,0) {arrow 2};
\end{tikzpicture}
\end{document}


This gives:

-
It is best to post a fully compilable example with a \documentclass (can use article, unless a reason to use something else), and include all the packages so that others can just cut and paste. – Peter Grill Jun 4 '12 at 17:39
Updated that, thanks. – Ingo Jun 5 '12 at 10:38
Thanks, but you should not use the minimal class. See Why not use the minimal class, that was why I had suggested using the article class. – Peter Grill Jun 5 '12 at 15:28
It still gave the identical output, but I fixed it anyway. Thanks. – Ingo Jun 5 '12 at 16:29
Yeah in this case it does not matter, but better not to use minimal in general. – Peter Grill Jun 5 '12 at 16:37

Those are two quite different questions, answering the one in the title:

If you simply add a node along the line, it will be printed on top of the line (unless otherwise specified). You have to change the color though, as the color specification of the \draw command also applies to the node.

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (a) at (0,0);
\coordinate (b) at (6,0);
\draw[->, >=latex, blue!20!white, line width=15pt]   (a) to node[black]{text} (b) ;
\end{tikzpicture}
\end{document}

-
Great, thanks! I had to specify anchor=center for this to work – Neil G Oct 1 '12 at 0:21