我正在尝试绘制下图,
以下是我目前的 MWE:
\documentclass[10pt,a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{feynmp}
\usepackage{rotating}
\setlength{\unitlength}{1mm}
\pagestyle{empty}
\begin{fmffile}{graphwiththeelectron}
\begin{fmfgraph*}(140,140)
\fmfleftn{i}{9}
\fmfrightn{o}{9}
\fmfcmd{input vbloboval;}
\rotatebox{90}{\fmfblobOval{0.16w}{v1}}
\fmfblob{0.14w}{v2}
\fmf{fermion,label=$p$}{i3,v1}
\fmf{phantom}{v2,o5}
\fmf{plain}{v1,v2}
\fmf{photon}{v1,i4}
\fmf{photon}{v1,i5}
\fmf{photon}{v1,i6}
\fmf{fermion,label=$p'$}{v1,i7}
\end{fmfgraph*}
\end{fmffile}
(我已经用过这个如何用 FeynMP 绘制椭圆?画一个椭圆)这就是我得到的
不幸的是,当我尝试将第二条线从圆形引到椭圆形时,由于该线已存在,因此出现错误。基本上,我想在椭圆形内制作两个顶点,就像原始图表一样。(理想情况下,如果有人有任何想法,我也想旋转椭圆形 - 请注意,我尝试旋转椭圆形的尝试对它没有影响)
答案1
在这种复杂程度下,我建议直接切换到底层绘图引擎(元帖子feynmp
)。您仍然可以通过在顶部执行来访问所有宏input feynmp
,然后您就可以直接绘制。例如:
prologues := 3;
outputtemplate := "%j%c.eps";
input feynmp
beginfig(1);
draw photon origin -- 30 right;
draw photon origin -- 36 right rotated 45;
draw photon (origin -- 36 right rotated 45) shifted (-3,3);
path p; p = origin -- 72 left;
draw subpath(0,1/2) of p rotated 30;
draw subpath(0,1/2) of p rotated -30;
arrow_len := 7;
draw fermion subpath(1,1/2) of p rotated 30;
draw fermion subpath(1/2,1) of p rotated -30;
for t = -15 step 10 until 15:
drawarrow ((photon subpath (.5,.83) of p) .. subpath (.88,.95) of p) rotated t;
endfor
fill fullcircle scaled 20 withcolor .7 white;
draw fullcircle scaled 20;
fill fullcircle xscaled 20 yscaled 50 shifted 30 left withcolor .7 white;
draw fullcircle xscaled 20 yscaled 50 shifted 30 left;
label.lrt(btex $p$ etex, point .8 of p rotated +30);
label.urt(btex $p'$ etex, point .8 of p rotated -30);
label.lft(btex $\vcenter{\halign{\hfil$#$\hfil\cr k_1\cr\vdots\cr k_n\cr}}$ etex, point 1 of p);
label.bot(btex $\displaystyle\underbrace{\kern40bp}_{\hbox{hard}}$ etex, (12,-9));
label.bot(btex $\displaystyle\underbrace{\kern44bp}_{\hbox{soft}}$ etex, (-44,-36));
endfig;
end
这将在您的图表中产生以下尝试: