在 Feynmp 上将两个顶点放在椭圆内

在 Feynmp 上将两个顶点放在椭圆内

我正在尝试绘制下图,

图片

以下是我目前的 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

这将在您的图表中产生以下尝试:

在此处输入图片描述

相关内容