tikz-feynman: assimetria entre linhas de partículas e antipartículas

tikz-feynman: assimetria entre linhas de partículas e antipartículas

O seguinte código:

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

fornece a seguinte saída

insira a descrição da imagem aqui

A seta correspondente a uma partícula viajando para trás no tempo é assimétrica à seta correspondente a uma antipartícula viajando para frente no tempo, embora seja a mesma situação física.

A linha antipartícula também é assimétrica em relação a si mesma.

Comentários?

Responder1

Resumindo: possível erro de sinal no pacote, veja abaixo para discussão. Aqui está uma solução possível:

saída do primeiro código

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

Não sei nada sobre física e também não tenho certeza de que tipo de comentários você queria. Se você acha que o pacote faz a coisa errada aqui, você deve criar um problema emhttps://github.com/JP-Ellis/tikz-feynman/issues, este site é o lugar errado para relatórios de bugs. (Editar:https://github.com/JP-Ellis/tikz-feynman/issues/48)

Se você está se perguntando por que isso acontece, uma pequena pesquisa no código do pacote será esclarecedora. O fermionestilo parece basicamente adicionar o estilo with arrow=0.5e anti fermiono faz with reversed arrow=0.5. Esses dois estilos são mostrados no exemplo de código abaixo, que gera uma saída semelhante ao seu código:

saída de código

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

Uma coisa que se destaca um pouco é queambosestilos do xshift=-0.5mm, o que significa que em ambos os casos a seta é deslocada 0,5 mm em direção ao início do caminho. Neste exemplo, isso significa que a seta na linha superior está deslocada para a direita e a da linha inferior para a esquerda, causando a assimetria. Poderia fazer mais sentido se o with reversed arrowestilo fizesse xshift=0.5mmisso. Com essa alteração, o código acima irá gerar esta saída:

saída de código

informação relacionada