我正在尝试在下面的手提包图中添加剪切
\begin{fmffile}{test}
\begin{fmfgraph*}(200,90)
\fmfleft{i2,i1}
\fmfright{o2,o1}
\fmf{dbl_plain_arrow,label=$P$}{i2,v4}
\fmf{plain}{v4,v5}
\fmf{plain}{v5,v6}
\fmf{dbl_plain_arrow}{v6,o2}
\fmffreeze
\fmf{fermion,label=$k$}{v4,v1}
\fmf{fermion,label=$k'$}{v1,v2}
\fmf{fermion}{v2,v3}
\fmf{fermion}{v3,v6}
\fmf{phantom}{v1,i1}
\fmf{phantom}{v3,o1}
\fmffreeze
\fmf{photon,label=$q$,tension=2}{i1,v1}
\fmf{photon}{v3,o1}
\fmfforce{xpart(vloc __v1)+7.5,ypart(vloc __v1)}{v1} % quark top left
\fmfforce{xpart(vloc __v2),ypart(vloc __v2)}{v2} % quark top middle
\fmfforce{xpart(vloc __v3)-7.5,ypart(vloc __v3)}{v3} % quark top right
\fmfforce{xpart(vloc __i2)-10,ypart(vloc __i2)}{i2} % proton left
\fmfforce{xpart(vloc __o2)+10,ypart(vloc __o2)}{o2} % proton right
\fmfforce{xpart(vloc __i1)+10,ypart(vloc __i1)-10}{i1} % photon left
\fmfforce{xpart(vloc __o1)-10,ypart(vloc __o1)-10}{o1} % photon right
\fmf{dashes,width=thin}{v5,v2}
\fmfovalblob{.10w}{.6}{v2} % upper blob
\fmfovalblob{.4w}{.3}{v5} % lower blob
\end{fmfgraph*}
\end{fmffile}
这将生成下图:
但是,我不知道如何在斑点前面添加虚线。理想情况下,我想创建如下图表:
这些是在 J. Collins 的《超越领先顺序的初始状态部分子簇射》中找到的。也就是说,我希望能够制作通用图表,其中要么有一条穿过图表中心的切割线,就像人们通常在 Cutkosky 规则中看到的那样,要么有一条贯穿整个图表的切割/积分符号。
我知道有一个关于如何使用 Tikz 实现这一点的帖子,但我更愿意使用 feynmp,因为我很难同时使用这两个。我知道这可以通过其他程序实现,例如 Jaxodraw,但如果可能的话,我希望使用 feynmp 实现这一切。
答案1
我做了一个实验,只是想试试是否可以注释feynmp
用 Ti 注释图表钾Z。令人惊讶的是,这种方法有效。它还表明这些斑点并非无害,它们甚至不会改变边界框,这与图表的其余部分不同,这就是为什么我必须使用扩展边界框\path (diagram.south) -- ++ (0,-1) coordinate (bottom);
。我可以找到一个定义\fmfovalblob
这里,但这并不能完全重现您的斑点。考虑到这些斑点的剧烈行为,我不确定是否可以使用feynmp
工具轻松地在这些斑点上绘制一些东西。但是,您所追求的轮廓无论如何都不是使用此包绝对可以简单实现的。因此我建议用 Ti 来绘制它钾Z。
\documentclass[tikz, border=3.14mm]{standalone}
\usepackage{feynmp}
% from https://wiki.physik.uzh.ch/cms/latex:feynman
\begin{filecontents*}{vovalblob.mp}
vardef vovalblob (expr bd, a) (text vl)=
forsuffixes $=vl:
if not vexists $: venter $; fi
vlist[vlookup $]decor.shape := fullcircle xscaled a;
vlist[vlookup $]decor.size := bd;
vlist[vlookup $]decor.sty := "shaded";
endfor
enddef;
\end{filecontents*}
\def\fmfovalblob#1#2#3{\fmfcmd{input vovalblob; vovalblob ((#1), (#2), \fmfpfx{#3});}}
\begin{document}
\begin{tikzpicture}
\node (diagram) {\begin{fmffile}{test}
\begin{fmfgraph*}(200,90)
\fmfleft{i2,i1}
\fmfright{o2,o1}
\fmftop{t1}
\fmftop{b1}
\fmf{dbl_plain_arrow,label=$P$}{i2,v4}
\fmf{plain}{v4,v5}
\fmf{plain}{v5,v6}
\fmf{dbl_plain_arrow}{v6,o2}
\fmffreeze
\fmf{fermion,label=$k$}{v4,v1}
\fmf{fermion,label=$k'$}{v1,v2}
\fmf{fermion}{v2,v3}
\fmf{fermion}{v3,v6}
\fmf{phantom}{v1,i1}
\fmf{phantom}{v3,o1}
\fmffreeze
\fmf{photon,label=$q$,tension=2}{i1,v1}
\fmf{photon}{v3,o1}
\fmfforce{xpart(vloc __v1)+7.5,ypart(vloc __v1)}{v1} % quark top left
\fmfforce{xpart(vloc __v2),ypart(vloc __v2)}{v2} % quark top middle
\fmfforce{xpart(vloc __v3)-7.5,ypart(vloc __v3)}{v3} % quark top right
\fmfforce{xpart(vloc __i2)-10,ypart(vloc __i2)}{i2} % proton left
\fmfforce{xpart(vloc __o2)+10,ypart(vloc __o2)}{o2} % proton right
\fmfforce{xpart(vloc __i1)+10,ypart(vloc __i1)-10}{i1} % photon left
\fmfforce{xpart(vloc __o1)-10,ypart(vloc __o1)-10}{o1} % photon right
\fmfovalblob{.10w}{1.6}{v2} % upper blob
\fmfovalblob{.15w}{2.3}{v5} % lower blob
\end{fmfgraph*}
\end{fmffile}};
\path (diagram.south) -- ++ (0,-1) coordinate (bottom);
\draw[white,ultra thick] ([xshift=-3mm,yshift=-3mm]bottom) arc(-90:0:0.3)
-- (diagram.north) arc(-90:0:0.3);
\draw[thick,dashed] ([xshift=-3mm,yshift=-3mm]bottom) arc(-90:0:0.3)
-- (diagram.north) arc(180:90:0.3);
\end{tikzpicture}
\end{document}
我通过使用 latex 进行编译、运行然后将文件转换为 pdf 来生成mpost
这个Test.mp
文件dvi
。