この記事では,LaTeXにおいて素粒子物理学や場の理論に登場するFeynman図(ファインマンダイヤグラム)を描画することが得意なパッケージ TikZ-FeynHand について簡単な解説をします.TikZ-FeynHandの詳しいマニュアル[1]が存在します.
今回は,Tikz-FeynHandを使うと何ができるかということを知っていただきたいために執筆しました(筆者はこれまで Inkscape を用いて描画していたので苦労していた).
#Tikz-FeynHandを利用する条件
Tikz-FeynHandを利用する前に,次の条件を満たしている必要があります:
- LaTeXが実行できる環境があること.
-
tikz-feynhand.sty
がインストールされ,図を使いたい.tex
ファイルに読み込むことができていること(TeXLive2018以降でしたらすでに導入されていると思います).
####以上の条件を満たしていない場合
-
LaTeXを実行できない場合は,設定等を再度ご確認ください.
-
tikz-feynhand.sty
がインストールされていない場合は,次のリンクからダウンロードしてください:
https://ctan.org/pkg/tikz-feynhand -
ダウンロードの後,フォルダ内の
tikz-feynhand.sty
,tikzfeynhand.keys.code.tex
,tikzlibraryfeynhand.code.tex
を読み込みたいファイルと同一のディレクトリまたは然るべきディレクトリにコピーし,ターミナルやコマンドプロンプトでmktexlsr
コマンドを必ず実行してください. -
然るべきディレクトリとは、
/usr/local/texlive/2018/texmf-dist/tex/latex/
のような場所のことを指します.新しいディレクトリ/usr/local/texlive/2018/texmf-dist/tex/latex/tikz-feynhand/
を作り、そこにコピーすると良いでしょう.ただしこれはお使いの環境によって異なる場合があります.
#Introduction : Tikz-Feynhandとは
このパッケージは,LaTeX上でFeynman図を描画することに特化しています。従来(2016年)からあるTikz-Feynman
[2]は,LuaTeXでの実行が要求されていましたが,Tikz-FeynHand
はLaTeXで実行できます.
このパッケージはJoshua Ellis氏とMax Dohse氏によるものです.なお,マニュアルには次のように記載されています(一部,文献を示すために置換してあります):
Citations
If you use TikZ-FeynHand for any publication, please be so kind to
cite both Joshua Ellis' original manual [J. Ellis: TikZ-Feynman:
Feynman diagrams with TikZ, Computer Physics Comm. 210, p.103-123,
2017.] as well as this userguide.
License
This PDF and the whole package are free: you can redistribute it
and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your
option) any later version.
(権利的にはこんな感じです...)
#How to use TikZ-FeynHand
以下の内容はマニュアルにも記載されていますが「これを読めば,何ができるかがわかる」程度のものを示します.
##パッケージのロード
Tikz-FeynHand を利用するには,プリアンブルに
\usepackage{tikz-feynhand}
と記述します.tikz
をロードする必要はありません.
##環境
ここでの環境はLaTeXにおける環境のことを指します.
tikz-feynhand
はtikz
と同様にtikzpicture
環境で用いますが,さらにfeynhand
環境を内包するようにします.図として用いたい場合はfigure
環境に,数式に挿入したい場合はalign
環境やequation
環境で記述できます.
\begin{tikzpicture}
\begin{feynhand}
% type commands here
\end{feynhand}
\end{tikzpicture}
##コマンド
###頂点
頂点は\vertex
で記述します.頂点は何かしらの文字で命名します.at
のうしろで,頂点の位置を指定します.この命令には次のようなオプションがあります:
particle, dot, ringdot, squaredot, crossdot, blob, ringblob, grayblob, NWblob, NEblob
また,blue
のように色を指定できます.
ここでオプションを指定しない場合はただの頂点(後述)になります.
それぞれの\vertex
や\propag
(後述)の末尾にはセミコロン;
を必ず置いてください.なお,改行の必要はありません.頂点のいくつかを以下のように示します.
####ただの頂点
\vertex (a) at (-1,0);
#####注意!
先のコマンドを
\vertex (a) at (-1,0) {};
のように指定してしまうと,ダイヤグラムの頂点が白い丸のようになってしまいます.とくに,プロパゲータの交点では,線がつながっていないように見えます(これはマニュアルにも明確にありますが,大事なため記載).
####粒子を示す頂点
粒子の頂点を表す場合はオプションとして[particle]
を置きます.また,粒子の名前を下記のように記述します.以下に例を示します.
\vertex [particle] (f) at (1,0) {$\gamma$};
####Blobな頂点
場の量子論の教科書で見かける場合がある頂点(として記述)です(画像は適当に外線を付け加えました).
\vertex [NEblob] (a) at (0,0) {};
###プロパゲータ
Feynman図の線を描くためには\propag
を用います.あらかじめ頂点を定義しておき,どの頂点からどの頂点に向かって結ぶかを指定します.これには線種(フェルミオンやボソンなど)や半円にしたり、ラベルを付加するオプションがあります:
#####線種
photon, fermion, anti fermion, boson, charged boson, anti charged boson, gluon, scalar, charged scalar, anti charged scalar, ghost, charged ghost, anti charged ghost, majorana, anti majorana
#####エッジスタイル
out, in, looseness, half left, half right, quarter left,quarter right, edge label
また,blue
のように色を指定することができます.プロパゲータのいくつかを以下のように示します.
####ただのプロパゲータ(線だけを表す場合)
\propag [plain, blue] (i1) to (f);
####フェルミオンのプロパゲータ
\propag [fermion] (i1) to [edge label = $p$] (f);
#Sample
ここでは実際の例を示します.先ほどまでに登場したコマンド例がいくつか使われています.下記のソースをそのまま実行するとPDFファイルが作成されます(そうなるように仕込んでいます,環境によって異なる場合があります).図の部分のみをここに掲載します.
######実行例
\documentclass{report}
\usepackage[dvipdfmx]{graphicx}
\usepackage{tikz-feynhand}
\begin{document}
$\beta$ 崩壊のクォークレベルでのダイヤグラムをサンプルとして示す:
\begin{figure}[htpb] %figure環境
\begin{center} %中央揃え
\begin{tikzpicture} %tikzpicture環境
\begin{feynhand} %feynhand環境
\vertex [particle] (i1) at (-3,4) {$u$};
\vertex [particle] (i2) at (-3,3.5) {$d$};
\vertex [particle] (i3) at (-3,3) {$d$};
\vertex [particle] (f1) at (3,4) {$u$};
\vertex [particle] (f2) at (3,3.5) {$d$};
\vertex [particle] (f3) at (3,3) {$u$};
\vertex (w1) at (0,3);
\vertex (w2) at (0,2.5);
\vertex (w3) at (0,2);
\vertex (w4) at (1.5,1);
\vertex [particle] (e) at (3,1.5) {$e^{-}$};
\vertex [particle] (an) at (3,0.5) {$\bar{\nu}_{e}$};
\propag [fermion] (i1) to (w1);
\propag [fermion] (i2) to (w2);
\propag [fermion] (i3) to (w3);
\propag [fermion] (w1) to (f1);
\propag [fermion] (w2) to (f2);
\propag [fermion] (w3) to (f3);
\propag [charged boson] (w3) to [edge label=$W^{-}$] (w4);
\propag [fermion] (w4) to (e);
\propag [anti fermion] (w4) to (an);
\end{feynhand}
\end{tikzpicture}
\caption{サンプル}
\label{fig:sample}
\end{center}
\end{figure}
\end{document}
######実行結果
#その他
実際にはここまでに示した例よりも複雑な図も描画できますし,文章を図の上に書くこともできます.その際には TikZ のマニュアルも参考にされると助けになるかと思います.
#Reference
[1] Max Dohse : TikZ-FeynHand: Basic User Guide, [arXiv:1802.00689]
[2] J. Ellis : TikZ-Feynman: Feynman diagrams with TikZ, Computer
Physics Comm. 210, p.103-123, 2017.
[doi.org/10.1016/j.cpc.2016.08.019] [arXiv:1601.05437]