如何在费曼图圆圈内放置标签?

如何在费曼图圆圈内放置标签?

我有这个带圆圈的简单费曼图:

在此处输入图片描述

我想把数字“1”放在那个圆圈的中间。

我尝试过这些:

  • \fmfiv{lab=1}{c}
  • \fmfiv{lab=1}{.5[nw,se])
  • \fmfiv{lab=1}{(.4999w, .5h)}
  • \fmfiv{lab=1}{(.5001w, .5h)}

但无论我输入什么常数,乳胶都拒绝将其放入圆圈内。

乳胶:

\documentclass[24pt]{article}
\usepackage{amsmath,amsfonts,epsf}
\usepackage{amssymb}
\usepackage[pdftex]{graphicx}
\usepackage{grffile}
\usepackage{feynmp-auto}

\begin{document}

    \begin{fmffile}{2ptcorrection1}
    \begin{fmfgraph*}(220,12)
    \fmfpen{thick}
    \fmfleft{i1}
    \fmfright{o1}
    \fmf{plain}{i1,v1}
    \fmf{dashes, left=1, tension=0.3}{v1,v2}
    \fmf{plain, right=1, tension=0.3}{v1,v2}
    \fmf{plain}{v2,o1}
    \end{fmfgraph*}
    \end{fmffile}

\end{document}

顺便说一下,坐标是:“c”代表中心,西南,东南,东北,西北。

更新:感谢 hftf回答

答案1

我可以通过使用phantom圆圈上的(不可见的)边缘并将标签设置label.dist0位于该边缘的中间,使标签看起来位于圆圈的中心。

\documentclass{minimal}
\usepackage{grffile}
\usepackage{feynmp-auto}

\begin{document}

    \begin{fmffile}{2ptcorrection1}
    \begin{fmfgraph*}(220,12)
    \fmfpen{thick}
    \fmfleft{i1}
    \fmfright{o1}
    \fmf{plain}{i1,v1}
    \fmf{dashes, left=1, tension=0.3}{v1,v2}
    \fmf{plain, right=1, tension=0.3}{v1,v2}
    \fmf{plain}{v2,o1}

    % This is where the magic happens:
    \fmf{phantom,label.dist=0,label=1}{v1,v2}

    \end{fmfgraph*}
    \end{fmffile}

\end{document}

它看起来是这样的:

位于费曼图圆圈中间的标签

答案2

这也可以通过新的费曼包(另请参阅项目页面)。

feynman环境中,首先在宏中绘制实际图表\diagram,然后可以使用通常的 TiZ 命令用于放置标签(此处使用的语法需要calc库,该库由 Ti 默认加载)您必须使用 进行编译lualatex才能利用顶点的自动定位功能。

\documentclass[tikz]{standalone}
\usepackage{tikz-feynman}
\tikzfeynmanset{compat=1.0.0}
\begin{document}
\begin{tikzpicture}
  \begin{feynman}
    \diagram[layered layout, horizontal=a to d] {
      a --  b,
      b -- [scalar, half left] c -- [half left] b,
      c -- d,
    };
    \node [red] at ($(b)!0.5!(c)$) {1};
  \end{feynman}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容