我正在使用 tikz-feynman 包用 latex 绘制费曼图。我想重现以下图表
阅读 tikzfeynman 包的用户手册,发现要绘制顶点中的当前插入,使用标签“交叉点”就足够了。事实上,如果在构造中使用它
\feynmandiagram{ *here* }
,它就可以正常工作。然而,我个人在表示这种干净的分层结构时几乎没有遇到困难。因此,我使用了以下代码
\begin{tikzpicture}
\begin{feynman}
\vertex (i) {\(h_\lambda\)};
\vertex[right=1cm of i, crossed dot] (a);
\vertex[right=2cm of a] (b);
\vertex[right=1cm of b] (f) {\(h_\sigma\)};
\vertex[below=1cm of a] (s1);
\vertex[left=.5cm of s1] (s11);
\vertex[right=.5cm of s1] (s12);
\vertex[below=1cm of b] (s2);
\vertex[left=.5cm of s2] (s21);
\vertex[right=.5cm of s2] (s22);
\diagram*{
(i) -- [boson] (a)
-- [boson, thick, momentum=\(\vec{p}\)] (b)
-- [boson] (f),
(s11) -- [scalar, insertion=0] (a) -- [scalar, insertion=1] (s12),
(s21) -- [scalar, insertion=0] (b) -- [scalar, insertion=1] (s22),
};
\end{feynman}
\end{tikzpicture}
输出结果如下:
我尝试了很多方法来引入[crossed dot]
标签,但似乎diagram*
不接受它,尽管编译运行正常。例如,我尝试了,
\vertex[right=1cm of i, crossed dot]
但i -- [boson] (a) [crossed dot]
没有成功。
- 您知道为什么此标签在此代码中不起作用吗?您有什么建议吗?
- 是否可以定义“左上方”的顶点?如果可以,语法是什么?
谢谢
答案1
不要使用顶点,而要使用节点 - 这是一个错误,定义如下 - https://tex.stackexchange.com/a/532652/197451
\begin{tikzpicture}
\begin{feynman}
\vertex (i) {\(h_\lambda\)};
\node[right=1cm of i, crossed dot] (a);%<--------------------amend to node
\vertex[right=2cm of a] (b);
\vertex[right=1cm of b] (f) {\(h_\sigma\)};
\vertex[below=1cm of a] (s1);
\vertex[left=.5cm of s1] (s11);
\vertex[right=.5cm of s1] (s12);
\vertex[below=1cm of b] (s2);
\vertex[left=.5cm of s2] (s21);
\vertex[right=.5cm of s2] (s22);
\diagram*{
(i) -- [boson] (a)
-- [boson, thick, momentum=\(\vec{p}\)] (b)
-- [boson] (f),
(s11) -- [scalar, insertion=0] (a) -- [scalar, insertion=1] (s12),
(s21) -- [scalar, insertion=0] (b) -- [scalar, insertion=1] (s22),
};
\end{feynman}
\end{tikzpicture}