我想用 FeynMF 制作以下费曼图;问题在于如何在垂直方向上渲染环(粒子空穴气泡);此外,如何用阴影或灰色阴影填充垂直气泡。
答案1
这很难做到,因为 feynmf 没有提供填充任意路径循环的简单方法,也没有提供它为您创建的路径的简单界面。您可以绘制一个多边形并对其进行阴影处理,但这样一来,您就很难将箭头放在它的侧面。面对这种复杂程度,通常更容易在原始 Metapost 中绘制图表,根据feynmp
需要使用宏。
这是使用此方法尝试拍摄的图片。
prologues := 3;
outputtemplate := "%j%c.eps";
input feynmp
beginfig(1);
w = 180; h = 200;
z1 = (0,0); z2 = (w,0);
z3 = (0,h); z4 = (w,h);
x5 = x6 = x7 = 1/2 w;
y5 = 0; y6 = 1/3 h; y7 = 2/3 h;
draw_dashes_arrow z1 -- z5;
draw_dashes_arrow z5 -- z2;
draw_plain_arrow z3 -- z7;
draw_plain_arrow z7-- z4;
path a[];
a1 = z5 .. (z5+12up) rotatedabout( 1/2[z5,z6], 90) .. z6;
a2 = a1 rotatedabout( 1/2[z5,z6], 180);
a3 = a1 shifted (z6-z5);
a4 = a1 rotatedabout(z6,180);
fill a3 .. a4 .. cycle withcolor .8 white;
%shade a3 .. a4 .. cycle;
draw_plain_arrow a1;
draw_plain_arrow a2;
draw_dashes_arrow a3;
draw_dashes_arrow a4;
label.bot(btex $\ell$ etex, z7);
label.top(btex $\ell$ etex, z6);
%dotlabels.top(1,2,3,4,5,6,7);
endfig;
end.
用 编译此文件mpost
以生成一个.eps
文件,您可以将其转换为 PDF 或直接包含。如果您喜欢用对角线着色,请注释掉该fill
行并取消注释该shade
行。如果您想查看我为每个顶点分配的数字,请取消注释该dotlabels
行。
宏
shade
draw_plain_arrow
draw_dashes_arrow
由我提供,feynmp.mp
已包含在顶部。