答案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}
: