3

I need a specific diagram in 't Hooft's double line notation. I already got most of it but one feature is missing. My code for the diagram so far:

    \documentclass{article}
    \usepackage{tikz-feynman} 
        \tikzfeynmanset{compat=1.1.0}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex[coordinate] (a1) {\(\)};
\vertex[coordinate, right=2cm of a1] (a2) {\(\)};
\vertex[coordinate, right=0.5em of a2] (a3) {\(\)};
\vertex[coordinate, right=0.5em of a3] (a4) {\(\)};
\vertex[coordinate, right=2cm of a4] (a5) {\(\)};
\vertex[coordinate, below=0.5em of a1] (b1) {\(\)};
\vertex[coordinate, below=0.5em of a3] (b3) {\(\)};
\vertex[coordinate, below=0.5em of a5] (b5) {\(\)};
\diagram* [edges=fermion]{
(a1) -- (a2) --[half left,, out=135, in=45, loop, min distance=2cm] (a4) -- (a5),
(b5) -- (b3) -- (b1),
(a3) --[out=135, in=45, loop] (a3),
};
\end{feynman}
\end{tikzpicture}
\end{document}

I thought that the line (a3) --[out=135, in=45, loop] (a3) would give me a loop inside the other loop, however this code-line changes nothing in the diagrams. Any ideas on how to fix that?

1 Answer 1

2

Is this what you're after?

output of code

It's probably not the most elegant workaround, what I did was removing the line you refer to from the \diagram*, and then adding

\draw [/tikzfeynman/fermion] (a3) to[out=135, in=45, loop, min distance=1.5cm] (a3);

between \end{feynman} and \end{tikzpicture}.

Note also that, as JP-Ellis mentioned in a comment, \vertex [coordinate] (a) {}; does the same as \vertex (a);, i.e. if you don't add any text, the \vertex automatically becomes a coordinate. Hence, your code can by tidied up a bit.

\documentclass{article}
\usepackage{tikz-feynman} 
\tikzfeynmanset{compat=1.1.0}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex                    (a1);
\vertex[right=2cm of a1]   (a2);
\vertex[right=0.5em of a2] (a3);
\vertex[right=0.5em of a3] (a4);
\vertex[right=2cm of a4]   (a5);
\vertex[below=0.5em of a1] (b1);
\vertex[below=0.5em of a3] (b3);
\vertex[below=0.5em of a5] (b5);
\diagram* [edges=fermion]{
(a1) -- (a2) --[half left,, out=135, in=45, loop, min distance=2cm] (a4) -- (a5),
(b5) -- (b3) -- (b1),
};
\end{feynman}
\draw [/tikzfeynman/fermion] (a3) to[out=135, in=45, loop, min distance=1.5cm] (a3);
\end{tikzpicture}
\end{document}
3
  • Exactly what I was looking for, thanks a lot!
    – user148655
    Nov 20, 2017 at 15:57
  • You shouldn't need to specify coordinate. It should automatically do that if you don't specify any text. That is, \vertex[coordinate] (a) {}; is the same as \vertex (a);.
    – JP-Ellis
    Nov 21, 2017 at 1:30
  • @user148655 FYI, see above comments and edited answer. Nov 21, 2017 at 7:39

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .