我正在尝试绘制这个费曼图
有点棘手的部分是图表左侧和右侧的平行线。该怎么做?
我尝试在feynmf
手册中搜索。我看到了类似的图表,它使用
\fmffreeze
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(1,-2))}
但就我而言,它仅在左侧产生 2 条线...
我的代码是
\documentclass{article}
\usepackage{feynmp-auto}
\unitlength=1mm
\begin{document}
\begin{fmffile}{ElasticScattering}
\fmfframe(1,7)(1,7){
\begin{fmfgraph}(40,25)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmfbottom{b}
\fmf{fermion}{i2,v1,o2}
\fmf{photon}{v1,b}
\fmfblob{.15w}{b}
\fmf{phantom}{i1,b,o1}
\fmffreeze
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(1,-2))}
\end{fmfgraph}}
\end{fmffile}
\end{document}
我的结果是
答案1
\documentclass{article}
\usepackage{feynmp-auto}
\unitlength=1mm
\begin{document}
\begin{fmffile}{ElasticScattering}
\begin{fmfgraph*}(40,25)
% External vertices on the left
\fmfleft{i1,i2}
% External vertices on the right
\fmfright{o1,o2}
% Labels on external vertices
\fmflabel{\(k\)}{i2}
\fmflabel{\(p\)}{i1}
\fmflabel{\(k'\)}{o2}
\fmflabel{\(p'\)}{o1}
% Add a fermion line between `i2', new internal vertex `v' and `o2'
\fmf{fermion}{i2,v,o2}
% Add a single plain line between `i1', new internal vertex `b' and `o1'
\fmf{plain}{i1,b,o1}
% Add photon line, with label, between `v' and `b'
\fmf{photon,label=\(q\)}{v,b}
% Insert a blob at `b'
\fmfblob{.15w}{b}
\fmffreeze
% Add two plain lines between `i1' and `b', one shifted above and the
% other below the already present plain line
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(-0.5,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0.5,-2))}
% Same as above, between `b' and `o1'
\fmfi{plain}{vpath (__b,__o1) shifted (thick*(0.5,2))}
\fmfi{plain}{vpath (__b,__o1) shifted (thick*(-0.5,-2))}
\end{fmfgraph*}
\end{fmffile}
\end{document}
如果您想要顶点处有一个空圆b
(如原始示例所示)而不是阴影圆,请\fmfblob{.15w}{b}
用 替换\fmfv{decor.shape=circle,decor.filled=empty,decor.size=.15w}{b}
。