无法水平对齐图表

无法水平对齐图表

我有这 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。

相关内容