我试图画出真空极化使用 feynmf-auto 包绘制图表。这是我使用的代码:
\begin{fmffile}{45}
\begin{fmfgraph}(200,200)
\fmfleft{i,v1}
\fmfright{v2,o}
\fmf{photon,tension=5}{i,v1}
\fmf{fermion,tension=5}{v1,v2,v1}
\fmf{photon,tension=5}{v2,o}
\end{fmfgraph}
\end{fmffile}
您能帮我正确地绘制这个图吗?
答案1
您的代码存在几个问题:
首先:你不需要锚定v1
并v2
定位feynmp
它们。
其次,这些tension
选项在这里对您没有帮助。通常,为所有线设置相同的张力是没有意义的;它的效果与不设置所有张力相同。
这将为您提供:
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{45}
\begin{fmfgraph*}(200,200)
\fmfleft{i}
\fmfright{o}
\fmf{photon}{i,v1}
\fmf{fermion}{v1,v2,v1}
\fmf{photon}{v2,o}
\end{fmfgraph*}
\end{fmffile}
\end{document}
但这会产生:
这并不是你想要的。要让费米子弯曲,你需要告诉它用选项向左弯曲left
。像这样:
\fmf{fermion,left=1}{v1,v2,v1}
添加此选项可产生更好的结果:
只是上面和下面仍然有很多空白,而且光子太长了。您可以通过调整开始的图形的形状并增加光子的张力来解决这个问题,使它们变短。这是完成的文章。
以及生成它的代码。
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\begin{fmffile}{45}
\begin{fmfgraph*}(233,144)
\fmfleft{i}
\fmfright{o}
\fmf{photon,tension=3}{i,v1}
\fmf{fermion,left=1}{v1,v2,v1}
\fmf{photon,tension=3}{v2,o}
\end{fmfgraph*}
\end{fmffile}
\end{document}
答案2
尽管您提到使用feynmf/feynmp
,但我会提供使用另一个包的答案:钛钾费曼(加拿大运输安全局)。如果您需要使用,请不要觉得有义务接受这个答案feynmf/feynmp
。
钛钾Z-Feynman,这可以通过以下方式实现:
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [photon] b
-- [fermion, half left] c
-- [fermion, half left] b,
c -- [photon] d,
};
如果你想添加动量箭头,你可以很简单地这样做:
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [photon, momentum=\(p\)] b
-- [fermion, half left, momentum=\(p+k\)] c
-- [fermion, half left, momentum=\(k\)] b,
c -- [photon, momentum=\(p\)] d,
};
完整示例为:
\documentclass[tikz]{standalone}
\usepackage[compat=1.1.0]{tikz-feynman}
\begin{document}
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [photon] b
-- [fermion, half left] c
-- [fermion, half left] b,
c -- [photon] d,
};
\feynmandiagram [layered layout, horizontal=b to c] {
a -- [photon, momentum=\(p\)] b
-- [fermion, half left, momentum=\(p+k\)] c
-- [fermion, half left, momentum=\(k\)] b,
c -- [photon, momentum=\(p\)] d,
};
\end{document}