如何使用 tikz-feynman 重现此费曼图?

如何使用 tikz-feynman 重现此费曼图?

我想重现以下费曼图 在此处输入图片描述

我的尝试得到了这样的结果

在此处输入图片描述

请注意,循环看起来不是圆形的,如果有弯曲的箭头就更好了。这是我的代码(我使用tikz-feynmanLuaLaTeX)

\documentclass{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
    \begin{tikzpicture}
        \begin{feynman}
            \vertex (a);
            \node[rectangle, draw, minimum size=0.075cm,label=-120:\(F_2\)] (b) at (1.5,0);
            \node[dot, label=below:\(P_{lin}\)] (c) at (2.5,1);
            \node[dot, label=above:\(P_{lin}\)] (d) at (2.5,-1);
            \node[rectangle, draw, minimum size=0.075cm,label=-60:\(F_2\)] (e) at (3.5,0);
            \vertex [right=1.5cm of e] (f);
            \diagram*{(b) -- [fermion] (a),
            (b) -- [fermion, quarter left] (c),
            (e) -- [fermion, quarter right] (c),
            (e) -- [fermion, quarter left] (d),
            (b) -- [fermion, quarter right] (d),
            (e) -- [fermion] (f)};
        \end{feynman}
    \end{tikzpicture}
\end{document}

tikz-feynman请建议一种使用(如果需要,结合)来重现费曼图的方法tikz

答案1

在这个简单的例子中,作弊很容易:

  • 画一个圆圈。
  • 将节点放置在圆上。
    使用 制作矩形fill = white
  • 添加弯曲的箭头,无需再次绘制路径(tips)。

不幸的是,fermion箭头实际上是节点,所以如果我们能使箭头尖端(库可以很容易地获得其弯曲形式)具有相同的尺寸,isosceles triangle就需要进行一些投资。bending

(节点可以进行非线性变换,这是用于箭头弯曲的一种变换,但设置起来并不简单。)

我也不想弄乱正确的定位,这就是为什么我使用ext.arrows我的tikz-ext包裹Centered Triangle箭头。

LuaLaTeXtikz-feynman允许我们使用necklace routing对于圆形边缘……

代码

\documentclass{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\tikzfeynmanset{warn luatex=false}
\usetikzlibrary{bending, ext.arrows}
\begin{document}
\begin{tikzpicture}
\begin{feynman}[/tikz/rect/.style={rectangle, draw, minimum size=.075cm, fill=white}]
\vertex (a);
\draw (2.5,0) coordinate (center) circle[radius=1];
\foreach \sa in {90, -90}
  \foreach \da in {45, -45}
    \path[-{Centered Triangle[scale length=2, bend]}, tips]
      ([shift=(center)]\sa:1) arc[start angle=\sa, delta angle=\da, radius=1];
\node[rect, label= -120:\(F_2\)             ] (b) at (1.5, 0);
\node[dot,  label=below:\(P_{\mathrm{lin}}\)] (c) at (2.5, 1);
\node[dot,  label=above:\(P_{\mathrm{lin}}\)] (d) at (2.5,-1);
\node[rect, label=  -60:\(F_2\)             ] (e) at (3.5, 0);
\vertex [right=1.5cm of e] (f);
\diagram*{
  (b) -- [fermion] (a),
  (e) -- [fermion] (f)
};
\end{feynman}
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容