[Tex/LaTex] Labelling vertices using tikz-feynman package

tikz-feynman

I would like to change the following code which uses the tikz-feynman package to draw a Feynman diagram:

\begin{tikzpicture}[baseline={(current bounding box.center)}]
    \begin{feynman}
        \vertex (a) {\(\rho\)};
        \vertex [above  left=of a] (b) {\(W^{+},p_{1},\mu_{1}\)};
        \vertex [below  left=of a] (d) {\(W^{-},p_{2},\mu_{2}\)};
        \vertex [      right=of a] (f) {\(\sigma\)};
        \vertex [above right=of f] (c) {\(W^{+},k_{1},\nu_{1}\)};
        \vertex [below right=of f] (e) {\(W^{-},k_{2},\nu_{2}\)};
        \diagram* {
            (b) -- [boson] (a) -- [boson] (d),
            (a) -- [boson, edge label'=\(Z\)] (f),
            (c) -- [boson] (f) -- [boson] (e),
        };
\end{feynman}
\end{tikzpicture}

The code results in the following diagram:

I would like to move the rho and sigma indices to a side of the vertices.

How can I accomplish this?

Best Answer

Probably not the most ideal solution, but here's my attempt at it:

Label at the top

Feynmann diagram top

\documentclass{standalone}
\usepackage{tikz-feynman}

\begin{document}
    \begin{tikzpicture}[baseline={(current bounding box.center)}]
    \begin{feynman}
    \vertex (a) ;
    \vertex [above  left=of a] (b) {\(W^{+},p_{1},\mu_{1}\)};
    \vertex [below  left=of a] (d) {\(W^{-},p_{2},\mu_{2}\)};
    \vertex [      right=of a] (f) ;
    \vertex [above right=of f] (c) {\(W^{+},k_{1},\nu_{1}\)};
    \vertex [below right=of f] (e) {\(W^{-},k_{2},\nu_{2}\)};
    \diagram* {
        (b) -- [boson] (a) -- [boson] (d),
        (a) -- [boson, edge label'=\(Z\)] (f),
        (c) -- [boson] (f) -- [boson] (e),
    };
    \vertex [above=0.5em of a] {\(\rho\)};
    \vertex [above=0.5em of f] {\(\sigma\)};
    \end{feynman}
    \end{tikzpicture}
\end{document}

I tried putting them by the side with \vertex[left=0.7em of a]... and \vertex[right=0.7em of f]... but the result wasn't as neat as the one above, in my opinion.

By the sides:

by the side