我正在尝试创建以下(粗略绘制的)费曼图:但我目前拥有的代码遇到了问题。我使用的是 tikz-feynman,版本 compat=1.1.0。这是我目前拥有的代码:
\documentclass[11pt,a4paper]{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\feynmandiagram [baseline=(b.base), horizontal=a to b] {
a [particle=\(k_1\)] -- [scalar] b -- [scalar, momentum=\(k_2\)] c,
b -- [photon, momentum'=\(q\), edge label'=\(\ell\), loop, min distance=2cm] b,
d [particle=\(k_4\)] -- [scalar] e -- [scalar, momentum'=\(k_3\)] f,
e -- [photon] b,
};
\end{document}
不会生成所附图像。有什么帮助或想法吗?
答案1
由于该tikz-feynman
包会自动放置节点(为此您需要使用 LuaLaTeX 编译代码),因此您需要考虑如何以符合预期的方式放置它们。但有时,这种自动放置并没有太大帮助。例如,如果您想在循环下方添加垂直直线,稍后使用常规 Ti 添加可能会更容易钾Z 命令。
一种方法可以是:
\documentclass[border=10pt]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\feynmandiagram[baseline=(b.base), horizontal=a to d]{
o -- [photon, reversed momentum'=\(\ell\), loop, min distance=2cm] o,
o -- [photon] a -- [scalar, reversed momentum=\(k_1\)] b,
c -- [scalar, reversed momentum=\(k_2\)] a,
o -- [photon] d -- [scalar, momentum=\(k_4\)] e,
f -- [scalar, momentum=\(k_3\)] d,
};
\end{document}
\documentclass[border=10pt]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}[baseline=(b.base)]
\begin{feynman}
\diagram[horizontal=b to e]{
a -- [scalar, momentum'=\(k_1\)] b
-- [scalar, momentum'=\(k_2\)] c,
d -- [scalar, momentum=\(k_3\)] e
-- [scalar, momentum=\(k_4\)] f,
b -- [photon] e
};
\coordinate (o) at ($(b)!0.5!(e)$);
\coordinate (p) at ($(o)+(0,1)$);
\draw[photon] (o) -- (p)
edge[photon, reversed momentum'=\(\ell\), loop, min distance=2cm] (p);
\end{feynman}
\end{tikzpicture}
\end{document}