[Tex/LaTex] Feynman diagrams in tikz-feynman: labelling of an edge

feynmantikz-feynman

I am using the tikz-feynman package to draw feynman diagrams. Consider the following diagram

a busy cat

which I drew using the following piece of code:

    \begin{center}
    \begin{tikzpicture}
        \begin{feynman}
            \vertex (h1) ;
            \vertex at ($(h1) + (0.5cm, -1.0cm)$) (i1);
            \vertex at ($(i1) + (0.5cm, -1.0cm)$) (m1);
            \vertex at ($(m1) + (-0.5cm, -1.0cm)$) (i2);
            \vertex at ($(i2) + (-0.5cm, -1.0cm)$) (h2);
            \vertex [right= 2.5 cm of m1] (m2);
            \diagram* {
                (h1) -- [anti fermion, edge label=\(p'\)] (i1) -- [anti fermion, edge label=\(k'k+q\)] (m1) -- [anti fermion, edge label=\(k\)] (i2) -- [anti fermion, edge label=\(p\)] (h2),
                (m2) -- [photon, momentum=q] (m1),
                (i2) -- [photon, half left, momentum=p-k] (i1),
            };
        \end{feynman}
    \end{tikzpicture}
    \end{center}

I am not able to label one of the lines as k'=k+q. The equals sign does not show in the diagram.

Can you help me with this?

Edit:

Code extended:

\documentclass{article}
\usepackage{amsmath,amsfonts,amsthm,amssymb}
\usepackage{setspace}
\usepackage{fancyhdr}
\usepackage{lastpage}
\usepackage{extramarks}
\usepackage{chngpage}
\usepackage{soul}
\usepackage[usenames,dvipsnames]{color}
\usepackage{graphicx,float,wrapfig}
\usepackage{ifthen}
\usepackage{listings}
\usepackage{slashed}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\usepackage[]{amsmath}
\usepackage[]{xcolor}
\usepackage[]{enumitem}
\usepackage[]{graphicx}
\usepackage{mathtools}
\usepackage{simplewick}
\usepackage{bbold}
\usepackage{bm}
\usepackage{tikz-feynman}
\tikzfeynmanset{compat=1.1.0}
\allowdisplaybreaks

\begin{document}

%all the missing code here is the code I pasted above which draws the feynman diagram%
\end{document}

Best Answer

You have to enclose the expression that contains the equality sign in braces, otherwise the equality sign is mixed up with the equality signs separating keywords and values.

[anti fermion, edge label={\(k'=k+q\)}]

enter image description here

\documentclass[border=2mm]{standalone}
\usepackage{tikz-feynman}
\begin{document}
    \begin{tikzpicture}
        \begin{feynman}
            \vertex (h1) ;
            \vertex at ($(h1) + (0.5cm, -1.0cm)$) (i1);
            \vertex at ($(i1) + (0.5cm, -1.0cm)$) (m1);
            \vertex at ($(m1) + (-0.5cm, -1.0cm)$) (i2);
            \vertex at ($(i2) + (-0.5cm, -1.0cm)$) (h2);
            \vertex [right= 2.5 cm of m1] (m2);
            \diagram* {
                (h1) -- [anti fermion, edge label=\(p'\)] (i1)
                     -- [anti fermion, edge label={\(k'=k+q\)}] (m1)
                     -- [anti fermion, edge label=\(k\)] (i2)
                     -- [anti fermion, edge label=\(p\)] (h2),
                (m2) -- [photon, momentum=q] (m1),
                (i2) -- [photon, half left, momentum=p-k] (i1),
            };
        \end{feynman}
    \end{tikzpicture}
\end{document}
Related Question