
Para dibujar un diagrama de bucle, como la autoenergía del fotón, como en el siguiente ejemplo:
Probé esos 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}
pero esos códigos no lograron crear las etiquetas superior e inferior, ni la posición de $P$, en el lado izquierdo:
¿Cómo puedo solucionar el problema de las etiquetas?
Respuesta1
Aunque mencionas que estás usando FeynMP, aquí ofrezco una alternativa que usaTikZ-Feynman(CTAN) para dibujar 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}
Respuesta2
Si especifica una etiqueta en el fmf
comando, se aplica a todos los segmentos de línea que define. No puede aplicar diferentes argumentos a diferentes partes de la línea. La solución más sencilla es utilizar dos fmf
comandos y especificar cada parte por separado como se indica a continuación. La otra opción sería dibujar las líneas y luego agregar las etiquetas en un segundo paso, pero al menos en este caso es demasiado complejo.
\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}