使用 Feynmf 绘制费曼图

使用 Feynmf 绘制费曼图

我正在尝试使用 feynmf 包创建下面的图表,但我非常不熟练,我不知道从哪里开始创建进入 blob 的两个质子。如果 feynmf 中不可能出现彩色线条,我很高兴两条蓝线以虚线形式出现,但我真的很感激有人在这方面提供帮助。

同样,如果有其他易于学习的软件包可以实现这一点,我愿意学习其他东西!

谢谢!

所需图表

答案1

我不知道你是否听说过马查。您可以从他们的网站上绘制一些东西并获得可编译的 TiKz 代码。事实上,费曼图就是他们提供的示例之一。

答案2

这是基于以下详细信息费曼图中的平行线但我无法将其标记为重复(抱歉,不知道如何操作),所以我决定将其作为答案。

遗憾的是,这在 feynmf 中不是最简单的,但并非不可能。

绘制它的方法是生成仅包含每个质子腿的中心线的图表,然后使用 \fmfi(feynmf 立即模式)绘制腿的移位副本。

如果原始线条是用

\fmf{plain}{i1,b}

然后可以绘制两条额外的线

\fmfi{plain}{vpath (__i1,__b) shifted (thick*(-0.5,2))}
\fmfi{plain}{vpath (__i1,__b) shifted (thick*(0.5,-2))}

您可能需要调整班次,但要确保两个班次完全相反,才能看起来好看。

另外,了解 \fmfi 的第一个参数可以是任何可以与 \fmf 一起使用的线型也是很有用的,因此虚线、箭头、胶子波浪线或任何通常可以生成的线条都可以为副本生成。

另外,您还询问了如何添加颜色。如果您使用 feynmp 和 metapost 而不是 feynmf 和 metafont,这是可能的。这是两个软件包之间的唯一区别。feynmp 支持颜色,因为 metapost 支持颜色,而 metafont 仅支持黑色和白色。一旦您使用 feynmp,添加颜色就很简单,只需在 fmf 命令的第一个参数中指定 forground=blue 或其他选项即可。

\fmf{plain,foreground=blue}{i1,b}

如果你需要内置颜色以外的颜色,语法会有点尴尬,因为逗号需要加倍,但在手册的颜色部分有列出,可在https://ctan.math.illinois.edu/macros/latex/contrib/feynmf/fmfman.pdf

答案3

pstricks 解决方案如下pst-node

\documentclass[12pt, border=6pt, svgnames]{standalone}
\usepackage{pst-node}
\usepackage{sansmath} 

\begin{document}

\begin{pspicture}(-1.5,-1.5)(2.5,1.5)
\psnode(-1,1.2){up}{$p$} \psnode(-1,-1.2){dp}{$p$}
\pnodes(2.5,0.5){us}(2.5,-0.5){ds}(0,0){O}(1.2,0){I}
\ncline[linestyle=dashed, dash = 5.5pt 4pt, nodesepA=5pt]{O}{I}\naput[labelsep=2pt]{\sansmath $h$}
\pcline[linewidth=4pt, linecolor=blue](I)(us)\naput[labelsep=0pt]{$s$}
\pcline[linewidth=4pt, linecolor=blue](I)(ds)\nbput[labelsep=0pt]{$s$}
\psset{doubleline, doublecolor=Gainsboro, doublesep=4.5pt, nodesepA=10pt}
\pcline(up)(O)\pcline(dp)(O)
\psset{doubleline=false}\pcline(up)(O)\pcline(dp)(O)
\psdot[dotscale=2](I)
\psdot[dotstyle=Bo, dotscale=2.8, fillcolor=Gainsboro](O)%
\end{pspicture}

\end{document} 

在此处输入图片描述

答案4

按照楼上的建议,问了另一个问题后这里我满意的最终图表可以使用以下代码制作:

\begin{fmffile}{feyngraph}  
   \begin{fmfgraph*}(100,40)
    \fmfleft{i2,i3}
       \fmflabel{$p$}{i2}
       \fmflabel{$p$}{i3}
    \fmfright{o1,o2}    
    \fmf{plain}{i2,b,i3}
    \fmf{dashes,label=$h$,label.side=left}{b,c}
  \fmf{plain,foreground=blue,label=$\color{blue}s$,label.side=left,width=3}{o1,c,o2}
    \fmffreeze
    \fmfblob{.1w}{b}
    \fmfdot{c}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(-0.75,0.5))}
    \fmfi{plain}{vpath (__i2,__b) shifted (thick*(0.75, -0.5))}  
    \fmfi{plain}{vpath (__i3,__b) shifted (thick*(0.75,0.5))}
    \fmfi{plain}{vpath (__i3,__b) shifted (thick*(-0.75, -0.5))}
  \end{fmfgraph*}
\end{fmffile}

最终结果为阴影斑点

或者,如果想要使用阴影圆圈而不是阴影斑点,请更改\fmfblob\fmfv{decor.shape=circle,decor.filled=65,decor.size=3mm}{b}最终结果为阴影圆圈

相关内容