Estoy intentando crear un gráfico de Feynman usando el paquete feynmf. Mi ejemplo mínimo es
\documentclass{article}
\usepackage{feynmf}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(40,25)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmfbottom{b}
\fmf{fermion}{i2,v1,o2}
\fmf{photon}{v1,b}
\fmflabel{i1}{i1}
\fmflabel{i2}{i2}
\fmflabel{o1}{o1}
\fmflabel{o2}{o2}
\fmflabel{b}{b}
\end{fmfgraph*}
\end{fmffile}
\end{document}
Después de compilar una vez, tengo el gráfico pero no las etiquetas (como se esperaba, supongo...). me sale el error
pdflatex> feynmf: Label file diagram.t1 not found:
pdflatex> feynmf: Process diagram.mf with METAFONT and then reprocess this file.
Bien, hago lo que me dicen e intento procesar el archivo .mf con Metafont en mi terminal (usando Xubuntu) con
mpost diagram.mf
Y luego me quedo estancado. Comienza y luego se detiene con un signo de interrogación y no sé cómo proceder ni qué intenta decirme Metapost:
This is MetaPost, version 1.803 (kpathsea version 6.1.1)
(mpost.mp (/usr/share/texlive/texmf-dist/metapost/base/plain.mp
Preloading the plain mem file, version 1.004) ) (./diagram.mf
(/usr/share/texmf/metafont/feynmf/feynmf.mf
>> mode_setup
! Isolated expression.
<to be read again>
;
l.117 mode_setup;
?
¿Alguien puede ayudar? ¿Cómo puedo conseguir mis etiquetas? ¡Muchas gracias!
Respuesta1
El programa a llamar no es Metapost, sino Metafont:
mf diagram.mf
Sin embargo, es mejor usar feynmp
uno que tenga la misma sintaxis y produzca archivos Metapost: lo obtendrá diagram.mp
y ejecutará mpost diagram.mp
.
Hay otra posibilidad:
\documentclass{article}
\usepackage{feynmp-auto} % or \usepackage{feynmp}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(40,25)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmfbottom{b}
\fmf{fermion}{i2,v1,o2}
\fmf{photon}{v1,b}
\fmflabel{i1}{i1}
\fmflabel{i2}{i2}
\fmflabel{o1}{o1}
\fmflabel{o2}{o2}
\fmflabel{b}{b}
\end{fmfgraph*}
\end{fmffile}
\end{document}
El paquete feynmp-auto
(del cual soy autor) incluso evita la necesidad de ejecutarlo manualmente mpost
: el diagrama se compila al final de una ejecución ( pdflatex
solo si la fuente se ha modificado en la ejecución actual de LaTeX) y lo colocará correctamente en la próxima ejecución de LaTeX.