我正在尝试使用 FeynMP 绘制一个与此完全一样的费曼图
但圆圈内有一条光子线。此代码完美地创建了上面的图表:
\fmfleft{i} \fmfright{o} \fmftop{t}
\fmf{fermion,label=$q$}{i,v1,o}
\fmffreeze
\fmf{photon,label=$0$}{v1,v2}
\fmf{fermion,right,tension=0.45,label=$k$}{v2,t}
\fmf{fermion,right,tension=0.45}{t,v2}
但当我尝试添加
\fmfposition
\fmfipath{p[]}
\fmfiset{p1}{vpath1(__v2,__t)}
\fmfiset{p2}{vpath2(__t,__v2)}
\fmfi{photon}{point 3length(p1)/4 of p1 -- point 3length(p2)/4 of p2}
创建光子线,MetaPost 给出错误
unknown path p1
另一方面,这段代码改编自 FeynMF 手册,
\fmfleft{i}
\fmfright{o}
\fmf{dots}{i,v1}
\fmf{dots}{v2,o}
\fmf{phantom,left,tension=0.2,tag=1}{v1,v2}
\fmf{phantom,left,tension=0.2,tag=2}{v2,v1}
\fmfdot{v1,v2}
\fmfposition
\fmfipath{p[]}
\fmfiset{p1}{vpath1(__v1,__v2)}
\fmfiset{p2}{vpath2(__v2,__v1)}
\fmfi{fermion}{subpath (0,length(p1)/3) of p1}
\fmfi{fermion}{subpath (2length(p1)/3,length(p1)) of p1}
\fmfi{fermion}{subpath (0,length(p2)/3) of p2}
\fmfi{fermion}{subpath (2length(p2)/3,length(p2)) of p2}
\fmfi{gluon}{point length(p1)/10 of p1
-- point 11length(p1)/12 of p1}
成功创建此图表:
有什么区别?我该如何解决?
编辑:根据要求,完整(不起作用)的代码:
\documentclass{article}
%Feynman diagrams
\usepackage{feynmp}
\DeclareGraphicsRule{*}{mps}{*}{}
\begin{document}
\begin{center}
\begin{fmffile}{Calculation2Diagrams}
\begin{fmfgraph*}(200,150)
% This code works fine...
\fmfleft{i} \fmfright{o} \fmftop{t}
\fmf{fermion,label=$q$}{i,v1,o}
\fmffreeze
\fmf{photon,label=$0$}{v1,v2}
\fmf{fermion,right,tension=0.45,label=$k$}{v2,t}
\fmf{fermion,right,tension=0.45}{t,v2}
% ...just as long as this code isn't added to it.
\fmfposition
\fmfipath{p[]}
\fmfiset{p1}{vpath1(__v2,__t)}
\fmfiset{p2}{vpath2(__t,__v2)}
\fmfi{photon}{point 3length(p1)/4 of p1 -- point 3length(p2)/4 of p2}
% This code, adapted from the FeynMF manual, on the other hand, does
% almost the same thing in almost the same way and works perfectly.
%\fmfleft{i}
%\fmfright{o}
%\fmf{plain}{i,v1}
%\fmf{plain}{v2,o}
%\fmf{phantom,left,tension=0.2,tag=1}{v1,v2}
%\fmf{phantom,left,tension=0.2,tag=2}{v2,v1}
%\fmfdot{v1,v2}
%\fmfposition
%\fmfipath{p[]}
%\fmfiset{p1}{vpath1(__v1,__v2)}
%\fmfiset{p2}{vpath2(__v2,__v1)}
%\fmfi{plain}{subpath (0,length(p1)/3) of p1}
%\fmfi{plain}{subpath (2length(p1)/3,length(p1)) of p1}
%\fmfi{plain}{subpath (0,length(p2)/3) of p2}
%\fmfi{plain}{subpath (2length(p2)/3,length(p2)) of p2}
%\fmfi{plain}{point length(p1)/10 of p1
%-- point 9length(p1)/10 of p1}
\end{fmfgraph*}
\end{fmffile}
\end{center}
\end{document}
答案1
如果从宏中省略后缀,它就会起作用vpath
。
\fmfiset{p1}{vpath(__v2,__t)}
\fmfiset{p2}{vpath(__t,__v2)}
这些后缀到底起什么作用对我来说是一个谜。
这是一个使用的完整程序feynmp-auto
。
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{first}
\begin{fmfgraph*}(200,200)
\fmfleft{i} \fmfright{o} \fmftop{t}
\fmf{fermion,label=$q$}{i,v1,o}
\fmffreeze
\fmf{photon,label=$0$}{v1,v2}
\fmf{fermion,right,tension=0.45,label=$k$}{v2,t}
\fmf{fermion,right,tension=0.45}{t,v2}
\fmfposition
\fmfipath{p[]}
\fmfiset{p1}{vpath(__v2,__t)}
\fmfiset{p2}{vpath(__t,__v2)}
\fmfi{photon}{point 3/4 length p1 of p1 -- point 3/4 length p2 of p2}
\end{fmfgraph*}
\end{fmffile}
\end{document}