配置 Texmaker 为 FeynMP Graphics 运行 mpost

配置 Texmaker 为 FeynMP Graphics 运行 mpost

这个问题导致了一个新的方案的出现:
feynmp-auto

要在用户中放置的命令行是什么

快速构建命令Texmaker 获得:

LaTeX +邮政+ dvips + ps2pdf + 查看PDF

也就是说,为了避免每次运行 LaTeX 命令时手动运行mpostrun on file.mp,TeXMaker 有什么方法可以帮我做这件事吗?

我使用了 TexMaker 自己的向导,它产生了以下命令行:

latex -interaction=nonstopmode %.tex|mpost --interaction nonstopmode |dvips -o %.ps %.dvi|ps2pdf %.ps|"C:/Program Files (x86)/Adobe/Reader 10.0/Reader/AcroRd32.exe" %.pdf

它看起来很好,但是当我运行文件时,file.tex它需要无限的时间而没有结果。

答案1

使用更新的 TeX Live 2012,无需mpost从命令行调用,因为允许在 LaTeX 运行期间调用此程序。只需修改定义即可\endfmffile运行 Metapost。

\documentclass{article}
\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{document}

\begin{fmffile}{abc}
\begin{fmfgraph}(40,25) 
\fmfpen{thick}
\fmfleft{i1,i2} 
\fmfright{o1,o2}
\fmf{fermion}{i1,v1,v3,o1}
\fmf{fermion}{o2,v4,v2,i2}
\fmf{photon}{v1,v2} 
\fmf{photon}{v3,v4}
\fmfdotn{v}{4} 
\end{fmfgraph} 
\end{fmffile}

\end{document}

这将产生abc.1在下次运行中包含的内容,并带有通常的命令行调用。

使用 MiKTeX 可能无法工作,这取决于mpost“受限 shell”是否允许。

相关内容