顶点命名在 tikz-feynman 中不起作用

顶点命名在 tikz-feynman 中不起作用

我想将左侧和右侧顶点命名为 x 和 y,但是不起作用。

\usepackage{tikz-feynman}
\usepackage[compat=1.1.0]{tikz-feynman} 
\usepackage{simpler-wick}
\usetikzlibrary{calc}
\begin{document}
\feynmandiagram[horizontal=a to b, layered layout]{
   a[dot]--[fermion,half left,edge label=\(p_1\)]b[dot],a--[fermion,half right,edge label'=\(p_2\)]b[dot],
   a--[out=135,in=-135,loop,min distance=2cm,anti fermion,edge label'=\(p_3\)]a,
   b--[fermion,out=45,in=-45,loop,min distance=2cm,edge label=\(p_4\)]b
    };

\feynmandiagram[horizontal=a to b, layered layout]{
 a[particle=\(x\)]--[fermion,half left,edge label=\(p_1\)]b[particle=\(y\)],a--[fermion,half right,edge label'=\(p_2\)]b[dot],
   a--[out=135,in=-135,loop,min distance=2cm,anti fermion,edge label'=\(p_3\)]a,
   b--[fermion,out=45,in=-45,loop,min distance=2cm,edge label=\(p_4\)]b
    };
\end{document}

这些代码生成了这个结果。但我不能同时拥有两者。我怎样才能做到二合一?谢谢。:)

在此处输入图片描述

答案1

一个顶点不能同时是particledot,但您可以在点旁边添加标签,即dot,label=right:text

还要注意,当您定义了b一次之后,使用b[dot]从到绘制一条线时ab引发错误。因此,我删除了[dot]代码中的两处,以注释为准。

代码输出

\documentclass{article}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\feynmandiagram[horizontal=a to b, layered layout]{
 a[particle=\(x\)]--[fermion,half left,edge label=\(p_1\)]
 b[particle=\(y\)],
   a--[fermion,half right,edge label'=\(p_2\)] b, % removed [dot] after b here
   a--[out=135,in=-135,loop,min distance=2cm,anti fermion,edge label'=\(p_3\)]a,
   b--[fermion,out=45,in=-45,loop,min distance=2cm,edge label=\(p_4\)]b
 };

\feynmandiagram[horizontal=a to b, layered layout]{
   a[dot,label=right:\(x\)] % added label=right:\(x\)
    --[fermion,half left,edge label=\(p_1\)]
    b[dot,label=left:\(y\)], % similarly here
   a --[fermion,half right,edge label'=\(p_2\)] b, % removed [dot] after b here as well
   a --[out=135,in=-135,loop,min distance=2cm,anti fermion,edge label'=\(p_3\)] a,
   b --[fermion,out=45,in=-45,loop,min distance=2cm,edge label=\(p_4\)] b
    };

\end{document}

相关内容