使用 feynmf 的费曼图 - 保持顶点后的线条笔直,保持线条平坦

使用 feynmf 的费曼图 - 保持顶点后的线条笔直,保持线条平坦
\documentclass[a4paper,11pt]{report}
\usepackage{feynmp}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mps}{*}{}
\begin{document}
\begin{figure}
\label{fig:ele_int_conv}
\centering
\parbox{0.5\textwidth}{
\begin{fmffile}{nonres}
\begin{fmfgraph*}(250,125)
\fmfleft{i1,i2}
\fmfright{o1,o2,o3,o4}
\fmf{fermion,lab=$q$}{i1,v1}
\fmf{fermion,lab=$\bar{q}$}{i2,v1}
\fmf{boson,lab=$Z$}{v1,v2}
\fmf{fermion,lab=$\mu^+$}{v2,v3,o1}
\fmf{boson,lab=$\gamma^*$}{v3,v4}
\fmf{fermion,lab=$e^+$ (missed)}{v4,o2}
\fmf{fermion,lab=$e^-$}{v4,o3}
\fmf{fermion,lab=$\mu^-$}{v2,o4}

\end{fmfgraph*}
\end{fmffile}

最小工作示例产生这通常没问题,但我想使中心“Z”线完全水平,并且我希望 \mu^+ 线是直的,并且只有一个标签。

答案1

基本上你这里需要的是:

  • 幻影粒子(定义你想要的骨架)
  • \fmffreeze(在进一步绘制之前冻结当前形状)

在下面的解决方案中,我还习惯tension将一些线条缩短,并label.side阻止标签重叠。这些有点不合时宜,所以你可能想尝试一下。特别是,我将 Z->mu mu 顶点稍微向左移动,为右侧发生的所有事情留出空间。你可能更喜欢另一种解决方案。

注意:我是用feynmf而不是 来测试的feynmp

\documentclass[a4paper,11pt]{report}
\usepackage{feynmf}
\usepackage[pdftex]{graphicx}
\DeclareGraphicsRule{*}{mf}{*}{}

\begin{document}
\begin{figure}
\label{fig:ele_int_conv}
\centering
\parbox{0.5\textwidth}{
  \begin{fmffile}{nonres}
  \begin{fmfgraph*}(250,125)
    \fmfleft{i1,i2}
    \fmfright{o1,o2,o3,o4}
    \fmf{fermion,label=$q$,tension=2}{i1,v1}
    \fmf{fermion,label=$\bar{q}$,tension=2}{i2,v1}
    \fmf{boson,label=$Z$,tension=2}{v1,v2}
    \fmf{fermion,label=$\mu^-$}{v2,o4}
    \fmf{phantom}{v2,o1}
    \fmffreeze
    \fmf{phantom}{v2,v3}
    \fmf{phantom}{v2,v3,o1}
    \fmffreeze
    \fmf{fermion,label=$\mu^+$,label.side=right}{v2,o1}
    \fmf{boson,label=$\gamma^*$,label.side=left}{v3,v4}
    \fmf{fermion,label=$e^+$ (missed),label.side=left,label.dist=1}{v4,o2}
    \fmf{fermion,label=$e^-$,label.side=left}{v4,o3}
  \end{fmfgraph*}
  \end{fmffile}
}
\end{figure}
\end{document}

相关内容