feynmfパッケージを使ってファインマングラフを作成しようとしています。私の最小限の例は次のとおりです。
\documentclass{article}
\usepackage{feynmf}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(40,25)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmfbottom{b}
\fmf{fermion}{i2,v1,o2}
\fmf{photon}{v1,b}
\fmflabel{i1}{i1}
\fmflabel{i2}{i2}
\fmflabel{o1}{o1}
\fmflabel{o2}{o2}
\fmflabel{b}{b}
\end{fmfgraph*}
\end{fmffile}
\end{document}
一度コンパイルすると、グラフは表示されますが、ラベルは表示されません(予想どおりだと思いますが...)。エラーが発生します
pdflatex> feynmf: Label file diagram.t1 not found:
pdflatex> feynmf: Process diagram.mf with METAFONT and then reprocess this file.
では、言われたとおりに、ターミナル(Xubuntuを使用)でMetafontを使って.mfファイルを処理してみます。
mpost diagram.mf
そして、行き詰まってしまいます。疑問符が表示されて始まり、止まってしまいます。どう進めばいいのか、Metapost が何を伝えようとしているのかわかりません。
This is MetaPost, version 1.803 (kpathsea version 6.1.1)
(mpost.mp (/usr/share/texlive/texmf-dist/metapost/base/plain.mp
Preloading the plain mem file, version 1.004) ) (./diagram.mf
(/usr/share/texmf/metafont/feynmf/feynmf.mf
>> mode_setup
! Isolated expression.
<to be read again>
;
l.117 mode_setup;
?
誰か助けてくれませんか?ラベルはどうやって入手できますか?どうもありがとうございます!
答え1
呼び出すプログラムはMetapostではなくMetafontです。
mf diagram.mf
feynmp
ただし、同じ構文を持ち、Metapost ファイルを生成する を使用する方が適切です。 を取得しdiagram.mp
て実行すれmpost diagram.mp
ば十分です。
もう一つの可能性もあります:
\documentclass{article}
\usepackage{feynmp-auto} % or \usepackage{feynmp}
\begin{document}
\begin{fmffile}{diagram}
\begin{fmfgraph*}(40,25)
\fmfleft{i1,i2}
\fmfright{o1,o2}
\fmfbottom{b}
\fmf{fermion}{i2,v1,o2}
\fmf{photon}{v1,b}
\fmflabel{i1}{i1}
\fmflabel{i2}{i2}
\fmflabel{o1}{o1}
\fmflabel{o2}{o2}
\fmflabel{b}{b}
\end{fmfgraph*}
\end{fmffile}
\end{document}
このパッケージfeynmp-auto
(私が作成したもの) は、手動で実行する必要性さえ回避しますmpost
。ダイアグラムは実行の最後にコンパイルされ (pdflatex
現在の LaTeX 実行でソースが変更された場合のみ)、次の LaTeX 実行時に正しく配置されます。