Texによる文書作成24 ~TikZ-FeynHand 3
ファインマンダイアグラムをLaTeXで表記するパッケージとしてTikz-Feynhandの使い方について前回に引き続き紹介する。
1. propagatorの変形
前回はvertex同士を結ぶpropagatorの種類を指定したが、今回は直線を変形して円弧にする方法を紹介する。直線を変形するにはpropagのオプションでvertexに接続する角度を指定する。
例えば上向きの円弧であれば角度をそれぞれ90度に指定するため\propag[fer] (a) to [in=90, out=90] (b);
とする。また下向きの円弧では角度を270度とするため\propag[fer] (a) to [in=90, out=90] (b);
とする。
円弧の曲がり方はloseness
で指定する。
\begin{figure}[htpb] \centering \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (a1) at (0,-1); \vertex (b1) at (2,-1); \vertex (a2) at (0,-2); \vertex (b2) at (2,-2); \vertex (a3) at (0,-3); \vertex (b3) at (2,-3); \propag[fer] (a) to [in=90, out=90] (b); \propag[fer] (a1) to [in=90, out=90, looseness=1] (b1); \propag[fer] (a2) to [in=90, out=90, looseness=1.5] (b2); \propag[fer] (a3) to [in=270, out=270] (b3); \end{feynhand} \end{tikzpicture} \caption{円弧} \end{figure}
実行すると以下のようになる。
in/outを角度で指定するほかに、キーで指定することができる。上向きの円弧であればhalf left
または quarter left
、下向きであればhalf right
または quarter right
とするとin=90,out=90
またはin=270,out=270
のオプションと等価になる。曲がり方はloseness
で指定することができる。
\begin{figure}[htpb] \centering \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,0); \vertex (a1) at (0,-1); \vertex (b1) at (2,-1); \vertex (a2) at (0,-2); \vertex (b2) at (2,-2); \vertex (a3) at (0,-3); \vertex (b3) at (2,-3); \vertex (a4) at (0,-4); \vertex (b4) at (2,-4); \propag[fer] (a) to [half left] (b); \propag[fer] (a1) to [half left, looseness=1.5] (b1); \propag[fer] (a2) to [quarter left] (b2); \propag[fer] (a3) to [half right] (b3); \propag[fer] (a4) to [quarter right] (b4); \end{feynhand} \end{tikzpicture} \caption{円弧,キー指定} \end{figure}
inとoutの角度指定により円弧以外に直線を変形することもできる。
\begin{figure}[htpb] \centering \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \propag[glu] (a) to [out=0, in=180] (b); \vertex (a1) at (0,-1); \vertex (b1) at (2,-2); \propag[bos] (a1) to [out=0, in=90] (b1); \end{feynhand} \end{tikzpicture} \caption{その他変形} \end{figure}
2. ラベルと着色
propagatorによる線の上にラベルを表示するには\porpag
のオプションで[edge label = $k$]
とする。ラベル名は$ $
で囲うとpropagatorの上にラベル名を表示できる。また[edge label' = $k$]
とするとラベル位置をpropagatorの反対側にすることができる。propagatorの色は\propag [fer,orange]
とすることで指定できる。
なお公式マニュアルhttps://arxiv.org/abs/1802.00689 には\propag [fer,Orange]
など最初が大文字で記載されているが、実行するとエラーになる。tikzの公式マニュアル8ページ目,3.6 Colorsに正しいカラーコードの記載がある。http://cremeronline.com/LaTeX/minimaltikz.pdf
\begin{figure}[htpb] \centering \begin{tikzpicture} \begin{feynhand} \vertex (a1) at (0,0); \vertex (a2) at (1,1.5); \vertex (b1) at (1.5,1.5); \vertex (b2) at (2.5,0); \propag [fer,orange] (a1) to [edge label = $k$] (a2); \propag [fer,blue] (b1) to [edge label'= $p'$] (b2); \end{feynhand} \end{tikzpicture} \caption{ラベルと着色} \end{figure}
次にpropagatorが重なった場合、上層に表示するpropagatorはオプションでtopを指定するとともに最後に描画するようにする。下層のpropagatorはwith arrow=0.25
とすることで矢印の位置が上層のpropagatorと重ならないように退避させる。
\begin{figure}[htpb] \centering \begin{tikzpicture} \begin{feynhand} \vertex (a) at (0,0); \vertex (b) at (2,1); \vertex (c) at (0,1); \vertex (d) at (2,0); \propag [fer, blue,with arrow=0.25] (a) to (b); \propag [chabos, orange,top] (c) to (d); \end{feynhand} \end{tikzpicture} \caption{着色と重なり} \end{figure}
3. まとめ
今回はpropagatorの変形、ラベル、着色、重なりなどの処理について紹介した。