feynmf:保持图表宽度不变

feynmf:保持图表宽度不变

代码

\documentclass[class=minimal,border=20pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{feynmf}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(250, 250)
    \fmfleft{i1,i2,i3}
    \fmfright{o1,o2,o3}
    \fmftop{t1,t2,t3,t4}
    \fmf{fermion,label=$q_{1}$}{i1,vp1,o1}
    \fmf{fermion,label=$q_{2}$}{i2,vp2,o2}
    \fmffreeze
    \fmf{gluon}{vp1,vp2}
    \fmf{gluon}{vp2,t3}
\end{fmfgraph*}
\end{fmffile}
\end{document}

产生以下费曼图 enter image description here

我怎样才能使 q1 和 q2 对应的线的长度保持相等?

答案1

您需要\fmfstraight命令。默认情况下,侧面和顶部和底部的画廊是弯曲的,因为这通常会产生更美观的外观,但可以使用命令将它们切换为直线\fmfstraight。这应该插入 fmfgraph 块中。抱歉,我无法包含图表,但我无法访问带有 feynmf 的 LaTeX 安装。

\documentclass[class=minimal,border=20pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{feynmf}
\begin{document}
  \begin{fmffile}{diagram}
    \begin{fmfgraph*}(250, 250)
      \fmfstraight
      \fmfleft{i1,i2,i3}
      \fmfright{o1,o2,o3}
      \fmftop{t1,t2,t3,t4}
      \fmf{fermion,label=$q_{1}$}{i1,vp1,o1}
      \fmf{fermion,label=$q_{2}$}{i2,vp2,o2}
      \fmffreeze
      \fmf{gluon}{vp1,vp2}
      \fmf{gluon}{vp2,t3}
    \end{fmfgraph*}
  \end{fmffile}
\end{document}

答案2

很简单的:

    \documentclass[class=minimal,border=20pt]{standalone}
    \usepackage[utf8]{inputenc}
    \usepackage{feynmf}
    \begin{document}
    \begin{fmffile}{diagram}
    \begin{fmfgraph*}(250,250)
        \fmfleft{i0,i1,i2,i3}
        \fmfright{o0,o1,o2,o3}
        \fmf{fermion,label=$q_{1}$}{i1,vp1,o1}
        \fmf{fermion,label=$q_{2}$}{i2,vp2,o2}
        \fmffreeze
        \fmf{phantom}{i3,t3,o3}
        \fmf{gluon}{vp1,vp2}
        \fmf{gluon}{vp2,t3}
    \end{fmfgraph*}
    \end{fmffile}
    \end{document}

enter image description here

相关内容