# Loop along a line in tikz-feynman

In tikz-feynman, I want to draw a curved arc between two points, and then attach a loop to this. Here is an extremely hack version I did as a stopgap:

\documentclass{article}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}

\begin{tikzpicture}
\begin{feynman}

\vertex (t) at (0,2);
\vertex (b) at (0,-2);
\vertex (lt) at (-0.5,1);
\vertex (lm) at (-1,0);
\vertex (lb) at (-0.5,-1);
\vertex (rt) at (0.5,1);
\vertex (rm) at (1,0);
\vertex (rb) at (0.5,-1);
\diagram*{
(t) -- (lt) -- (lm) -- (lb) -- (b),
(t) -- (rt) -- (rm) -- (rb) -- (b),
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}


which produces

I hope the idea is clear enough. This would be adequate for my purposes except that I want the lines to be curved, i.e. this should be two arcs between (t) and (b), not this ugly diamond-shaped thing. I think what I want to do is just draw the two arcs from (t) to (b) and then define some vertices "along the arcs" with which I can make the gluon line, but have struggled to figure out how to do this.

Because this diagram is part of a larger equation of diagrams, I would prefer to use absolute vertex positions for at least (t) and (b).

UPDATE: Flexible answer. You can change the position at will by adjusting .3 and .7 to your needs.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}

\begin{tikzpicture}
\draw[postaction={decorate,
decoration={markings,mark=at position .3 with {\coordinate (lt);},
mark=at position .7 with {\coordinate (lb);}}}] (0,0) circle (2);
\begin{feynman}
\diagram*{
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}


ORIGINAL ANSWER: (Just in case someone wants to do this within a diagram of tikz-feynman. You can work with quarter right. Then some of your vertices become unnecessary.

\documentclass{article}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}

\begin{tikzpicture}
\begin{feynman}

\vertex (lt) at (-0.5,1);
\vertex (lb) at (-0.5,-1);
\vertex (rt) at (0.5,1);
\vertex (rb) at (0.5,-1);
\diagram*{
(lt) --[quarter right]  (lb) --[quarter right] (rb)
-- [quarter right] (rt) -- [quarter right] (lt),
(lt) -- [gluon] (lb),
};
\end{feynman}
\end{tikzpicture}
\end{document}


• That's an interesting workaround--thanks! I would still kind of like to know if there's a solution where I can place nodes along my lines, so I could have more control over the shape of the lines... this solution also has the difficulty that I can't control where exactly the top and bottom of the diagram are, which will make it hard to align this diagram wrt other diagrams in an equation. Apr 22, 2018 at 21:31
• @twoform Of course there are plenty of such possibilities in TikZ. The question is whether you insist on a pure tikz-feynman solution.
– user121799
Apr 22, 2018 at 21:37
• I am fully willing to use a non tikz-feynman solution! I suppose that might be the way to go at this point. I imagine putting this all together in just standard tikz might be easier. Too bad though, I am lazy and like tikz-feynman ;) Apr 22, 2018 at 21:43
• @twoform I added an alternative.
– user121799
Apr 22, 2018 at 21:54