这就是我得到的。 这是一个例子。你能帮我做第二个吗?我能做所有的事情,但不能做中间的十字架。
$0\nu\beta\beta$
\usepackage{feynmp}
\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
\makeatletter
\def\endfmffile{%
\fmfcmd{\p@rcent\space the end.^^J%
end.^^J%
endinput;}%
\if@fmfio
\immediate\closeout\@outfmf
\fi
\IfFileExists{\thefmffile.mp}{\immediate\write18{mpost \thefmffile}}{}
\let\thefmffile\relax
}
\makeatother
\begin{fmffile}{0nu2beta}
\begin{fmfgraph}(200,150)
\fmfpen{thick}
\fmfleft{i1,i4}
\fmfright{o1,o2,o3,o4}
\fmf{fermion,tension=1}{i1,v1}
\fmf{fermion,tension=0.5}{v1,o1}
\fmf{fermion,tension=1}{i4,v4}
\fmf{fermion,tension=0.5}{v4,o4}
\fmf{fermion,tension=.35}{v2,o2}
\fmf{fermion,tension=.35}{v3,o3}
\fmf{fermion,tension=0.20}{v2,v3}
\fmf{fermion,tension=0.20}{v3,v2}
%\fmf{crossed}{v2,v3}
\fmf{photon,tension=0.5}{v1,v2}
\fmf{photon,tension=0.5}{v4,v3}
\fmfdot{v1,v2,v3,v4}
\end{fmfgraph}
\end{fmffile}'
crossed 不起作用
(PS:我知道我没有使用这个复制的代码但交叉应该可以工作但它不起作用,\fmf{crossed}{v2,v3}
为什么?如何解决?
\fmfcmd{%
style_def majorana expr p =
cdraw p;
cfill (harrow (reverse p, .5));
cfill (harrow (p, .5))
enddef;
style_def alt_majorana expr p =
cdraw p;
cfill (tarrow (reverse p, .55));
cfill (tarrow (p, .55))
enddef;})
答案1
代替feynmp
,有一个名为tikz-feynman
(项目页面),它还允许您绘制费曼图。特别是,它支持马约拉纳粒子和质量插入:
\documentclass[convert]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\begin{tikzpicture}
\begin{feynman}
\vertex (b);
\vertex [below=of b] (c);
\vertex [below left=1cm and 0.4cm of c] (d);
\vertex [above left=1cm and 0.4cm of b] (a);
\vertex [left=of a] (i1);
\vertex [left=of d] (i2);
\vertex[above right of=a] (f1);
\vertex[right of=b] (f2);
\vertex[right of=c] (f3);
\vertex[below right of=d] (f4);
\diagram* {
(a) -- [photon] (b) -- [majorana, insertion=0.5] (c) -- [photon] (d),
(i1) -- [fermion] (a),
(i2) -- [fermion] (d),
(a) -- [fermion] (f1),
(b) -- [fermion] (f2),
(c) -- [fermion] (f3),
(d) -- [fermion] (f4),
};
\end{feynman}
\end{tikzpicture}
\end{document}
答案2
\begin{fmfgraph*}(50,50)
\fmfleft{i0,i1,i2,i3}
\fmfright{f0,f1,f2,f3}
\fmf{fermion,label=$n$,label.side=right}{i3,v1}
\fmf{fermion,label=$p$,label.side=right}{v1,f3}
\fmf{boson,label=$W$,label.side=right,tension=0.3}{v1,v2}
\fmf{fermion,label=$e^-$,label.side=right}{v2,f2}
\fmf{phantom}{i2,v2}
\fmf{plain}{v2,v3,v4}
\fmf{phantom}{i1,v4}
\fmf{fermion,label=$e^-$,label.side=right}{v4,f1}
\fmf{boson,label=$W$,label.side=right,tension=0.3}{v4,v5}
\fmf{fermion,label=$n$,label.side=right}{i0,v5}
\fmf{fermion,label=$p$,label.side=right}{v5,f0}
\fmfdot{v1,v2,v4,v5}
\fmfv{decor.shape=cross,decor.size=.1w}{v3}
\end{fmfgraph*}
答案3
我在一个虚拟顶点上添加了一个十字,现在无中微子双重贝塔衰变的代码是:[PS 使用 Astrek(带有 fmfgraphs)使用标签!]
\documentclass[paper=a4, fontsize=11pt]{article}
\usepackage{feynmp}
%\usepackage{feynmf}
\usepackage{ifpdf}
\ifpdf
\DeclareGraphicsRule{*}{mps}{*}{}
\fi
\makeatletter
\def\endfmffile{%
\fmfcmd{\p@rcent\space the end.^^J%
end.^^J%
endinput;}%
\if@fmfio
\immediate\closeout\@outfmf
\fi
\IfFileExists{\thefmffile.mp}{\immediate\write18{mpost \thefmffile}}{}
\let\thefmffile\relax
}
\makeatother
\begin{document}
\begin{center}
\begin{fmffile}{0nu2beta}
\begin{fmfgraph*}(200,200)
%\fmfpen{thick}
\fmfleft{i1,i4}
\fmfright{o1,o2,o3,o4}
\fmf{fermion,tension=.8}{i1,v1}
\fmf{fermion,tension=0.5}{v1,o1}
\fmf{fermion,tension=.8}{i4,v4}
\fmf{fermion,tension=0.5}{v4,o4}
\fmf{fermion,tension=.4}{v2,o2}
\fmf{fermion,tension=.4}{v3,o3}
\fmf{fermion,tension=1}{v5,v2}
\fmf{fermion,tension=1}{v5,v3}
\fmfv{decor.shape=cross}{v5} % This is the point where I used cross on a dummy vertex
\fmf{photon,tension=.65,label=$W_L$}{v1,v2}
\fmf{photon,tension=.65,label=$W_L$}{v4,v3}
%\fmf{phantom, tension=2}{o1,o2,o3,o4,i1}
\fmfdot{v1,v2,v3,v4}
\fmflabel{$v_1$}{v5}
\fmflabel{u}{o1}
\fmflabel{$e_L$}{o2}
\fmflabel{$e_L$}{o3}
\fmflabel{u}{o4}
\fmflabel{d}{i1}
\fmflabel{d}{i4}
\end{fmfgraph*}
\end{fmffile}
\end{center}
\end {document}
我发现一个有趣的链接可以帮助您理解费曼图: 关于将 feynmf 和 feynmp 包安装到 Miktex 的博客(还提供了使用这些包的一些很好的参考)!