我正在使用 tikz-feynman 绘制与 2x2 子图对齐的费曼图。
然而,图和子图与标题相比的位置非常奇怪,如图所示
这是我的代码的一部分
\documentclass[12pt,a4paper,titlepage]{book}
\usepackage{tikz-feynman}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}{0.5\textwidth}
\centering
\begin{tikzpicture}
\feynmandiagram[large, horizontal=a to b]{
i1[particle=\(\overline d\)]--[fermion]a--[fermion, edge label'=\(\alpha\),momentum=\(p+k\)]b--[fermion, momentum=\(p\)]f1[particle=\(s\)],
i2[particle=\(\overline s\)]--[anti fermion, momentum'=\(p\)]c--[anti fermion, edge label=\(\beta\), rmomentum'=\(k\)]d--[anti fermion]f2[particle=\(d\)],
{[same layer]a--[photon, edge label=\(W\), rmomentum'=\(p+k\)]c},
{[same layer]b--[photon, edge label'=\(W\), momentum=\(k\)]d},
};
\end{tikzpicture}
\caption{}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\begin{tikzpicture}
\feynmandiagram[large, horizontal=a to b]{
i1[particle=\(\overline d\)]--[fermion]a--[fermion, edge label'=\(\alpha\),momentum=\(p+k\)]b--[fermion, momentum=\(p\)]f1[particle=\(s\)],
i2[particle=\(\overline s\)]--[anti fermion, momentum'=\(p\)]c--[anti fermion, edge label=\(\beta\), rmomentum'=\(k\)]d--[anti fermion]f2[particle=\(d\)],
{[same layer]a--[photon, edge label=\(W\), rmomentum'=\(p+k\)]c},
{[same layer]b--[scalar, edge label'=\(H\), momentum=\(k\)]d},
};
\end{tikzpicture}
\caption{}
\end{subfigure}\\
\begin{subfigure}{.5\textwidth}
\fbox{
\begin{tikzpicture}
\feynmandiagram[large, horizontal=a to b]{
i1[particle=\(\overline d\)]--[fermion]a--[fermion, edge label'=\(\alpha\),momentum=\(p+k\)]b--[fermion, momentum=\(p\)]f1[particle=\(s\)],
i2[particle=\(\overline s\)]--[anti fermion, momentum'=\(p\)]c--[anti fermion, edge label=\(\beta\), rmomentum'=\(k\)]d--[anti fermion]f2[particle=\(d\)],
{[same layer]a--[scalar, edge label=\(H\), rmomentum'=\(p+k\)]c},
{[same layer]b--[scalar, edge label'=\(H\), momentum=\(k\)]d},
};
\end{tikzpicture}}
\caption{}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\begin{tikzpicture}
\feynmandiagram[large, horizontal=a to b]{
i1[particle=\(\overline d\)]--[fermion]a--[fermion, edge label'=\(\alpha\),momentum=\(p+k\)]b--[fermion, momentum=\(p\)]f1[particle=\(s\)],
i2[particle=\(\overline s\)]--[anti fermion, momentum'=\(p\)]c--[anti fermion, edge label=\(\beta\), rmomentum'=\(k\)]d--[anti fermion]f2[particle=\(d\)],
{[same layer]a--[scalar, edge label=\(H\), rmomentum'=\(p+k\)]c},
{[same layer]b--[photon, edge label'=\(W\), momentum=\(k\)]d},
};
\end{tikzpicture}
\caption{}
\end{subfigure}
\caption{Box diagram}
\end{figure}
\end{document}
怎么解决这个问题?
谢谢。
答案1
首先,我想说,看到我创建的包得到充分利用真是太棒了!这些图表看起来很棒:D
现在,关于您遇到的问题,这是因为您有:
\begin{tikzpicture}
\feynmandiagram {...};
\end{tikzpicture}
这\feynmandiagram
命令实际上创建了自己的 Ti钾Z 环境,因此应该不是可以在{tikzpicture}
。您正在创建 Ti钾Ti内的Z图片钾Z 图片通常不是一个好主意。 的目的\feynmandiagram
是它是一个仅用于费曼图的独立命令。
如果你想在 Ti 中添加更多花哨的注释钾Z,或者将费曼图作为更大的 Ti 的一个组成部分钾Z图片,甚至需要手动放置顶点,那么流程是:
\begin{tikzpicture}
<other TikZ commands>
\begin{feynman}
\diagram {...};
<other Feynman and/or TikZ commands>
\end{feynman}
<other TikZ commands>
\end{tikzpicture}
{feynman}
请注意,里面有一个附加环境{tikzpicture}
,并且图表的命令是\diagram
而不是\feynmandiagram
。
因此,这是您的固定 MWE:
\documentclass[12pt,a4paper,titlepage]{book}
\usepackage{tikz-feynman}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.49\textwidth}
\centering
\feynmandiagram [large, horizontal=a to b] {
i1 [particle=\(\overline d\)]
-- [fermion] a
-- [fermion, edge label'=\(\alpha\), momentum=\(p+k\)] b
-- [fermion, momentum=\(p\)] f1[particle=\(s\)],
i2 [particle=\(\overline s\)]
-- [anti fermion, momentum'=\(p\)] c
-- [anti fermion, edge label=\(\beta\), rmomentum'=\(k\)] d
-- [anti fermion] f2 [particle=\(d\)],
{[same layer]
a -- [photon, edge label=\(W\), rmomentum'=\(p+k\)] c
},
{[same layer]
b -- [photon, edge label'=\(W\), momentum=\(k\)] d
},
};
\caption{\(WW\) box diagram}
\end{subfigure}
\begin{subfigure}[t]{0.49\textwidth}
\centering
\feynmandiagram [large, horizontal=a to b] {
i1 [particle=\(\overline d\)]
-- [fermion]a--[fermion, edge label'=\(\alpha\), momentum=\(p+k\)] b
-- [fermion, momentum=\(p\)]f1[particle=\(s\)],
i2 [particle=\(\overline s\)]
-- [anti fermion, momentum'=\(p\)] c
-- [anti fermion, edge label=\(\beta\), rmomentum'=\(k\)] d
-- [anti fermion] f2 [particle=\(d\)],
{[same layer]
a -- [photon, edge label=\(W\), rmomentum'=\(p+k\)] c
},
{[same layer]
b -- [scalar, edge label'=\(H\), momentum=\(k\)] d
},
};
\caption{\(WH\) box diagram}
\end{subfigure}
\newline
\begin{subfigure}{0.49\textwidth}
\feynmandiagram [large, horizontal=a to b] {
i1 [particle=\(\overline d\)]
-- [fermion]a--[fermion, edge label'=\(\alpha\),momentum=\(p+k\)] b
-- [fermion, momentum=\(p\)]f1[particle=\(s\)],
i2 [particle=\(\overline s\)]
-- [anti fermion, momentum'=\(p\)] c
-- [anti fermion, edge label=\(\beta\), rmomentum'=\(k\)] d
-- [anti fermion]f2[particle=\(d\)],
{[same layer]
a -- [scalar, edge label=\(H\), rmomentum'=\(p+k\)] c
},
{[same layer]
b -- [scalar, edge label'=\(H\), momentum=\(k\)] d
},
};
\caption{\(HH\) box diagram}
\end{subfigure}
\begin{subfigure}{0.49\textwidth}
\feynmandiagram [large, horizontal=a to b] {
i1 [particle=\(\overline d\)]
-- [fermion] a
-- [fermion, edge label'=\(\alpha\), momentum=\(p+k\)] b
-- [fermion, momentum=\(p\)] f1 [particle=\(s\)],
i2[particle=\(\overline s\)]
-- [anti fermion, momentum'=\(p\)] c
-- [anti fermion, edge label=\(\beta\), rmomentum'=\(k\)] d
-- [anti fermion] f2 [particle=\(d\)],
{[same layer]
a -- [scalar, edge label=\(H\), rmomentum'=\(p+k\)] c
},
{[same layer]
b -- [photon, edge label'=\(W\), momentum=\(k\)] d
},
};
\caption{\(HW\) box diagram}
\end{subfigure}
\caption{Box diagram}
\end{figure}
\end{document}
只需一点小建议,您可以使用空格和换行符使代码更易读;Ti钾Z-Feynman(和 Ti钾Z) 不太在意。