I made Feynman diagram this diagram
\documentclass[10pt,a4paper]{article}
\usepackage{pgfplots,wrapfig}
\usepackage{tikZ-feynman,contour}
\usepackage{amsmath}
\begin{document}
\begin{wrapfigure}[14]{R}{0.577\textwidth}
\begin{tikzpicture}[baseline=(current bounding box.north)]
\begin{feynman}[small]
\vertex (i1) [particle=\(e^{-}\)];
\vertex (start) at (-0.3,-0.2) {\(e^{-}\)};
\vertex [above right=20pt of i1] (ii1);
\vertex [above right=20pt of ii1] (v1);
\vertex [above left=20pt of v1] (ii2);
\vertex [above left=20pt of ii2] (i2) {\(e^{-}\)};
\vertex [right=40pt of v1] (v2);
\vertex [above right= 10pt and 17pt of v1] {\(q\)};
\vertex [below right= 5pt and 17pt of v1] {\(\gamma\)};
\vertex [above left = 8pt and -1pt of v1] {\(k'\)};
\vertex [below left = 8pt and -1pt of v1] {\(k\)};
\vertex [above left= 23pt and 13pt of v1] {\(p'\)};
\vertex [below left= 23pt and 13pt of v1] {\(p\)};
\vertex [below right=20pt of v2] (ff1);
\vertex [below right=20pt of ff1] (f1);
\vertex [above right=20pt of v2] (ff2);
\vertex [above right=20pt of ff2] (f2);
\diagram {
(i1) -- [fermion] (ii1)-- [fermion] (v1),
(ii1)-- [boson, momentum, half left, blue] (ii2),
(v1) -- [fermion] (ii2)-- [fermion] (i2),
(v2) -- [boson, momentum',blue] (v1),
(f1) -- [fermion,very thick] (v2)-- [fermion, very thick] (f2),
};
\end{feynman}
\end{tikzpicture}
\end{wrapfigure}
\end{document}
but the momentum arrow in the left is too big. How can I change its length?
Best Answer
The momentum arrow should be, by default, 70% of the length of the initial path. This can change quite significantly if the path is quite curved, as it is here, but you can always rectify it with the
arrow shorten
key.In particular, the
momentum
style allows for optional arguments as follows:I also noticed that you are manually placing labels to look like they are on the edge of certain propagators. You can actually automatically do this with
edge label
.Here's the diagram with the momentum arrow shortened, and using
edge label
instead of manually placing nodes along edges: