feynmf 与 pdflatex

feynmf 与 pdflatex

可能重复:
如何将 kile 与 feynmf 或 feynmp 一起使用?

我想使用feynmf,或者更好的feynmp是。我的第一个想法是将运行在对应环境后生成的pdflatex所有文件替换为使用 获得的 PDF 版本。但不幸的是,它抱怨file.[0-9]*mpostfile.mp\fmffile{file}epstopdfpdflatex

! LaTeX Error: Unknown graphics extension: .1.

显然它不知道这个扩展名的文件类型。我怎么才能告诉 LaTeX 这些是 PDF 文件?文件的名称当然不会明确出现在我的 LaTeX 源中。请注意,我查看了如何将 kile 与 feynmf 或 feynmp 一起使用?这对我来说似乎不起作用。此外,我更喜欢一种允许我同时使用latex和进行编译的解决方案pdflatex(当然是在生成相应的feynmf图形文件之后)。我不介意手动运行feynmf和。mpost

答案1

Metapost 创建 postscript 文件,因此要将它们包含在pdflatex-processed 文档中,您需要执行额外的步骤。其中一种方法是使用包pst-pdf。以下是一个例子。

首先,这是文档(tmp.tex):

\documentclass{article}
\usepackage{feynmp}
\usepackage{pst-pdf}
\pagestyle{empty}

\begin{document}

\begin{postscript}
\begin{fmffile}{t}
\begin{fmfgraph*}(40,30) \fmfpen{thick}
\fmfleft{i1,i2} \fmfright{o1,o2}
\fmf{fermion}{i1,v1,o1} \fmf{fermion}{i2,v2,o2}
\fmf{photon,label=$q$}{v1,v2} \fmfdot{v1,v2}
\end{fmfgraph*}
\end{fmffile}
\end{postscript}

\end{document}

正如你所见,后记中的内容在postscript环境中。

现在工作流程

latex tmp                 # Produces the metapost input
mpost t.mp                # Produces t.1 and t.t1.  Can be repeated
                          # for several Feynman diagrams
latex tmp                 # Creates the dvi file with figures
dvips -o tmp-pics.ps tmp  # Creates the ps file with figures
ps2pdf tmp-pics.ps        # Creates the pdf file with figures
pdflatex tmp              # Compiles the result

结果如下:

在此处输入图片描述 ps2pdf tmp-图片.ps

相关内容