你好,我想用 TikZ-feynman 包绘制下图,但输出太乱了。我该怎么办?
\feynmandiagram[horizontal=i1 to f1]{
i1 -- [fermion] a -- [fermion] i2,
a -- [photon] b,
f1 -- [fermion] b -- [fermion] f2,
};
\begin{tikzpicture}
\begin{feynman}
\vertex (a){\(\alpha,\mu\)};
\vertex [right=of a] (b){\(\beta,\nu\)};
\vertex [above right=of b] (f1) ;
\vertex [below right=of b] (f2);
\diagram* {
i1 -- [fermion, momentum'=\(P_1\)] a -- [anti fermion, momentum'=\(P_2\)] i2,
a -- [gluon] b,
f1 -- [fermion, momentum'=\(P_3\)] b -- [anti fermion, momentum'=\(P_4\)] f2,
};
\end{feynman}
\end{tikzpicture}
该代码的输出为:
答案1
欢迎来到 TeX.SX!首先,该tikz-feynman
软件包严重依赖于需要 LuaLaTeX 的机制。因此,您可能希望使用 LuaLaTeX 编译代码。得益于这些机制,顶点的放置几乎可以自动完成。但是,如果您不能使用 LuaLaTeX,则需要恢复到手动放置顶点。
以下代码使用了这种手动放置。它也应该适用于 PDFLaTeX 或 XeLaTeX,尽管可能会发出很多警告(而且我不确定输出是否符合您的预期):
\documentclass[border=10mm]{standalone}
\usepackage{tikz-feynman}
\tikzfeynmanset{compat=1.1.0}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=1.5cm of a] (b);
\vertex [above left=of a] (i1);
\vertex [below left=of a] (i2);
\vertex [above right=of b] (f1);
\vertex [below right=of b] (f2);
\diagram* {
(i1) -- [fermion] (a) -- [fermion] (i2),
(a) -- [photon] (b),
(f1) -- [fermion] (b) -- [fermion] (f2),
};
\end{feynman}
\end{tikzpicture}
\begin{tikzpicture}
\begin{feynman}
\vertex (a){\(\alpha,\mu\)};
\vertex [right=1.5cm of a] (b){\(\beta,\nu\)};
\vertex [above left=of a] (i1);
\vertex [below left=of a] (i2);
\vertex [above right=of b] (f1);
\vertex [below right=of b] (f2);
\diagram* {
(i1) -- [fermion, momentum=\(P_1\)] (a) -- [anti fermion, momentum=\(P_2\)] (i2),
(a) -- [gluon] (b),
(f1) -- [fermion, momentum'=\(P_3\)] (b) -- [anti fermion, momentum'=\(P_4\)] (f2),
};
\end{feynman}
\end{tikzpicture}
\end{document}