Texによる文書作成26 ~TikZ
以前LaTeXでファインマンダイアグラムが作成できるTikz-Feynhandを紹介したか、今回はおおもとのTikzによる図の描画機能について紹介したい。
1. Tikzのロード
TikzはLaTeXで図をコマンドベースで描画するためのパッケージでTikz-FeynhandはTikzの図形描画機能を利用している。
公式マニュアルの最新版はTikz & PGF version 3.1.9aで1322ページもある
https://pgf-tikz.github.io/pgf/pgfmanual.pdf
Tikzのパッケージ自体はプリアンブル領域に\usepackage{tikz}
でロードできるが、さまざまな機能を利用するにはtikzライブラリもロードする必要がある。
以下線の描画では座標点を取り扱うため、\usetikzlibrary{calc}
として座標計算するcalc
ライブラリをロードしておく
\documentclass[dvipdfmx]{jsarticle} \usepackage{graphicx} \usepackage{tikz} \usetikzlibrary{calc}
2. 直線の描画
描画を行うには\tikz
に続けて描画コマンドを記述するか、tikzpicture環境内\begin{tikzpicture}~\end{tikzpicture}
で描画コマンドを使用する。
例えば単純な直線を描画するには\draw (開始座標)--(終点座標);
とする。
直線の描画:\par \tikz \draw (0,0)--(2,0); \begin{tikzpicture} \draw (1,-1)--(3,-1.5); \end{tikzpicture}
座標点を複数指定すると、連続的に直線を描画できる。
連続直線: \par \tikz \draw (0,0)--(2,1)--(3,-1);
これを利用すると閉じた多角形も描画できる。図形が閉じている場合は最終座標に--cycle;
を加える。例えば三角形は
閉じた直線(三角形):\par \tikz \draw (0,0)--(2,1)--(3,-1)--cycle;
高度な機能として垂線を引くこともできる。最初の行で直線を引いて、直線を引いた座標(0,0),(3,1)と垂線の開始点(1,1)を以下のように指定すると、座標を求めることなく垂線を引くことができる。
垂線: \par \begin{tikzpicture} \draw (0,0)--(3,-1); \draw (1,1)--($(0,0)!(1,1)!(3,-1)$); \end{tikzpicture}
3. 図形の描画
図形は\draw + 図形コマンド
で描画できる。長方形は\draw (開始座標) rectangle (終点座標);
、円は\draw circle (半径);
、楕円はcircleを用いて
\draw (0,0) circle [x radius=x半径, y radius=y半径, rotate=回転角];
とする。
長方形: \par \tikz \draw (0,0) rectangle (3,1); 円: \par \tikz \draw(0,0) circle (1); 楕円:\par \tikz \draw (0,0) circle [x radius=2, y radius=1, rotate=30];
4. 曲線の描画
曲線としてまず円弧の描画方法を示す。1つ目は1つの座標と開始角度、終点角度、半径を指定する。2つ目は2つの座標と角度を指定する。
さらに\draw
の回転オプションを利用して描画した円弧を回転させることができる。
円弧(座標) (偏角1,偏角2,半径):\par \tikz \draw (0,0) arc (30:90:2); 円弧 (座標1) to [偏角1,偏角2] (座標2):\par \tikz \draw (0,0) to [out=60,in=120] (3,0); 円弧 の回転:\par \tikz \draw[rotate=45] (0,0) to [out=45,in=135] (2,0);
次に任意の曲線は、2つ目の円弧の描画方法と同じで、指定する座標が円弧にならないケースに相当する。逆に2つ目の方法は任意曲線の特定の組み合わせが円弧になっていた。
任意の曲線 (座標1) to [偏角1,偏角2] (座標2):\par \tikz \draw (0,0) to [out=45,in=135] (2,2);
最後に放物線はparabola bend
で指定する。具体的には\draw (座標1) parabola bend (頂点座標) (座標2)
とする。
放物線:\par \tikz \draw (-2,-2) parabola bend (0,0) (2,-2);
5. まとめ
今回はLaTeXで図形を描画するTikzパッケージと基本的な描画方法について紹介した。