tikz-feynman:边缘标签

tikz-feynman:边缘标签

我想了解如何标记图表的边缘,就像这张图一样: 在此处输入图片描述

我假设可以标记顶点然后移动每个标签,但我不知道该怎么做。有人能给出一些建议吗?

我尝试过的:标记每个顶点

\begin{feynman}
    \vertex (v1) {\(cl\)};
    \vertex[right=0.5cm of v1] (v2) {\(cl\)};
    \vertex[right=1cm of v2] (v3) {\(cl\)};
    \vertex[right=0.5cm of v3] (v4) {\(cl\)};;
    \diagram*{(v1)--(v2), (v2)--[half left](v3)--[half left](v2),(v3)--(v4)};
\end{feynman}

这太糟糕了。然后,我尝试标记边缘:

\begin{feynman}
        \vertex (v1);
        \vertex[right=0.5cm of v1] (v2);
        \vertex[right=1cm of v2] (v3);
        \vertex[right=0.5cm of v3] (v4);
        \diagram*{(v1)--[edge label={\(cl \quad\)}](v2), (v2)--[half left,edge label={\(cl \quad cl\)}](v3)--[half left,edge label={\(cl \quad cl\)}](v2),(v3)--[edge label={\(\quad cl\)}](v4)};
    \end{feynman}

它看起来不是那么糟糕,但并不完美:标签距离边缘太远。

答案1

使用像\node(a) at (.6,-.5) {\small cl};tikz 这样的硬编码坐标是一种致命的错误,只要你改变最微小的东西,它就会被破坏。

  • 要将水平线上的标签移动到行的开始和结束,请使用near startnear end

  • 要将圆圈周围的标签移近线,请减少inner sep

  • 不要使用内联数学将多字母内容变为斜体


% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{tikz-feynman}

\begin{document}

\begin{tikzpicture}
\begin{feynman}
        \vertex (v1);
        \vertex[right=0.5cm of v1] (v2);
        \vertex[right=1cm of v2] (v3);
        \vertex[right=0.5cm of v3] (v4);
        \diagram*{
            (v1)--[edge label={\textit{cl}},near start](v2), 
            (v2)--[half left,edge label={\textit{cl\quad cl}},inner sep=1pt](v3)--[half left,edge label={\textit{cl\quad cl}},inner sep=1pt](v2),
            (v3)--[edge label={\textit{cl}},near end](v4)
        };
    \end{feynman}
 \end{tikzpicture}
\end{document}

在此处输入图片描述


或者,无需任何人工干预,就可以让它tikz-feynman完成工作:

% !TeX TS-program = lualatex
\documentclass{article}
\usepackage{tikz-feynman}

\begin{document}

\begin{tikzpicture}[inner sep=2pt]
    \itshape
    \begin{feynman}
        \diagram[horizontal=a to f,small]{
            a--[edge label={cl},near start]b, 
            b -- [quarter right,edge label'={cl}] 
            c -- [quarter right,edge label'={cl}] 
            d -- [quarter right,edge label'={cl}] 
            e -- [quarter right,edge label'={cl}] 
            b,
            d--[edge label={cl},near end]f
        };
    \end{feynman}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容