つれづれなる備忘録

日々の発見をあるがままに綴る

Texによる文書作成22 ~TikZ-FeynHand

 今回は素粒子物理学などに使われるファインマンダイアグラムをLaTeXで表記するパッケージとしてTikz-Feynhandについて紹介したい。

1. Tikz-Feynhand

 ファインマンダイアグラムを描画するパッケージとしてTikz-Feynhandを利用するが、Cloud-LaTexを使用する場合はそのままロードすることができる。 インストールが必要な環境の場合は、以下に設定方法(+使用方法)が記載されている。

qiita.com

公式マニュアルは以下にある。

[1802.00689] TikZ-FeynHand: Basic User Guide

2. Tikz-Feynhandロードと仕組み

まず Tikz-Feynhandをロードするにはプリアンブル領域で

\usepackage[compat=1.1.0]{tikz-feynhand}

\usepackage {tikz-feynhand}でもよいがCloud-LaTeXでロードする場合は、オプション[compat=1.1.0]とすると警告メッセージを回避できる。

tikz-feynhandのコマンドは以下のようにtikzpicture環境下にfeynhand環境を用意した上でコマンドを記述する。

\begin{tikzpicture}
\begin{feynhand}
% feynhandのコマンド
\end{feynhand}
\end{tikzpicture}

図としてキャプションやラベルを付ける場合は、一番上層にfigure環境を用意することで\caption\labelを使用できる。

\begin{figure}[htpb]
\centering
\begin{tikzpicture}
\begin{feynhand}
% feynhandのコマンド
\end{feynhand}
\end{tikzpicture}
\caption{test}
\end{figure} 

3. ファインマンダイアグラムの描画

 基本的には\vertexコマンドで頂点の座標を定義して、\propagコマンドで2つの頂点に線を引くという流れになる。 まず\vertex (a) at (0,0);とすると座標(0,0)にaというラベルの頂点を定義する。頂点の定義のみでこの状態では何も表示されない。 同様に\vertex (b) at (0,0);として座標(2,0)にbというラベルの頂点を定義する。次に\propag [plain] (a) to (b);とすると直線plainをラベルaからラベルbに向かって引くというコマンドになる。 以下頂点bの座標を変えて、横、縦、斜めに線を描画する例を示す。

\begin{figure}[htpb]
\centering

\begin{tikzpicture}
\begin{feynhand}
\vertex (a) at (0,0); \vertex (b) at (2,0);
\propag [plain] (a) to (b);
\end{feynhand}
\end{tikzpicture}
\caption{横向き}
\end{figure} 

\begin{figure}[htpb]
\centering
\begin{tikzpicture}
\begin{feynhand}
\vertex (a) at (0,0); \vertex (b) at (0,-1);
\propag [plain] (a) to (b);
\end{feynhand}
\end{tikzpicture}
\caption{下向き}
\end{figure} 

\begin{figure}[htpb]
\centering
\begin{tikzpicture}
\begin{feynhand}
\vertex (a) at (0,0); \vertex (b) at (1,-1);
\propag [plain] (a) to (b);
\end{feynhand}
\end{tikzpicture}
\caption{斜め下}
\end{figure} 

実行すると以下のようになる。

"vertexとpropagコマンド"
vertexとpropagコマンド

\vertexコマンドにオプションを指定することで、粒子名やドットなどを描画することができる。また\propagコマンドのオプションにplainを変更すると線の種類も変わる。 例えば粒子名は\vertex[particle] (a) at (0,0) {$gamma$}とするとγが頂点aの横に表示される。\vertex[dot]とすると頂点aに点が打たれる。

\begin{figure}[htpb]
\centering
\begin{tikzpicture}
\begin{feynhand}
\vertex[particle] (a) at (0,0) {$\gamma$}; \vertex[dot] (b) at (1,-1){};
\propag [plain] (a) to (b);
\end{feynhand}
\end{tikzpicture}
\caption{斜め下}
\end{figure} 

\begin{figure}[htpb]
\centering
\begin{tikzpicture}
\begin{feynhand}
\vertex (a) at (0,0); \vertex (b) at (1,-1);
\propag [photon] (a) to (b);
\end{feynhand}
\end{tikzpicture}
\caption{斜め下}
\end{figure} 

実行すると以下のようになる。

"vertex,propagコマンドのオプション"
vertex,propagコマンドのオプション

4. まとめ

 今回はTikZ-FeynHandによるファインマンダイアグラムの描画方法について紹介した。