在费曼图中重新放置标签

在费曼图中重新放置标签

我有以下代码Feynmf

在此处输入图片描述

\documentclass{article}
\usepackage{feynmp}
\usepackage{ifpdf}
\ifpdf
 \DeclareGraphicsRule{*}{mps}{*}{}
\fi
\usepackage{empheq}  

\begin{document}

\unitlength = 2mm
\begin{fmffile}{vert2}
\begin{fmfgraph*}(40,40)

\fmfleft{i1,i2}
\fmfright{i3}
\fmf{photon,label=$\mathbf{a}$}{i3,v1}
\fmf{fermion,label=$\mathbf{b}$,l.side=right}{i1,v2}
\fmf{fermion,label=$\mathbf{c}$}{v3,i2}
\fmf{fermion}{v2,v1}
\fmf{fermion}{v1,v3}
\fmf{photon}{v3,v4}
\fmf{photon}{v4,v2}
\fmfblob{.12w}{v4}
\fmfdot{v1,v2,v3}

\end{fmfgraph*}
\end{fmffile}

\end{document}

现在我想重新定位标签 $a,b,c$,使它们更靠近顶点。此外,我想缩短所有三条传入线。有人知道怎么做吗?

答案1

  • 为了缩短“进来”的线,增加张力,使“进来”的线拉得和进入顶点的另外两条线一样紧

  • 要移动标签,请将它们放在顶点而不是线上,使用\fmfv而不是\fmfdot。如果您想将标签放置在远离顶点的位置,那么您可以调整label.anglelabel.dist直到正确为止。

像这样:

在此处输入图片描述

\documentclass{standalone}
\usepackage{feynmp}
\usepackage{ifpdf}
\ifpdf
 \DeclareGraphicsRule{*}{mps}{*}{}
\fi
\usepackage{empheq}  

\begin{document}

\unitlength = 2mm
\begin{fmffile}{vert2}
\begin{fmfgraph*}(40,40)

\fmfleft{i1,i2}
\fmfright{i3}
\fmf{photon,tension=2}{i3,v1}
\fmf{fermion,tension=2}{i1,v2}
\fmf{fermion,tension=2}{v3,i2}
\fmf{fermion}{v2,v1}
\fmf{fermion}{v1,v3}
\fmf{photon}{v3,v4}
\fmf{photon}{v4,v2}
\fmfblob{.12w}{v4}
\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,label=$\mathbf{a}$,label.angle=-60}{v1}
\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,label=$\mathbf{b}$,label.angle=-60}{v2}
\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,label=$\mathbf{c}$,label.angle=60}{v3}

\end{fmfgraph*}
\end{fmffile}

\end{document}

为了获得更好放置的标签,您可以尝试以下操作:

\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,
    label=$\mathbf{a}$,label.angle=20,label.dist=1cm}{v1}
\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,
    label=$\mathbf{b}$,label.angle=-150,label.dist=8mm}{v2}
\fmfv{decor.shape=circle,decor.filled=full,decor.size=2thick,
    label=$\mathbf{c}$,label.angle=108,label.dist=8mm}{v3}

生成结果:

在此处输入图片描述

相关内容