如何更改边的箭头样式?例如使用费米子线:
\RequirePackage{luatex85}
\documentclass[tikz]{standalone}
\usepackage{tikz-feynman}
\begin{document}
\tikzfeynmanset{ fermion/.style = {???} }
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right of a] (b);
\diagram*{ (a) -- [fermion](b) };
\end{feynman}
\end{tikzpicture}
\end{document}
答案1
在内部,钛钾费曼(加拿大运输安全局) 不使用 Ti 中“箭头”库意义上的“箭头”钾Z;而是使用三角形来装饰路径:
/tikz/decoration={
markings,
mark=at position 0.5 with {
\node[
transform shape,
xshift=-0.5mm,
fill,
inner sep=〈some distance〉,
draw=none,
isosceles triangle
] { };
},
},
/tikz/decorate=true,
具体来说,您可以将形状更改为isosceles triangle
您想要的任何形状。或者,也可以使用\arrow
装饰中的命令(请参阅 Ti钾Z 手册以了解详细信息)。
下面我阐述了两个案例。
\RequirePackage{luatex85}
\documentclass[tikz, border=10pt]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\tikzfeynmanset{
fermion1/.style={
/tikz/postaction={
/tikz/decoration={
markings,
mark=at position 0.5 with {
\node[
transform shape,
xshift=-0.5mm,
fill,
dart tail angle=100,
inner sep=1.3pt,
draw=none,
dart
] { };
},
},
/tikz/decorate=true,
},
},
fermion2/.style={
/tikz/postaction={
/tikz/decoration={
markings,
mark=at position 0.5 with {
\arrow{>[length=6pt, width=5pt]};
},
},
/tikz/decorate=true,
},
},
}
\begin{document}
\feynmandiagram [horizontal=a to b] {
a -- [fermion1] b -- [fermion2] {c, d},
};
\end{document}
由于你可能想要完全改变费米子样式,所以我建议创建一个新的费米子样式,而不是覆盖默认样式。话虽如此,看看Torbjørn T.的回答,因为他在这个回答中比我更笼统!他正在修改 Ti 中的一个底层样式钾Z-Feynman(with arrow
风格),这样箭头就变成了全部粒子。
答案2
线条中间的箭头是使用decoration.markings
库中的装饰放置的。我认为您需要指定一个新的装饰,例如:
\documentclass{article}
\usepackage{tikz-feynman}
\usetikzlibrary{positioning,arrows.meta}
\tikzfeynmanset{ fermion/.style = {
decoration={
markings,
mark=at position 0.5
with {\arrow[xshift=2mm]{Stealth[red,width=3mm,length=4mm]}}
},
postaction=decorate}
}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [fermion](b) };
\end{feynman}
\end{tikzpicture}
\end{document}
更一般地,fermion
中间带有箭头的其他样式使用一种称为 的样式with arrow
,该样式由 定义tikz-feynman
。如果您希望所有这些样式都使用相同的箭头尖,则可以修改该样式。不确定JP-埃利斯软件包作者希望人们能够这样做。
\documentclass[review]{article}
\usepackage{tikz-feynman}
\usetikzlibrary{positioning,arrows.meta}
\tikzfeynmanset{ with arrow/.style = {
decoration={
markings,
mark=at position 0.5
with {\arrow[xshift=2mm]{Stealth[red,width=3mm,length=4mm]}}
},
postaction=decorate}
}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [fermion](b) };
\end{feynman}
\end{tikzpicture}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [charged boson](b) };
\end{feynman}
\end{tikzpicture}
\end{document}
答案3
我改变了一点Torbjørn T.的答案包括反粒子,因为它们似乎是建立在with reversed arrow
(with arrow
如果我错了,请纠正我)。
\documentclass[review]{article}
\usepackage{tikz-feynman}
\usetikzlibrary{positioning,arrows.meta}
\tikzfeynmanset{ with arrow/.style = {
decoration={
markings,
mark=at position 0.5
with {\arrow[xshift=2mm]{Stealth[red,width=3mm,length=4mm]}}
},
postaction=decorate},
with reversed arrow/.style = {
decoration={
markings,
mark=at position 0.5
with {\arrowreversed[xshift=-2mm]{Stealth[red,width=3mm,length=4mm]}}
},
postaction=decorate}
}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [fermion](b) };
\end{feynman}
\end{tikzpicture}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [charged boson](b) };
\end{feynman}
\end{tikzpicture}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [anti fermion](b) };
\end{feynman}
\end{tikzpicture}
\begin{tikzpicture}
\begin{feynman}
\vertex (a);
\vertex [right=of a] (b);
\diagram*{ (a) -- [anti charged boson](b) };
\end{feynman}
\end{tikzpicture}
\end{document}
由此得出以下图表: