我正在尝试执行代码:
\documentclass{article}
\usepackage{feynmp}
\begin{document}
\unitlength = 1mm
% determine the unit for the size of diagram.
\begin{fmffile}{fmfile}{simple_tree}
\begin{fmfgraph}{50,35}
\fmfleft{i1,i2}
\fmfright{o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11}
\fmf{fermion}{i1,v1,o1}
\fmf{gluon}{v1,v2}
\fmf{fermion}{o2,v2,v3}
\fmf{fermion}{v3,v4,v5,o3}
\fmf{fermion}{v5,v6}
\fmf{fermion}{o4,o5}
\end{fmffile}
\end{document}
但是我收到一个错误,开头是
! Missing $ inserted
我可以问我这里错在哪里吗?
编辑:我已将代码更改如下,并附上feynmp-auto
和图表修正:
\documentclass{article}
\usepackage{feynmp-auto}
\begin{document}
\unitlength = 40mm
% determine the unit for the size of diagram.
\begin{fmffile}{simple_tree}
\begin{fmfgraph}(50,35)
\fmfleft{i1,i2}
\fmfright{o1,o2,o3,o4,o5}
\fmf{fermion}{i1,v1,o1}
\fmf{gluon}{v1,v2}
\fmf{fermion}{o2,v2,v3}
\fmf{fermion}{v3,v4,v5,o3}
\fmf{gluon}{v5,v6}
\fmf{fermion}{o4,v6,o5}
\end{fmfgraph}
\end{fmffile}
\end{document}
但是现在我收到了错误:
! LaTeX Error: File `feynmp-auto.sty' not found.
来自 Texmaker。我使用命令行并得到相同的结果。
答案1
环境的语法fmffile
是
\begin{fmffile}{<filename>}
因此,您的代码的文件名是fmfile
,而 LaTeX 不知道如何处理{simple_tree}
,因此尝试对其进行排版。
文件名是输出 Metapost 文件的名称;如果你想调用它simple_tree
,可以说
\begin{fmffile}{simple_tree}
以下行也存在错误,应该是
\begin{fmfgraph}(50,35)
使用圆括号而不是大括号。
最后,\end{fmfgraph}
缺少了。正确的代码:
\documentclass{article}
\usepackage{feynmp}
\begin{document}
\setlength{\unitlength}{1mm}
% determine the unit for the size of diagram.
\begin{fmffile}{simple_tree}
\begin{fmfgraph}(50,35)
\fmfleft{i1,i2}
\fmfright{o1,o2,o3,o4,o5,o6,o7,o8,o9,o10,o11}
\fmf{fermion}{i1,v1,o1}
\fmf{gluon}{v1,v2}
\fmf{fermion}{o2,v2,v3}
\fmf{fermion}{v3,v4,v5,o3}
\fmf{fermion}{v5,v6}
\fmf{fermion}{o4,o5}
\end{fmfgraph}
\end{fmffile}
\end{document}
笔记
使用 Metapost 编译此代码会出现错误:
feynmf: warning: dangling vertex `v6' colliding with `v5'.
feynmf: Have you seen the warning messages above?
They are usually caused by misspelling a vertex'
name and can trigger errors further below!
Fix the typos and run LaTeX and Metafont again.
尝试之前请先修复代码。
建议
如果你有最新的 TeX 发行版,你可以更改
\usepackage{feynmp}
进入
\usepackage{feynmp-auto}
这将负责 Metapost 的运行(如果环境中的代码fmffile
发生变化,则需要两次 LaTeX 运行)。