Как обозначить метки в циклической диаграмме с помощью пакета feynmp?

Как обозначить метки в циклической диаграмме с помощью пакета feynmp?

Чтобы нарисовать петлевую диаграмму, например, собственной энергии фотона, как в примере ниже: Однопетлевая коррекция для фотона

Я попробовал эти коды

\begin{fmffile}{loop} % Loop correction
 \begin{fmfgraph*}(80,65)
  \fmfkeep{loop}
  \fmfleft{ve1}
  \fmfright{ve4}]
  \fmflabel{$P \rightarrow$}{ve1}
  \fmf{photon}{ve1,ve2}
  \fmf{photon}{ve3,ve4}
  \fmf{fermion,right,label=$K$,label.side=top,label=$K - P$,label.side=bottom,tension=.23}{ve2,ve3,ve2}
\end{fmfgraph*}
\end{fmffile}

но эти коды не смогли создать как верхнюю, так и нижнюю метки, а также позицию для $P$ с левой стороны:

введите описание изображения здесь

Как решить проблему с этикетками?

решение1

Хотя вы упоминаете, что используете FeynMP, я предлагаю альтернативу, которая используетTikZ-Фейнман(КТАН) рисовать диаграммы Фейнмана.

\documentclass[tikz,convert]{standalone}

\usepackage[compat=1.1.0]{tikz-feynman}

\begin{document}
\feynmandiagram [horizontal=a to b, layered layout] {
  a -- [photon, momentum=\(p\)] b 
    -- [fermion, half left, momentum=\(k\)] c 
    -- [fermion, half left, momentum=\(p-k\)] b,
  c -- [photon, momentum=\(p\)] d,
};
\end{document}

выход

решение2

Если вы указываете метку в fmfкоманде, она применяется ко всем сегментам линии, которые она определяет. Она не может применять разные аргументы к разным частям линии. Самое простое решение — просто использовать две fmfкоманды и указывать каждую часть отдельно, как указано ниже. Другой вариант — нарисовать линии, а затем добавить метки на втором этапе, но для этого случая это слишком сложно.

\begin{fmffile}{loop} % Loop correction
 \begin{fmfgraph*}(80,65)
  \fmfkeep{loop}
  \fmfleft{ve1}
  \fmfright{ve4}]
  \fmflabel{$P \rightarrow$}{ve1}
  \fmf{photon}{ve1,ve2}
  \fmf{photon}{ve3,ve4}
  \fmf{fermion,right,label=$K$,label.side=top,tension=.23}{ve2,ve3}
  \fmf{fermion,right,label=$K - P$,label.side=bottom,tension=.23}{ve3,ve2}
\end{fmfgraph*}
\end{fmffile}

Связанный контент