下面的代码
\documentclass{article}
\usepackage{tikz,tikz-feynman}
\begin{document}
\begin{tikzpicture}[baseline=(current bounding box.center)]
\begin{feynman}
\vertex (x);
\vertex[right=1.5cm of x] (y);
\vertex[above left=of x] (a);
\vertex[below left=of x] (b);
\vertex[above right=of y] (c);
\vertex[below right=of y] (d);
\vertex[above right= 0.5cm and 0.75cm of x] (p);
\diagram*{
(x) --[scalar, bend left] (p),
(y) --[scalar, bend right] (p),
%(x) --[fermion, half left] (y),
(x) --[scalar, half right] (y),
(x) --[fermion] (a),
(x) --[fermion] (b),
(y) --[fermion] (c),
(y) --[fermion] (d),
};
\end{feynman}
\end{tikzpicture}
\end{document}
给出下图:
我想要做的是在顶点 (p) 上添加一个小循环,如下所示
答案1
只需添加p --[out=135, in=45, loop, min distance=1cm] p
到主体的最后\diagram*
即可解决问题。
\begin{tikzpicture}[baseline=(current bounding box.center)]
\begin{feynman}
\vertex (x);
\vertex[right=1.5cm of x] (y);
\vertex[above left=of x] (a);
\vertex[below left=of x] (b);
\vertex[above right=of y] (c);
\vertex[below right=of y] (d);
\vertex[above right= 0.5cm and 0.75cm of x] (p);
\diagram*{
(x) --[scalar, bend left] (p),
(y) --[scalar, bend right] (p),
%(x) --[fermion, half left] (y),
(x) --[scalar, half right] (y),
(x) --[fermion] (a),
(x) --[fermion] (b),
(y) --[fermion] (c),
(y) --[fermion] (d),
p --[red, out=135, in=45, loop, min distance=1cm] p,
};
\node[below, red] at (p) {(p)};
\end{feynman}
\end{tikzpicture}
请注意,您已经{feynman}
在 中使用了 环境{tikzpicture}
,这允许您访问 中的所有命令TikZ
。因此,如果您想删除红线中的尖点,只需像 中那样进行操作即可{tikzpicture}
。
\begin{tikzpicture}[baseline=(current bounding box.center)]
\begin{feynman}
\vertex (x);
\vertex[right=1.5cm of x] (y);
\vertex[above left=of x] (a);
\vertex[below left=of x] (b);
\vertex[above right=of y] (c);
\vertex[below right=of y] (d);
\vertex[above right= 0.5cm and 0.75cm of x] (p);
\diagram*{
(x) --[scalar, bend left] (p),
(y) --[scalar, bend right] (p),
%(x) --[fermion, half left] (y),
(x) --[scalar, half right] (y),
(x) --[fermion] (a),
(x) --[fermion] (b),
(y) --[fermion] (c),
(y) --[fermion] (d),
};
\draw[red] (p) node[fill=black, circle, inner sep=1pt] node[below, red] {(p)} arc(-90:270:0.3);
\end{feynman}
\end{tikzpicture}