使用 feynmf 查找费曼图上缺失的标签

使用 feynmf 查找费曼图上缺失的标签

我正在尝试使用 feynmf 包创建费曼图。我的最小示例是

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

编译一次后,我有了图表,但没有标签(我想这是意料之中的……)。我收到错误

pdflatex> feynmf: Label file diagram.t1 not found:

pdflatex> feynmf: Process diagram.mf with METAFONT and then reprocess this file.

好的,所以我按照说明进行操作,并尝试在我的终端(使用 Xubuntu)中使用 Metafont 处理 .mf 文件

mpost diagram.mf

然后我就卡住了。它开始然后以问号结束,我不知道如何继续,也不知道 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;

? 

有人能帮忙吗?我怎样才能获得我的标签?非常感谢!

答案1

要调用的程序不是Metapost,而是Metafont:

mf diagram.mf

但是,最好使用feynmp具有相同语法并生成 Metapost 文件:您将获得diagram.mp并运行mpost diagram.mp即可。

还有另一种可能性:

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

该软件包feynmp-auto(我是其作者)甚至避免了手动运行的需要mpost:图表在运行结束时进行编译(pdflatex仅当在当前 LaTeX 运行中修改了源时才进行编译),并在下一次 LaTeX 运行中正确放置它。

在此处输入图片描述

相关内容