使用“tikz-feynman”时为“feynman”环境中的所有元素设置颜色

使用“tikz-feynman”时为“feynman”环境中的所有元素设置颜色

我正在尝试绘制一组颜色编码的费曼图。如果我为整个tikzpicture环境设置颜色,一切都会顺利。但是,如果我将颜色传递给环境feynman,似乎没有任何效果。我也尝试过传递/tikz/<color>,以及使用/tikzfeynman/every vertex={<color>}语法,但都无济于事。

根据feynman-tikz文档,将选项传递给\begin{feynman}应该与将选项传递给 相同\begin{scope}

传入的选项〈options〉适用于整个环境,其方式与{scope}TikZ 中的环境工作方式相同。

梅威瑟:

\documentclass[]{standalone}

\usepackage{tikz}
\usepackage{tikz-feynman}

\begin{document}
  \begin{tikzpicture}[baseline=(Abase),scale=0.85,transform shape]
    \useasboundingbox (-0.25,-0.25) rectangle (2.75,2.25);
    \coordinate (base) at (-0.5,1);
    \draw[help lines] (0,0) grid[step=0.25] (2.5,2);
    \begin{feynman}[blue] %% <---- this diagram should be blue
      \coordinate [right=1.5 of base] (Abase);
      \vertex [on grid,below=1 of Abase] (Ai1);
      \vertex [on grid,above=1 of Abase] (Ao1);
      \vertex [on grid,below=1/3 of Abase, dot] (Av1) {};
      \vertex [on grid,above=1/3 of Abase, dot] (Av2) {};
      \vertex [on grid,left=1/3 of Abase] (Avp);
      \vertex [on grid,left=1 of Abase] (Ap1);
      \diagram*[small,horizontal=Ai1 to Ai2]{
        (Ai1) -- (Av1) -- (Av2) -- (Ao1),
        (Av1) -- [scalar, quarter left] (Avp) -- [scalar, quarter left] (Av2),
        (Ap1) -- [photon] (Avp),
      };
    \end{feynman}
    \begin{feynman}[red] %% <---- this diagram should be red
      \coordinate [right=1.5 of Abase] (Dbase);
      \vertex [on grid,below=1 of Dbase] (Di1);
      \vertex [on grid,above=1 of Dbase] (Do1);
      \vertex [on grid,below=1/3 of Dbase, dot] (Dv1) {};
      \vertex [on grid,above=1/3 of Dbase, dot] (Dv2) {};
      \vertex [on grid,left=1/3 of Dbase] (Dvp);
      \vertex [on grid,left=1 of Dbase] (Dp1);
      \diagram*[small,horizontal=Di1 to Di2]{
        (Di1) -- (Dv1) -- (Dv2) -- (Do1),
        (Dv1) -- [scalar, quarter left] (Dvp) -- [scalar, quarter left] (Dv2),
        (Dp1) -- [photon] (Dvp),
      };
    \end{feynman}
  \end{tikzpicture}
\end{document}

输出: 从 MWE 生成 TikZ 图

相关内容