ティクツ・ファインマン:粒子線と反粒子線の非対称性

ティクツ・ファインマン:粒子線と反粒子線の非対称性

次のコード:

\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.5anti fermionを実行するように見えますwith reversed arrow=0.5。これら 2 つのスタイルは以下のコード例に示されており、コードに似た出力を生成します。

コードの出力

\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.5mm シフトされます。この例では、これは、上の行の矢印が右にシフトされ、下の行の矢印が左にシフトされることを意味し、非対称を引き起こします。代わりにwith reversed arrowスタイルが を実行した方が意味が通じるかもしれませんxshift=0.5mm。その変更により、上記のコードは次のような出力を生成します。

コードの出力

関連情報