I am making a picture of an automaton where the transitions have comma-separated tuples for weights. This isn't a problem until I try to space out transitions in the same part of the graph using the for-loop syntax (hat-tip to: How to draw a many edges loop above - tikz). Because the edge labels for the for-loop are separated by commas, each element in the tuple is grabbed as part of a new label by the loop, rather than being part of the label.
\documentclass{article}
\usepackage{pgf}
\usepackage{tikz}
\usetikzlibrary{arrows,automata}
\begin{document}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm,
semithick]
\node[initial,state, accepting, align = center] (A) {0};
\path (A) edge [loop above, align=center] node {a:a \\ $\langle 0, 0, 0, 0 \rangle$} (A);
\begin{pgfinterruptboundingbox}
\foreach \looseness/\label [count=\n] in {15/i:a \\ $\langle 2 1 1 1\rangle$ }
\path [->] (A) edge [
loop above, align = center,
every loop/.append style={
looseness=\looseness,
in=60-0.8*\looseness,
out=120+0.8*\looseness
}] node {\label} ();
\end{pgfinterruptboundingbox}
\end{tikzpicture}
\end{document}
To avoid this I have omitted commas. The result is that the manually specified arc looks the way I want it to, but the one created by the for loop does not (no commas between elements). I get the impression from Using double for-loop in tikz that the for-loop just does not support what I am trying to do, but I'd like to make sure.
P.S. The graph I am making does use several arcs, so there is some reason to use a for-loop.


{$\langle 2, 1, 1, 1\rangle$}in specifying the label? The curly brackets will protect the commas. This is the standard way to include commas in\foreachloops with TikZ as far as I know. – cfr Jun 29 '15 at 00:49