我的尝试得到了这样的结果
请注意,循环看起来不是圆形的,如果有弯曲的箭头就更好了。这是我的代码(我使用tikz-feynman
LuaLaTeX)
\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}