feynmp - ! 缺少 $ 插入

feynmp - ! 缺少 $ 插入

我正在尝试执行代码:

\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 运行)。

相关内容