[Tex/LaTex] Setting fill color for TikZ arrow tips only (and not the path itself)

arrowstikz-pgf

For many TikZ diagrams, I’d like to draw colored (often gray) arrows. I prefer the latex-style arrow tips (from the arrows library). These are filled by using the default background fill color. My problem is that complex paths cannot have a fill=… key because that would mean “fill the path (and the arrow tip)” rather than “fill the arrow tip” as in the following MWE:

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}
\begin{tikzpicture}[>=latex, ->]
  % okay: all black
  \draw[] (2,0) to[bend left] ++(right:1cm); 

  % not okay: gray line, black tip
  \draw[draw=black!50] (3,0) to[bend left] ++(right:1cm); 

  % not okay: gray line, gray tip, path filled
  \draw[draw=black!50, fill=black!50] (4,0) to[bend left] ++(right:1cm); 

  % okay, but complicated: gray line, gray tip, path not filled
  \begin{scope}[fill=black!50]
    \draw[draw=black!50] (5,0) to[bend left] ++(right:1cm);
  \end{scope}
\end{tikzpicture}
\end{document}

Output

The last arrow actually achieves the correct result – i. e., gray arrow, gray arrow tip, no background fill for path – but it is a bit cumbersome to use a scope for every colored arrow that I'm drawing. So my question: Is there an easier way of influencing the arrow tip fill color?

BTW, I’m aware of the solution using the marking library in How to make an arrow bigger and change its color in TikZ?, but I was hoping for a more elegant solution because using markings feels not very “natural” compared to using lines and arrow tips in TikZ.

Best Answer

you can do only

  \draw[black!50] (5,0) to[bend left] ++(right:1cm);