[Tex/LaTex] Propagator loop in Feynman diagram using tikz-feynman package

feynmantikz-feynman

Consider the following code written using the tikz-feynman package:

\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage[compat=1.0.0]{tikz-feynman}
\begin{document}
    \feynmandiagram [horizontal=a to b] {
        a -- b [dot] -- [out=135, in=45, loop, min distance=3cm] b -- c,
    };
\end{document}

This draws the following Feynman diagram:

enter image description here

I would like to make the line completely horizontal and turn the loop from an oval into a sphere?

How do you do this?

Best Answer

The issue here is that the algorithm that TikZ-Feynman (CTAN) uses in order to place the vertices doesn't work well if it only has a straight line because the difference in the optimization between a mostly-straight and a fully-straight line are quite small.

This can be easily fixed by using an alternative layout algorithm, such as the layered layout in this case:

%% luatex85 is only necesary to fix a bug in standalone
\RequirePackage{luatex85}
\documentclass{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}
\feynmandiagram [horizontal=a to b, layered layout] {
  a -- b [dot] -- [out=135, in=45, loop, min distance=3cm] b -- c,
};
\end{document}

output

Related Question