考虑以下费曼图:
% !TeX program = lualatex
\documentclass[a4paper,10pt]{article}
\usepackage{amsmath}
\usepackage{tikz-feynman}
\begin{document}
\begin{center}
\feynmandiagram [large, horizontal=a to t1] {
a -- [plain,reversed momentum=\(k_1+k_2\)] t1 -- [scalar, momentum'=\(q\),edge label=\(m_1\)] t2 --[plain, momentum'=\(q+k_1\),edge label=\(m_2\)]t3 -- [plain, momentum'=\(q+k_1+k_2\),edge label=\(m_3\)]t1,
t2 -- [plain,reversed momentum=\(k_1\)] p1 ,
t3 -- [plain,reversed momentum=\(k_2\)] p2,
};
\end{center}
\end{document}
现在我想要的是虚线成为边缘半点以及指定方向。
在两个可能的方向之一中转换后的图像应该如下所示:
如何实现这一点?
答案1
在我的计算机上,您的代码不会重现您的屏幕截图,而是将其颠倒过来。但是,获取“半虚线”线相当简单。只需记住节点并绘制实线半线作为覆盖即可。
\documentclass[a4paper,10pt]{article}
\usepackage{amsmath}
\usepackage{tikz-feynman}
\begin{document}
\begin{center}
\feynmandiagram [large, horizontal=a to t1,remember picture] {
a -- [plain,reversed momentum=\(k_1+k_2\)] t1
-- [scalar, momentum=\(q\),edge label'=\(m_1\)] t2
--[plain, momentum=\(q+k_1\),edge label'=\(m_2\)]t3
-- [plain, momentum=\(q+k_1+k_2\),edge label'=\(m_3\)]t1,
t2 -- [plain,reversed momentum=\(k_1\)] p1 ,
t3 -- [plain,reversed momentum=\(k_2\)] p2,
};
\tikz[overlay,remember picture]{\path (t1) --(t2) coordinate[midway] (m1);
\draw[thick] (m1) --(t2);
}
\end{center}
\end{document}