feynmp 中的外部顶点标签放置

feynmp 中的外部顶点标签放置

我想使用 feynmp 绘制一个简单的 e+e- -> 2 gamma 费曼图,并且我希望外部顶点标签非常接近线条的边缘,因为我的空间不够。

我知道:

  • 外部顶点必须放置\fmfleft\fmfright
  • \fmflabel无法控制标签的放置

有没有什么办法可以让标签任意靠近线条的边缘?

短暂性脑缺血发作

当前状态:

\documentclass[10pt]{article}
\usepackage[usenames]{color}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{feynmp-auto}
\begin{document}
 \begin{fmffile}{feyngraph}  
  \begin{fmfgraph*}(60,60)
    \fmfleft{i2,i3}
       \fmflabel{$e^-$}{i2}
       \fmflabel{$e^+$}{i3}
    \fmfright{o1,o2}    
   \fmflabel{$\gamma$}{o2}
    \fmflabel{$A'$}{o1}
    \fmf{fermion}{i2,b,c,i3}
    \fmf{photon}{b,o1}
    \fmf{photon}{c,o2}
\end{fmfgraph*}
\end{fmffile}    
\end{document}

在此处输入图片描述

答案1

Feynmf 对标签放置有相当多的控制,但这些无法通过命令实现\fmflabel\fmflabel{LABEL}{VERTEX}只是 的快捷方式\fmfv{label=LABEL}{VERTEX},如果您直接使用 ,则可以使用额外的选项\fmfv。 具体来说,这两个选项是label.anglelabel.dist。 在它们两个之间,您几乎可以完全控制标签的位置。

使用这些,我将标签拉得比默认的更近,以获得以下效果

\documentclass[10pt]{article}
\usepackage[usenames]{color}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{feynmp-auto}
\begin{document}
 \begin{fmffile}{feyngraph}  
  \begin{fmfgraph*}(60,60)
    \fmfleft{i2,i3}
    \fmfv{label=$e^-$,label.dist=1}{i2}
    \fmfv{label=$e^+$,label.dist=1}{i3}
    \fmfright{o1,o2}    
    \fmfv{label=$\gamma$,label.dist=1}{o2}
    \fmfv{label=$A'$,label.dist=1}{o1}
    \fmf{fermion}{i2,b,c,i3}
    \fmf{photon}{b,o1}
    \fmf{photon}{c,o2}
\end{fmfgraph*}
\end{fmffile}    
\end{document}

费曼图

答案2

抱歉,因为这并没有回答如何使用出色的feynmpTeX 界面做到这一点的问题,而是展示了如何使用一些基本的元帖子直接加载宏feynmp

在此处输入图片描述

这已被包裹起来,luamplib因此您需要用 来编译它lualatex

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
input feynmp
beginfig(1);

    % define 6 points
    -z2 = z1 = 20 up;
    z3 = z1 + 40 dir 32;
    x5 = -x3; y5 = y3;
    z4 = z2 + 40 dir -32;
    x6 = -x4; y6 = y4;

    drawoptions(withpen pencircle scaled 3/4);
    % draw the fermions
    draw fermion z6 -- z2;
    draw fermion z2 -- z1;
    draw fermion z1 -- z5;
    % and the two photons
    draw photon z1 -- z3;
    draw photon z2 -- z4;
    drawoptions();
    
    % and now the labels
    interim labeloffset := -1;
    drawoptions(withcolor 2/3 blue);
    label.urt("$\gamma$", z3);
    label.lrt("$A'$", z4);
    label.ulft("$e^+$", z5);
    label.llft("$e^-$", z6);
    drawoptions();

endfig;
\end{mplibcode}
\end{document}

在带有 的普通 MP 中input feynmpphotonfermion宏可作为“装饰”添加到路径中,如图所示。

常规labeloffset参数控制点与文本中心之间的距离。这里我将其设置为-1使其美观且紧密。并添加了一些颜色以进行强调。

如果您喜欢这种技术,您可以单独编译它以制作可以作为图形包含的 PDF,或者切换到lualatex整个文档。

请注意,我认为这种方法没有在任何地方记录;但如果您阅读feynmp宏的源代码,那么如何使用它们就相当明显了。

相关内容