0

I am trying to produce a Feynman diagram that is simply 2 incoming fermions meet at a vertex v1, with 2 outgoing fermions. I wish to put a label on the vertex, above the vertex. However feynmp by default puts it to the right of the vertex and I cannot manage to fix it so it is above.

\begin{fmffile}{diagram}
    \begin{fmfgraph*}(80,50)

        \fmfleft{i1,i2} \fmfright{o1,o2}
        \fmf{fermion}{i1,v1,o1}
        \fmf{fermion}{i2,v1,o2}
        \fmflabel{$v_1$}{v1}
        \fmfdot{v1}

    \end{fmfgraph*}
\end{fmffile}

I have tried to put label.side=above in \fmflabel but this does not seem to take this argument. I have tried defining the vertex v1 itself like \fmf{vertex,label=g,label.side=above}{v1} but this does not work. I have also tried doing the same thing for the first fermion but this puts two labels above each leg of the fermion rather than one in the centre.

1 Answer 1

2

The documentation of feynMF states (page 23):

\fmflabel gives the user no control on the placement of the the label (use the \fmfv macro for a more fine-grained control)

The \fmfv macro, among other things, has arguments label for the text of a label and label.angle for the placement of the label.

MWE:

\documentclass{article}
\usepackage{feynmf}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(80,50)

        \fmfleft{i1,i2} \fmfright{o1,o2}
        \fmf{fermion}{i1,v1,o1}
        \fmf{fermion}{i2,v1,o2}
        \fmfv{label=$v_1$,label.angle=90}{v1}
        \fmfdot{v1}

\end{fmfgraph*}
\end{fmffile}
\end{document}

Result:

enter image description here

1
  • Perfect, thank you.
    – Jack
    Feb 1, 2020 at 21:31

You must log in to answer this question.

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