tikz-feynman: 입자선과 반입자선 사이의 비대칭성

tikz-feynman: 입자선과 반입자선 사이의 비대칭성

다음 코드:

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

조금 눈에 띄는 점은둘 다스타일은 do 입니다 xshift=-0.5mm. 즉, 두 경우 모두 화살표가 경로 시작 부분을 향해 0.5mm 이동됩니다. 이 예에서는 위쪽 줄의 화살표가 오른쪽으로 이동하고 아래쪽 줄의 화살표가 왼쪽으로 이동하여 비대칭이 발생한다는 의미입니다. 대신 with reversed arrow스타일이 그렇다면 더 의미가 있을 수 있습니다 xshift=0.5mm. 이러한 변경으로 인해 위의 코드는 다음과 같은 출력을 생성합니다.

코드 출력

관련 정보