使用 tikz-feynman 更改边缘的箭头样式

使用 tikz-feynman 更改边缘的箭头样式

如何更改边的箭头样式?例如使用费米子线:

\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装饰中的命令(请参阅 TiZ 手册以了解详细信息)。

下面我阐述了两个案例。

\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 arrowwith 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}

由此得出以下图表:

费米子 带电玻色子

反费米子 反带电玻色子

相关内容