我有这 3 个费曼图。我想让它们位于一条水平线上,但我做不到。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx, threeparttable}
\usepackage{bm}
\usepackage{tikz}
\usepackage{tikz-feynman}
\setlength{\arrayrulewidth}{0.4mm}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\section{Feynman Diagrams}
\begin{tikzpicture}[scale=0.1,baseline, font=\Large,]
\begin{feynman}
\vertex (a1);
\vertex[right=2cm of a1] (a2);
\vertex[right=3cm of a2] (a5);
\vertex[right=2cm of a5] (a6);
\diagram [small] {
(a1) -- [fermion,edge label={\(q\)}] (a2)
-- [fermion, half left,edge label={\(\ell\)}] (a5)
-- [fermion,edge label={\(q\)}] (a6),
(a5) -- [fermion, half left,edge label={\(\ell-q\)}] (a2)
};
\end{feynman}
\end{tikzpicture}
\centerline{\begin{tikzpicture}[baseline, font=\Large]
\begin{feynman}
\vertex (a1);
\vertex[right=2cm of a1] (a2);
\vertex[below=4cm of a2] (a4);
\vertex[below=4cm of a1] (a3);
\vertex[below right=2cm and 3cm of a2] (a5);
\vertex[right=2cm of a5] (a6);
\diagram {
(a1) -- [fermion,edge label={\(q_1\)}] (a2)
-- [line width=1mm,anti fermion,edge label={\(\ell\)}] (a5)
-- [fermion,edge label={\(q_3\)}] (a6),
(a5) -- [anti fermion,edge label={\(q_1+q_2+\ell\)}]
(a4)-- [anti fermion,edge label={\(q_1+l\)}] (a2),
(a3) -- [fermion,edge label={\(q_2\)}] (a4);
};
\end{feynman}
\end{tikzpicture}}
\centerline{ \begin{tikzpicture}[baseline, font=\footnotesize]
\begin{feynman}
\vertex (a1);
\vertex[right=2cm of a1] (a2);
\vertex[right=3cm of a2] (a5);
\vertex[right=2cm of a5] (a6);
\diagram {
(a1) -- [fermion,edge label={\(p\)}] (a2)
-- [line width=0.8mm,fermion, half left,fermion,edge label={\(q_1\)}] (a5)
-- [fermion,edge label={\(q\)}] (a6),
(a2) -- [fermion,line width=0.8mm, half right,edge label={\(q_2\)}](a5),
(a5) --[line width=0.8mm,fermion,edge label={\(q_1+q_2-p\)}] (a2)
};
\end{feynman}
\end{tikzpicture}}
\end{document}
答案1
您需要减少距离以使图形适合一行。更重要的是,我认为您不应该滥用边缘标签来指示动量,而应该使用动量键。您还可以使用动量守恒使一些表达式更短。然后它确实适合一行。水平对齐由矩阵完成,这使我们能够以简单的方式确保图表之间的距离一致。我还替换了\centerline
赞成\centering
并将图表放在图中。
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{siunitx, threeparttable}
\usepackage{bm}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\setlength{\arrayrulewidth}{0.4mm}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\section{Feynman Diagrams}
\begin{figure}[htb]
\centering
\begin{tikzpicture}[baseline, font=\Large]
\matrix[column sep=1ex]{
\begin{feynman}
\vertex (a1);
\vertex[right=1cm of a1] (a2);
\vertex[right=1.5cm of a2] (a5);
\vertex[right=1cm of a5] (a6);
\diagram {
(a1) -- [fermion,momentum={\(q\)}] (a2)
-- [fermion, half left,momentum={\(\ell\)}] (a5)
-- [fermion,momentum={\(q\)}] (a6),
(a5) -- [fermion, half left,momentum={\(\ell-q\)}] (a2)
};
\end{feynman} &
\begin{feynman}[yshift=0.75cm]
\vertex (a1);
\vertex[right=1cm of a1] (a2);
\vertex[below=1.5cm of a2] (a4);
\vertex[below=1.5cm of a1] (a3);
\vertex[below right=0.75cm and 1.5cm of a2] (a5);
\vertex[right=1cm of a5] (a6);
\diagram {
(a1) -- [fermion,momentum={\(q_1\)}] (a2)
-- [line width=1mm,anti fermion,momentum={[thin]\(\ell\)}] (a5)
-- [fermion,momentum={\(q_3\)}] (a6),
(a5) -- [anti fermion,momentum={\(\ell-q_3\)}]
(a4)-- [anti fermion,momentum={\(q_1+\ell\)}] (a2),
(a3) -- [fermion,momentum'={\(q_2\)}] (a4);
};
\end{feynman} &
\begin{feynman}
\vertex (a1);
\vertex[right=1cm of a1] (a2);
\vertex[right=2cm of a2] (a5);
\vertex[right=1cm of a5] (a6);
\diagram {
(a1) -- [fermion,momentum={\(p\)}] (a2)
-- [line width=0.8mm,fermion, half left,fermion,momentum={[thin]\(q_1\)}] (a5)
-- [fermion,momentum={\(p\)}] (a6),
(a2) -- [fermion,line width=0.8mm, half
right,momentum'={[thin]\(q_2-q_1\)}](a5),
(a5) --[line width=0.8mm,fermion,momentum={[thin]\(q_2\)}] (a2)
};
\end{feynman}\\ };
\end{tikzpicture}
\end{figure}
\end{document}
请注意,这不需要lualatex
。事实上,遗憾的是,在使用 编译时它不起作用lualatex
,至少在我的计算机上是这样。对于您的代码来说,这已经是事实了。所以我认为你不想用 来编译它lualatex
。这是有道理的,布局算法永远不会被使用,这样你就可以将其上传到 arXiv。