我之前问过一个问题,关于如何在涉及 blob 之前创建一个 4 点顶点。我得到的答案是
\documentclass{article}
\usepackage{tikz-feynman,contour}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex[blob,label={above:$P$}] (m) at ( 0, 0) {\contour{white}{$\leftarrow$}};
\vertex (a) at (-2,-1) {$K' + P \\ \uparrow$};
\vertex (b) at ( 2,-1) {$\uparrow \\ K + P$};
\vertex (c) at (-2, 1) {$-K' \\ \downarrow$};
\vertex (d) at ( 2, 1) {$\downarrow \\ -K$};
\diagram* {
(d) -- [fermion] (m) -- [fermion] (c),
(b) -- [fermion] (m) -- [fermion] (a),
};
\end{feynman}
\end{tikzpicture}
\end{document}
现在我想制作一个如下所示的:
我该如何修改我的初始代码才能获得这个?
//编辑:右侧的玻色子传播器(曲线)指向左侧的箭头也很好。
//Edit2:这是我所拥有的:
\documentclass{article}
\usepackage{tikz-feynman,contour}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex[blob,label={above:$P$}] (m) at ( 0, 0) {\contour{white} {$\leftarrow$}};
\vertex (a) at (-2,-1) {$K' + P \\ \uparrow$};
\vertex (b) at ( 2,-1) {$\uparrow \\ K + P$};
\vertex (c) at (-2, 1) {$-K' \\ \downarrow$};
\vertex (d) at ( 2, 1) {$\downarrow \\ -K$};
\diagram* {
(d) -- [fermion] (m) -- [fermion] (c),
(b) -- [fermion] (m) -- [fermion] (a),
};
\end{feynman}
\begin{feynman}
\vertex(m) at ( 0, 0);
\vertex (a) at (-2,-1) {$K + P \\ \uparrow$};
\vertex (c) at (-2, 1) {$-K \\ \downarrow$};
\vertex(n) at ( 2, 0) {$P$};
\diagram* {
(m) -- [fermion] (a),
(m) -- [fermion] (c),
(n) -- [boson] (m),
};
\end{feynman}
\begin{feynman}
\vertex(m) at ( 0, 0);
\vertex (a) at (2,-1) {$K + P \\ \uparrow$};
\vertex (c) at (2, 1) {$-K \\ \downarrow$};
\vertex(n) at ( -2, 0) {$P$};
\diagram* {
(m) -- [fermion] (a),
(m) -- [fermion] (c),
(n) -- [boson] (m),
};
\end{feynman}
\end{tikzpicture}
\end{document}
我得到了我想要的所有 3 个图表。我的问题是,它们全都位于彼此之下,但我需要它们彼此相邻(带有箭头和加号)。有什么建议吗?
答案1
很高兴看到你尝试回答自己的问题!我会帮你解决最后一点 :)
为了使它们并排显示,您可以做以下两件事之一:
- 翻译所有 Ti钾其他图表的 Z 坐标,这样就可以使用相对于原点的事物
(0,0)
,而不是使用原点。(5,5)
- 分离 Ti钾Z 环境,以便 LaTeX 将每个图形放在自己的位置。
在这两种方法中,我更喜欢第二种方法,因为它还允许您在方程中使用图表。唯一的问题是 LaTeX 会将图表的底部与线条的其余部分对齐,这意味着等号和加号不会居中。可以使用 Ti 解决这个问题钾Z 的baseline
键告知 LaTeX 图表应有多高(与字母“g”低于线的方式非常相似)。最后,我给出的论据是我从另一个问题中学到的一个小技巧,它确保所有内容与和符号baseline
对齐。+
=
代码如下:
\RequirePackage{luatex85}
\documentclass{standalone}
\usepackage{amsmath}
\usepackage[compat=1.1.0]{tikz-feynman}
\usepackage{contour}
\begin{document}
\begin{equation*}
\begin{tikzpicture}[baseline=-\the\dimexpr\fontdimen22\textfont2\relax]
\begin{feynman}
\vertex[blob,label={above:$P$}] (m) at (0, 0) {\contour{white} {$\leftarrow$}};
\vertex (a) at (-2,-1) {$K' + P \\ \uparrow$};
\vertex (b) at ( 2,-1) {$\uparrow \\ K + P$};
\vertex (c) at (-2, 1) {$-K' \\ \downarrow$};
\vertex (d) at ( 2, 1) {$\downarrow \\ -K$};
\diagram* {
(d) -- [fermion] (m) -- [fermion] (c),
(b) -- [fermion] (m) -- [fermion] (a),
};
\end{feynman}
\end{tikzpicture}
=
\begin{tikzpicture}[baseline=-\the\dimexpr\fontdimen22\textfont2\relax]
\begin{feynman}
\vertex (m) at ( 0, 0);
\vertex (a) at (-2,-1) {$K + P \\ \uparrow$};
\vertex (c) at (-2, 1) {$-K \\ \downarrow$};
\vertex (n) at ( 2, 0) {$P$};
\diagram* {
(m) -- [fermion] (a),
(m) -- [fermion] (c),
(n) -- [charged boson] (m),
};
\end{feynman}
\end{tikzpicture}
+
\begin{tikzpicture}[baseline=-\the\dimexpr\fontdimen22\textfont2\relax]
\begin{feynman}
\vertex (m) at (0, 0);
\vertex (a) at (2,-1) {$K + P \\ \uparrow$};
\vertex (c) at (2, 1) {$-K \\ \downarrow$};
\vertex (n) at ( -2, 0) {$P$};
\diagram* {
(m) -- [fermion] (a),
(m) -- [fermion] (c),
(n) -- [anti charged boson] (m),
};
\end{feynman}
\end{tikzpicture}
\end{equation*}
\end{document}