我正在尝试以编程方式创建费曼图,并且经常需要删除之前使用 fmfn 或 fmfcyclen 命令创建的单个顶点。这样我就不会得到如下所示的图表:
而是看起来像这样:
有什么办法吗?我不知道 metapost/metafont,但可以用 fmfiset 或 fmfcmd 来实现吗?
下面是完整的代码示例(注释掉的行显示了删除有问题的顶点后我想要的结果,并生成上面看起来正常的图像):
\documentclass[border=2.5cm]{standalone}
\usepackage{feynmp}
\usepackage{graphicx}
\usepackage{pgf}
\DeclareGraphicsRule{*}{mps}{*}{}
\begin{document}
\begin{fmffile}{simple}
\begin{fmfgraph*}(450,320)
\fmftop{ti,tf}
\fmfbottom{bi,bf}
\fmf{fermion}{ti,t1,tf}
\fmf{fermion}{bi,b1,bf}
\fmffreeze
\fmfcyclen{plain, left=1/2}{v}{5}
%% \fmfcyclen{plain, left=1/2}{v}{2}
\fmf{photon}{t1,v[1]}
\fmf{photon}{v[2],b1}
\end{fmfgraph*}
\end{fmffile}
\end{document}
请注意,另一个潜在的解决方法是能够在第一个图像中显示的多个顶点之间创建平滑的弧,但我还没有找到解决方案(我知道 fmfpoly 命令,但它没有帮助)。