I have a Feynman diagram like this:
Let's say I want the label for the W+ to be on the opposite side of its squiggly line or the label for the lowermost tbar to be on the opposite side of its straight line (in order to make the diagram a bit more symmetric). How could I do this?
\documentclass{article}
\usepackage{feynmp}
\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
\unitlength=1.00 mm
\begin{document}
\begin{fmffile}{fmftempl}
\begin{fmfchar*}(100,70)
\fmfleftn{i}{2} % 2 initial states
\fmfrightn{o}{8} % 8 final states
\fmf{curly}{i1,v1} % g
\fmf{curly}{i2,v2} % g
\fmf{fermion, label=\(\bar{t}\)}{v3,v1} % tbar
\fmf{fermion, label=\(t\)}{v1,v7} % t
\fmf{fermion, label=\(\bar{t}\)}{v7,v2} % tbar
\fmf{fermion, label=\(t\)}{v2,v4} % t
\fmf{fermion}{v4,o6}
\fmf{fermion}{o3,v3}
\fmf{photon, label=\(W^{-}\)}{v3,v5} % W-
\fmf{photon, label=\(W^{+}\)}{v4,v6} % W+
\fmf{fermion}{o2,v5}
\fmf{fermion}{v5,o1}
\fmf{fermion}{o7,v6}
\fmf{fermion}{v6,o8}
\fmf{dashes, label=\(H^{0}\)}{v7,v8} % H
\fmf{fermion}{o4,v8}
\fmf{fermion}{v8,o5}
\fmflabel{\(g\)}{i1} % g
\fmflabel{\(g\)}{i2} % g
\fmflabel{\(q\)}{o8} % q
\fmflabel{\(\bar{q^{\prime}}\)}{o7} % q'bar
\fmflabel{\(b\)}{o6} % b
\fmflabel{\(b\)}{o5} % b
\fmflabel{\(\bar{b}\)}{o4} % bbar
\fmflabel{\(\bar{b}\)}{o3} % bbar
\fmflabel{\(\bar{\nu}_{l}\)}{o2} % nubar
\fmflabel{\(l^{-}\)}{o1} % l-
\end{fmfchar*}
\end{fmffile}
\end{document}
Best Answer
This solution doesn't use
feynmf
, but uses a new package called TikZ-Feynman (CTAN).For this particular diagram, the automatic vertex placement result is unsatisfactory, so I manually specify the placement of vertices relative to other vertices (I may have gotten a little carried away fine-tuning certain distances...). Generally, it is enough to just have
left=of (vertex)
orabove right=of (vertex)
but the distances can be fine tuned withabove right=(distance) and (distance) of (vertex)
.You can specify edge labels with either
edge label=...
oredge label'=...
, depending on which side of the edge you want the label to be.