如何使用 feynMF 包绘制不连续的费曼图?

如何使用 feynMF 包绘制不连续的费曼图?

我刚刚发现feynMF包裹,一个非常简洁的绘制费曼图的工具。

我继续画了一些图表,我将把它们放在这里,只是为了为这个问题设定正确的精神。我制作了这个

在此处输入图片描述

有了这个

\documentclass{article}
\usepackage{feynmf}

\begin{document}
$\begin{fmffile}{Diagram}
\begin{fmffile}{Diagram}
\begin{fmfgraph*}(40,15)
   \fmfpen{thin}
   \fmfleft{i}
   \fmfright{o}
   \fmf{plain}{i,o}
   \fmfdot{i,o}
   \fmfv{l.a=-90,l=$x$}{i}
   \fmfv{l.a=-90,l=$y$}{o}
\end{fmfgraph*}
\quad + \quad
\begin{fmfgraph*}(40,15)
   \fmfpen{thin}
   \fmfleft{i}
   \fmfright{o}
   \fmf{plain}{i,v,v,o}
   \fmfdot{i,o,v}
   \fmfv{l.a=-90,l=$x$}{i}
   \fmfv{l.a=-90,l=$y$}{o}
   \fmfv{l.a=-90,l=$z$}{v}
\end{fmfgraph*}
\quad + \quad
\begin{fmfgraph*}(40,15)
   \fmfpen{thin}
   \fmfleft{i}
   \fmfright{o}
   \fmf{plain}{i,v1,v2,o}
   \fmf{plain,left,tension=0.05}{v1,v2,v1}
   \fmfdot{i,o,v1,v2}
   \fmfv{l.a=-90,l=$x$}{i}
   \fmfv{l.a=-90,l=$y$}{o}
   \fmfv{l.a=-90}{v1,v2}
   \fmflabel{$z_{1}$}{v1}
   \fmflabel{$z_{2}$}{v2}
\end{fmfgraph*}
\quad + \enskip \dots
\end{fmffile}
\end{fmffile}$

\end{document}

然后我想画几个断开的图。这就是我卡住的地方。我试图得到这个

在此处输入图片描述

我承认这不是很漂亮,但我希望你能明白我的意思。但是,到目前为止,我尝试的所有方法都没有编译成功。有没有人足够熟悉 feynMF 可以帮我解决?

答案1

我联系了 的创建者 Thorsten Ohl,feynMF并询问他是否可以用他的软件包实现断开连接的图表。他诚实地回答道

...它需要比我喜欢的更多的技巧,但这是可能的。

在我看来,他的解决方案看起来非常好:

在此处输入图片描述

要重现或修改此输出,请使用以下代码

\documentclass{article}
\usepackage{graphicx}
\usepackage{feynmp}
\setlength{\unitlength}{1mm}
\DeclareGraphicsRule{*}{mps}{*}{}
\begin{document}
\begin{fmffile}{\jobname-pics}
\begin{center}
  \begin{fmfgraph*}(30,30)
     \fmfpen{thin}
     \fmftop{t}
     \fmfbottom{b}
     \fmf{phantom}{t,v1,b}
     \fmffreeze
     \fmfi{plain}{vloc(__v1){(1,1)}..vloc(__t)..{(1,-1)}vloc(__v1)}
     \fmfi{plain}{vloc(__v1){(-1,-1)}..vloc(__b)..{(-1,1)}vloc(__v1)}
     \fmfdot{v1}
     \fmfv{l=$z_1$,l.angle=180,l.dist=3thick}{v1}
  \end{fmfgraph*}\qquad
  \begin{fmfgraph*}(30,45)
     \fmfpen{thin}
     \fmftop{t}
     \fmfbottom{b}
     \fmf{phantom}{t,v1,v2,b}
     \fmffreeze
     \fmfi{plain}{vloc(__v1){(1,1)}..vloc(__t)..{(1,-1)}vloc(__v1)}
     \fmfi{plain}{vloc(__v2){(-1,-1)}..vloc(__b)..{(-1,1)}vloc(__v2)}
     \fmfi{plain}{vloc(__v1){(1.5,-1)}..{(-1.5,-1)}vloc(__v2)}
     \fmfi{plain}{vloc(__v2){(-1.5,1)}..{(1.5,1)}vloc(__v1)}
     \fmfdot{v1,v2}
     \fmfv{l=$z_1$,l.angle=180,l.dist=3thick}{v1}
     \fmfv{l=$z_2$,l.angle=180,l.dist=3thick}{v2}
  \end{fmfgraph*}\qquad
  \begin{fmfgraph*}(30,60)
     \fmfpen{thin}
     \fmftop{t}
     \fmfbottom{b}
     \fmf{phantom}{t,v1,v2,v3,b}
     \fmffreeze
     \fmfi{plain}{vloc(__v1){(1,1)}..vloc(__t)..{(1,-1)}vloc(__v1)}
     \fmfi{plain}{vloc(__v3){(-1,-1)}..vloc(__b)..{(-1,1)}vloc(__v3)}
     \fmfi{plain}{vloc(__v1){(1.5,-1)}..{(-1.5,-1)}vloc(__v2)}
     \fmfi{plain}{vloc(__v2){(1.5,-1)}..{(-1.5,-1)}vloc(__v3)}
     \fmfi{plain}{vloc(__v3){(-1.5,1)}..{(1.5,1)}vloc(__v2)}
     \fmfi{plain}{vloc(__v2){(-1.5,1)}..{(1.5,1)}vloc(__v1)}
     \fmfdot{v1,v2,v3}
     \fmfv{l=$z_1$,l.angle=180,l.dist=3thick}{v1}
     \fmfv{l=$z_2$,l.angle=180,l.dist=3thick}{v2}
     \fmfv{l=$z_3$,l.angle=180,l.dist=3thick}{v3}
  \end{fmfgraph*}
\end{center}
\begin{center}
  \begin{fmfgraph*}(30,50)
     \fmfpen{thin}
     \fmftop{t}
     \fmfbottom{b}
     \fmf{phantom}{t,v1,dummy1,dummy2,v2,b}
     \fmffreeze
     \fmfi{plain}{vloc(__v1){(1,-1)}..{(-1,-1)}vloc(__v2)}
     \fmfi{plain}{vloc(__v2){(-1,1)}..{(1,1)}vloc(__v1)}
     \fmfi{plain}{vloc(__v1){(1,-3)}..{(-1,-3)}vloc(__v2)}
     \fmfi{plain}{vloc(__v2){(-1,3)}..{(1,3)}vloc(__v1)}
     \fmfdot{v1,v2}
     \fmfv{l=$z_1$,l.angle=90,l.dist=3thick}{v1}
     \fmfv{l=$z_2$,l.angle=-90,l.dist=3thick}{v2}
  \end{fmfgraph*}
\end{center}
\end{fmffile}
\end{document}

相关内容