我想将左侧和右侧顶点命名为 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
一个顶点不能同时是particle
和dot
,但您可以在点旁边添加标签,即dot,label=right:text
。
还要注意,当您定义了b
一次之后,使用b[dot]
从到绘制一条线时a
会b
引发错误。因此,我删除了[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}