FeynMF(旧版):TeXによるファインマン・ダイアグラムの書き方
Last updated 2001/6/25




FeynMFの情報が新しくなっています。まずは、こちらをご覧になって下さい。

ここでは、Windows上でTeXを用いている人が、ファインマン・ダイアグラムをTeXで書くための方法を解説していきます。(その他のOSでも原理的には同じなので、その環境に応じて応用してください)

TeXでファインマン・ダイアグラムを書くには、パッケージが必要です。pLaTeX2eならここから、LaTeX2.09ならここからinsファイルを、さらに、ここから、dtxファイルをDLしましょう。DL先は、

C:\ptex\texmf\tex\latex\packages\feynmf

というところが良いでしょう。そうしたら今度は、「feynmf.ins」というファイルをTeXでコンパイルします。(TeXを乙部厳己さんの本からインストールしたならvirtexというアプリで、「TeXで処理する」で処理します)
出来るファイルは
「feynmf.log」「feynmf.aux」「feynmf.mf」「feynmf.sty」「feynmf.drv」「feynmp.mp」「feynmp.sty」「feynmp.drv」「fmfman.drv」「fmfman.drv」
です。

ここで、「feynmf.mf」というファイルはmetafontのソースファイルなので

C:\ptex\texmf\fonts\source\feynmf  (ディレクトリ構成は私の設定です)

というディレクトリを作って、そこにコピーしておきましょう。
さらに、ファインマン図を表示するには「*.mf」というファイルが

C:\ptex\texmf\fonts\source\feynmf (別にfeynmfでなくてもいいけど)

にあることが大事なようです。私の知ってる限り、ファインマン図を表示させるには2通りあります。例えば、「template.tex」というファイルをコンパイルしてファインマン図を表示させることにしましょう。これはここにありますのでダウンロードしておいてください。

1)「template.tex」をコンパイルし、その時にできる「fmftempl.mf」ファイルを
 C:\ptex\texmf\fonts\source\feynmf 
 にコピーして、DOSプロンプト上で

 C:\>maketextfm fmftempl

 のように「maketextfm.exe」を実行することで、「fmftemple.mf」metafontソースファイルから
 拡張子.tfmのファイルを生成させて(自分のTeX環境にあわせて実行してください)、もう一度、
 「template.tex」をコンパイルする。

2)「template.tex」そのものを
 C:\ptex\texmf\fonts\source\feynmf
 のフォルダにおいてそこでコンパイルし、上と同じよう「maketextfm.exe」を実行して、再び、
 「template.tex」をコンパイルする。

絶対2)のほうが楽だと思いますが、これでも最良だとは思えません。誰かもっといい方法を教えてください。すると普通に、DVIファイルができてると思います。これを開くと、簡単なファインマン図が表示されると思います。

では、feynmfを実際に使ってみることにしましょう。ここでは、LaTeX2eの形式で説明していくことにします。まず、ベースとして、

\documentclass{article}
\usepackage{feynmf}
\unitlength=1mm
\begin{document}

\begin{fmffile}{filename}
\begin{fmfgraph*}(x,y)
-----------------------------

      グラフを書く命令

-----------------------------
\end{fmfgraph*}
\end{fmffile}

\end{document}

というような形式で書くことになります。ここで、斜体の部分は自由に変えてもらって構いません。但し、filenameの部分を変更して、hogehogeにしたとすると、hogehoge.mfというMETAFONTファイルを生成します。また、x,yは図の大きさをピクセル数で指定するパラメータです。ここで、ピクセル数以外の単位は使えないことに注意してください。

次に、グラフを書く命令の部分を具体的な例でみて見ましょう。例えば、

\fmfleft{em,ep}                     (i)external vertex
\fmfright{fb,f}

\fmflabel{$e^+$}{ep}
\fmflabel{$e^-$}{em}
\fmflabel{$\bar f' $}{fb}
\fmflabel{$f$}{f}
\fmf{fermion}{em,Zee,ep}               (ii)internal vertexとline
\fmf{photon,label=$\gamma,,Z$}{Zee,Zff}
\fmf{fermion}{fb,Zff,f}
\fmfdot{Zee,Zff}

のように記述すると、


のように出力されます。以下、書式の解説などの、詳しい話は、現在工事中です。その代わりに、英語によるマニュアルを置いておきます。あとは試行錯誤ですね。皆さん頑張ってください。