Como denotar os rótulos no diagrama de loop usando o pacote feynmp?

Como denotar os rótulos no diagrama de loop usando o pacote feynmp?

Para desenhar um diagrama de loop, como a autoenergia do fóton, como no exemplo abaixo: Correção de um loop para fótons

Eu tentei esses códigos

\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}

mas esses códigos não tiveram sucesso em criar os rótulos superior e inferior e a posição $P$ , no lado esquerdo:

insira a descrição da imagem aqui

Como posso lidar com o problema do rótulo?

Responder1

Embora você mencione que está usando o FeynMP, ofereço aqui uma alternativa que usaTikZ-Feynman(CTAN) para desenhar diagramas de Feynman.

\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}

saída

Responder2

Se você especificar um rótulo no fmfcomando, ele se aplicará a todos os segmentos de linha definidos. Não pode aplicar argumentos diferentes a partes diferentes da linha. A solução mais simples é apenas usar dois fmfcomandos e especificar cada parte separadamente conforme mostrado abaixo. A outra opção seria desenhar as linhas e depois adicionar os rótulos em uma segunda etapa, mas pelo menos neste caso isso é muito complexo.

\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}

informação relacionada