つれづれなる備忘録

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

Texによる文書作成26 ~TikZ

以前LaTeXファインマンダイアグラムが作成できるTikz-Feynhandを紹介したか、今回はおおもとのTikzによる図の描画機能について紹介したい。

atatat.hatenablog.com

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パッケージと基本的な描画方法について紹介した。