我正在尝试将左侧文本与右侧图表对齐。但是没有效果。如果我使用 \feynmandiagram[baseline],则可以完成。但是如果我手动调整图表,则不起作用。下面是一个例子
\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{braket}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{tikz-feynman}
\usepackage[compat=1.1.0]{tikz-feynman}
\usepackage{simpler-wick}
\usetikzlibrary{calc}
\usepackage{cancel}
\begin {document}
$
\braket{p_1p_2|i\mathcal{T}|p_Ap_B}=
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex[right=2 cm of a ](b);
\vertex[below=2 cm of b] (c);
\vertex[left=2 cm of c](d);
\vertex[below right=1cm of a](e);
\diagram*{
(a)--(c),(b)--(d)
};
\end{feynman}
\end{tikzpicture}
+
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=2cm of a] (b);
\vertex[above right=1.414 cm of a](c);
\vertex[above=1 cm of c](d);
\vertex[above right=1.414 cm of d](e);
\vertex[above left=1.414 cm of d](f);
\diagram*{
(a)--(c),
(b)--(c),
(c)--[out= 0,in=0](d),
(c)--[out=180,in=180](d),
(d)--(e),
(d)--(f)
};
\end{feynman}
\end{tikzpicture}
$
\end{document}
给我这个结果。但我希望左边的文本与图表对齐。我该怎么做呢?谢谢。
答案1
- 您加载
tikz-feynman
两次 simpler-wick
必须在“tikz-feynman”之前加载包,否则这两个包之间会发生冲突- 最好将您的方程式写成 diapslay 数学,而不是行数学
- 对于 align
tikzpicture
,你应该将它们的基线移动到它们的中心 - 方程应该在框架内
\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{braket}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{simpler-wick}
\usepackage[compat=1.1.0]{tikz-feynman}
\usetikzlibrary{calc}
\usepackage{cancel}
\begin{document}
\begin{frame}
\[ % <---
\braket{p_1p_2|i\mathcal{T}|p_Ap_B}=
\begin{tikzpicture}[baseline=(current bounding box.center)]
\begin{feynman}
\vertex (a);
\vertex[right=2 cm of a ](b);
\vertex[below=2 cm of b] (c);
\vertex[left=2 cm of c](d);
\vertex[below right=1cm of a](e);
\diagram*{
(a)--(c),(b)--(d)
};
\end{feynman}
\end{tikzpicture}
+
\begin{tikzpicture}[baseline=(current bounding box.center)]
\begin{feynman}
\vertex (a);
\vertex [right=2cm of a] (b);
\vertex[above right=1.414 cm of a](c);
\vertex[above=1 cm of c](d);
\vertex[above right=1.414 cm of d](e);
\vertex[above left=1.414 cm of d](f);
\diagram*{
(a)--(c),
(b)--(c),
(c)--[out= 0,in=0](d),
(c)--[out=180,in=180](d),
(d)--(e),
(d)--(f)
};
\end{feynman}
\end{tikzpicture}
\]
\end{frame}
\end{document}
答案2
除了@Zarko 的精彩回答之外,您还可以通过 在数学模式中垂直居中任何内容\vcenter{\hbox{...}}
。
\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{braket}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{simpler-wick}
\usepackage[compat=1.1.0]{tikz-feynman}
\usetikzlibrary{calc}
\usepackage{cancel}
\begin{document}
\begin{frame}
\[ % <---
\braket{p_1p_2|i\mathcal{T}|p_Ap_B}=\vcenter{\hbox{%
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex[right=2 cm of a ](b);
\vertex[below=2 cm of b] (c);
\vertex[left=2 cm of c](d);
\vertex[below right=1cm of a](e);
\diagram*{
(a)--(c),(b)--(d)
};
\end{feynman}
\end{tikzpicture}
}}
+ \vcenter{\hbox{%
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=2cm of a] (b);
\vertex[above right=1.414 cm of a](c);
\vertex[above=1 cm of c](d);
\vertex[above right=1.414 cm of d](e);
\vertex[above left=1.414 cm of d](f);
\diagram*{
(a)--(c),
(b)--(c),
(c)--[out= 0,in=0](d),
(c)--[out=180,in=180](d),
(d)--(e),
(d)--(f)
};
\end{feynman}
\end{tikzpicture}
}}
\]
\end{frame}
\end{document}