我正在尝试排版一个方程,其中有很多费曼图,我用 绘制tikz-feynman
,如下面我粘贴的示例所示。当我编译时,它在第一个 处停止tikzpicture
,并出现以下错误:
Runaway argument?
&= \begin {tikzpicture}[scale=0.64,baseline=(o)] \begin {feynman}[in\ETC.
! Paragraph ended before \align* was complete.
<to be read again>
\par
l.17
我尝试使用pdflatex
和,两者之间没有区别。如果我使用和组合lualatex
代替环境,它可以正常工作。但是我想使用因为方程很长(我在下面的 MWE 中尽可能缩短了它),这样我就可以用 在不同页面中拆分方程。align*
equation*
aligned
align*
\allowdisplaybreaks
我也尝试使用简单的tikzpicture
s ,例如仅一些圆圈,不带任何内容tikz-feynman
,并且它不会引发任何错误。
问题出在哪里?我可以在align
环境中绘制费曼图吗?如何绘制?
\documentclass[10pt,b5paper]{article}
\usepackage{mathtools}
\usepackage{tikz-feynman}
\begin{document}
\begin{align*}
&=
\begin{tikzpicture}[scale=0.64,baseline=(o)]
\begin{feynman}[inline=(o)]
\path (-1,0) -- (3,2);
\vertex [empty dot, minimum size=0mm] (o) at (1,1) {};
\vertex [dot, label=180:$x$] (x) at (0,0) {};
\vertex [dot, label=0:$x'$] (y) at (2,0) {};
\vertex [dot, label=180:$x_1$] (x1) at (0,2) {};
\vertex [dot, label=0:$x_2$] (x2) at (2,2) {};
\diagram*{
(x1) -- [fermion, half left, out=25, in=155] (x2)
-- [fermion, half left, out=25, in=155] (x1),
(x1) -- [photon] (x2),
};
\draw (x) arc [start angle=180, end angle=-180, radius=3.5mm];
\draw (y) arc [start angle=0, end angle=360, radius=3.5mm];
\end{feynman}
\end{tikzpicture}
-
\begin{tikzpicture}[scale=0.64,baseline=(o)]
\begin{feynman}[inline=(o)]
\path (-1,0) -- (3,2);
\vertex [empty dot, minimum size=0mm] (o) at (1,1) {};
\vertex [dot] (x) at (0,0) {};
\vertex [dot] (y) at (2,0) {};
\vertex [dot] (x1) at (0,2) {};
\vertex [dot] (x2) at (2,2) {};
\diagram*{
(x1) -- [fermion, half left, out=25, in=155] (x2)
-- (o)
-- [fermion] (x)
-- [fermion] (y)
-- (o)
-- [fermion] (x1),
(x1) -- [photon] (x2),
};
\draw [-, line width=2mm, white] (o)++(-2mm,-2mm) -- ++(4mm,4mm);
\draw [-, black] (o)++(-2mm,-2mm) -- ++(4mm,4mm);
\end{feynman}
\end{tikzpicture}
+\\[2mm] &
-
\begin{tikzpicture}[scale=0.64,baseline=(o)]
\begin{feynman}[inline=(o)]
\path (-1,0) -- (3,2);
\vertex [empty dot, minimum size=0mm] (o) at (1,1) {};
\vertex [dot] (x) at (0,0) {};
\vertex [dot] (y) at (2,0) {};
\vertex [dot] (x1) at (0,2) {};
\vertex [dot] (x2) at (2,2) {};
\diagram*{
(x1) -- [fermion, half left, out=25, in=155] (x2)
-- [fermion] (y)
-- [fermion] (x)
-- [fermion] (x1),
(x1) -- [photon] (x2),
};
\end{feynman}
\end{tikzpicture}
-
\begin{tikzpicture}[scale=0.64,baseline=(o)]
\begin{feynman}[inline=(o)]
\path (-1,0) -- (3,2);
\vertex [empty dot, minimum size=0mm] (o) at (1,1) {};
\vertex [dot] (x) at (0,0) {};
\vertex [dot] (y) at (2,0) {};
\vertex [dot] (x1) at (0,2) {};
\vertex [dot] (x2) at (2,2) {};
\diagram*{
(x) -- [fermion, half left, out=25, in=155] (y)
-- [fermion, half left, out=25, in=155] (x),
(x1) -- [photon] (x2),
};
\draw (x1) arc [start angle=0, end angle=360, radius=3.5mm];
\draw (x2) arc [start angle=180, end angle=-180, radius=3.5mm];
\end{feynman}
\end{tikzpicture}
\end{align*}
\end{document}
答案1
经过 OP 和 @Torbjørn T. 的实验,似乎tikzpicture
当它嵌套在方程式中时,环境对于空行并不友好。
方程式(无论是否多行)不喜欢空行,不喜欢空行,即使它们嵌套在 中也不喜欢它们tikzpicture
。
但是,如果使用aligned
嵌套在环境中的空行equation(*)
,则将要编译顺利。