使用 tikz 绘制费曼图

使用 tikz 绘制费曼图

我正在尝试找到一些非常简单的示例代码费曼图. 与以下任何或所有图片相似的东西

简单的费曼图

我找到了一些示例代码在 texample.net 上,但由于我是 TikZ 新手,我无法真正调整它来生成像上述示例一样简单的东西。 我将不胜感激任何帮助 :)。

编辑:我设法将代码简化为一个接近我想要的较小的示例:

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing,decorations.markings,trees}
\begin{document}

    \tikzset{
    photon/.style={decorate, decoration={snake}, draw=red},
    particle/.style={draw=blue, postaction={decorate},
        decoration={markings,mark=at position .5 with {\arrow[draw=blue]{>}}}},
    antiparticle/.style={draw=blue, postaction={decorate},
        decoration={markings,mark=at position .5 with {\arrow[draw=blue]{<}}}},
    gluon/.style={decorate, draw=black,
        decoration={snake,amplitude=4pt, segment length=5pt}}
     }

\begin{tikzpicture}[
        thick,
        % Set the overall layout of the tree
        level/.style={level distance=1.5cm},
        level 2/.style={sibling distance=3.5cm},
    ]
    \coordinate
        child[grow=left]{
            edge from parent [gluon]
            child {
                edge from parent [particle]
                node [above] {$g$}
            }
            child {
                edge from parent [antiparticle]
                node [below] {$g$}
            }
            node [above=3pt] {$g$}
         }
        % I have to insert a dummy child to get the tree to grow
        % correctly to the right.
        child[grow=right, level distance=0pt] {
            child {
                edge from parent [antiparticle]
                node [above] {$g$}
            }
            child {
                edge from parent [particle]
                node [below] {$g$}
            }
        };
\end{tikzpicture}
\end{document}

但是,如果我不想要胶子的线圈装饰,而是想要一条直虚线,我会将线

gluon/.style={decorate, draw=black,
        decoration={snake,amplitude=4pt, segment length=5pt}}

为了

gluon/.style={draw=black,dashed}

但是,这也会使得胶子左边的两个粒子变成虚线。有人能建议如何解决这个问题吗?

答案1

据我所知,“虚线”样式选项是设置/tikz/dash pattern为虚线样式的简写(PGF 手册 v2.1,第 157 页)。然后,该样式将对路径的其余部分保持有效,直到您再次更改虚线图案。由于其他样式未指定虚线图案,因此它们将继续使用有效的样式。尝试在(反)粒子和胶子的定义中添加“固体”,它应该会起作用。

答案2

我不知道您是否有兴趣,但如果您只需要绘制“标准”图表,您可以看看feynmf专为此设计的包!

相关内容