If I try to put two decorations on the same path, both at position 1, only the first shows up:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.markings}
\begin{document}
\begin{tikzpicture}
\node (0) {};
\node (1) [right of=0] {};
\node (2) [below right of=1] {};
\path (0) edge[out=0, in=135, postaction={decorate,
decoration={
markings,
mark=at position 1 with {\arrow[>=diamond, yellow] {>}; },
mark=at position 1 with {\arrow[>=open diamond] {>}; } } }] (2);
\end{tikzpicture}
\end{document}
Via a hack (modifying one of the position to be very close, but not exactly equal to 1)...
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.markings}
\begin{document}
\begin{tikzpicture}
\node (0) {};
\node (1) [right of=0] {};
\node (2) [below right of=1] {};
\path (0) edge[out=0, in=135, postaction={decorate,
decoration={
markings,
mark=at position 0.999 with {\arrow[>=diamond, yellow] {>}; },
mark=at position 1 with {\arrow[>=open diamond] {>}; } } }] (2);
\end{tikzpicture}
\end{document}
...I get the output I expected from for the first image:
I also get the expected result if the decorations are at the same point different from 1:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,decorations.markings}
\begin{document}
\begin{tikzpicture}
\node (0) {};
\node (1) [right of=0] {};
\node (2) [below right of=1] {};
\path (0) edge[out=0, in=135, postaction={decorate,
decoration={
markings,
mark=at position 0.5 with {\arrow[>=diamond, yellow] {>}; },
mark=at position 0.5 with {\arrow[>=open diamond] {>}; } } }] (2);
\end{tikzpicture}
\end{document}
Question:
Why is this happening?