在 feynmf 中更改角度、长度和宽度

在 feynmf 中更改角度、长度和宽度

我正在尝试在 feynmf 中绘制下图: 所需图像

我想在 feynmf 中执行此操作,因为在 LaTeXiT 中很容易执行,这意味着它会自动出现透明背景,而且因为我开始对这个包有所熟悉。

我询问如何画它这里

有人热心地告诉我如何在顶点添加额外的线条以及如何改变线条的颜色。

我现在有下面的图片,它显然正在接近期望的结果,但还没有达到。

当前最佳

我希望从 i1 到 i2 以及从 o1 到 o2 的线更短更紧,但目前虚线根本就不显示。如果我能将蓝色输出线的宽度改为所需的粗线,那我也很高兴。

当前代码为:

\begin{fmffile}{feyngraph}  
  \begin{fmfgraph*}(100,100)
    \fmfleft{i1,i2}     
    \fmfright{o1,o2}    
    \fmf{plain,tension=0.05}{i1,b}
    \fmf{plain,tension=0.05}{i2,b}     
    \fmfblob{.17w}{b}
    \fmf{dashes}{b,c}
    \fmf{plain,foreground=blue,tension=0.05}{c,o1}
    \fmf{plain,foreground=blue,tension=0.05}{c,o2}
    \fmffreeze
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(-1.5,1))}
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(1.5,-1))} 
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(1.5,1))}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(-1.5,-1))} 
    \fmfdot{c}
  \end{fmfgraph*}
\end{fmffile}

答案1

您给外部线的张力太小,内部线几乎收缩为零。我会定义四个右顶点,画一条幻影线,然后冻结顶点,最后只在右侧添加两条外部线。

\documentclass{article}

\usepackage{feynmp}
\usepackage{xcolor}

\begin{document}

\begin{fmffile}{feyngraph}  
  \begin{fmfgraph*}(200,100)
    \fmfleft{i1,i2}
       \fmflabel{$p$}{i1}
       \fmflabel{$p$}{i2}
    \fmfrightn{o}{4}    
    \fmf{plain}{i1,b,i2}
    \fmf{dashes,label=$h$,label.side=left}{b,c}
    \fmf{phantom}{o1,c,o4}
    \fmffreeze
    \fmfblob{.1w}{b}
    \fmfdot{c}
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(-1.5,1))}
    \fmfi{plain}{vpath (__i1,__b) shifted (thick*(1.5,-1))} 
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(1.5,1))}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(-1.5,-1))} 
    \fmf{plain,foreground=blue,label=$\color{blue}s$,label.side=left}{o2,c,o3}
  \end{fmfgraph*}
\end{fmffile}
\end{document}

在此处输入图片描述

相关内容