以下代码:
\RequirePackage{luatex85}
\documentclass{article}
\thispagestyle{empty}
\usepackage{tikz}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (it);
\vertex [right=1cm of it] (ot);
\vertex [below=0.5cm of it](ib);
\vertex [below=0.5cm of ot](ob);
\diagram*
{
(ot) -- [fermion] (it),
(ib) -- [anti fermion] (ob),
};
\end{feynman}
\end{tikzpicture}
\end{document}
输出如下
尽管物理情况相同,但对应于沿时间逆向运动的粒子的箭头与对应于沿时间向前运动的反粒子的箭头是不对称的。
反粒子线相对于其自身也是不对称的。
评论?
答案1
长话短说:包中可能存在符号错误,请参阅下文讨论。以下是一种可能的解决方法:
\RequirePackage{luatex85}
\documentclass[border=5mm]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\makeatletter
\tikzset{
/tikzfeynman/with reversed arrow/.style={
/tikz/decoration={
markings,
mark=at position #1 with {
\node[
transform shape,
xshift=0.5mm,
rotate=180,
fill,
inner sep=\tikzfeynman@arrow@size,
draw=none,
isosceles triangle
] { };
},
},
/tikz/postaction={
/tikz/decorate=true,
},
}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (it);
\vertex [right=1cm of it] (ot);
\vertex [below=0.5cm of it](ib);
\vertex [below=0.5cm of ot](ob);
\diagram*
{
(ot) -- [fermion] (it),
(ib) -- [anti fermion] (ob),
};
\end{feynman}
\end{tikzpicture}
\end{document}
我对物理一无所知,也不太清楚你想要什么样的评论。如果你认为这个包在这里做错了,你应该在https://github.com/JP-Ellis/tikz-feynman/issues,此站点不适合报告错误。(编辑:https://github.com/JP-Ellis/tikz-feynman/issues/48)
如果你想知道为什么会发生这种情况,稍微翻看一下包代码就会有所启发。样式fermion
看起来基本上是添加了样式with arrow=0.5
,并且anti fermion
确实如此with reversed arrow=0.5
。这两种样式显示在下面的代码示例中,它会生成类似于你的代码的输出:
\RequirePackage{luatex85}
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{
decorations.markings,
shapes.geometric
}
\begin{document}
\begin{tikzpicture}[
% the following is from the file tikzfeyman.keys.code.tex
arrow size/.store in=\tikzfeynman@arrow@size,
arrow size=1.5pt,
with arrow/.style={
/tikz/decoration={
markings,
mark=at position #1 with {
\node[
transform shape,
xshift=-0.5mm,
fill,
inner sep=\tikzfeynman@arrow@size,
draw=none,
isosceles triangle
] { };
},
},
/tikz/postaction={
/tikz/decorate=true,
},
},
with reversed arrow/.style={
/tikz/decoration={
markings,
mark=at position #1 with {
\node[
transform shape,
xshift=-0.5mm,
rotate=180,
fill,
inner sep=\tikzfeynman@arrow@size,
draw=none,
isosceles triangle
] { };
},
},
/tikz/postaction={
/tikz/decorate=true,
},
},
]
\coordinate (a1) at (0,0);
\coordinate (b1) at (1,0);
\coordinate (a2) at (0,-.3);
\coordinate (b2) at (1,-.3);
\draw [with arrow=0.5] (b1) -- (a1);
\draw [with reversed arrow=0.5] (a2) -- (b2);
\end{tikzpicture}
\end{document}
有一点很突出,那就是两个都样式确实如此xshift=-0.5mm
,这意味着在两种情况下箭头都会向路径的起点偏移 0.5 毫米。在此示例中,这意味着顶行上的箭头向右移动,底行上的箭头向左移动,从而导致不对称。如果样式with reversed arrow
确实如此,可能更有意义xshift=0.5mm
。进行此更改后,上述代码将生成以下输出: