【SPONSORED LINK】

LaTeXで図を直接描けるTikZの使い方1|基本的な描線

LaTeXで図を扱いたいとき,もともと画像ファイルを作っておいて,それをgraphicxなどのパッケージで挿入する方法がある.

しかし,図とLaTeXの文字のバランスの調整が難しかったり,図の挿入が綺麗に挿入できないことも少なくない.

そこで,本稿ではTeXファイルに直接記述することで,直線,曲線,グラフなどの図を描くことができるパッケージのTikzのLaTeXでの使い方を紹介する.

画像ファイルを挿入する方法だと,図に修正を加えたいときに別ソフトで画像ファイルの編集をする必要がある.

一方,直接記述して表示できるTikZを用いれば,図の修正がTeX上で完結する.これはメリットであろう.

【SPONSORED LINK】

TikZの準備

TikZはパッケージなので,次の準備が必要である.

  1. TikZパッケージをインストール
  2. プリアンブルにTikZパッケージを使う宣言をする

TikZパッケージはLaTeXの環境を整えた時点で元から準備されていることが多いので,実際に簡単なコードでTikZを動かしてみて動かないときにインストールされてない可能性を疑えばよいと思う.

そのため,TikZパッケージのインストールは省略する.

もしTikZが準備されていなさそうであれば,「TikZ ダウンロード」などと検索して,TikZパッケージをダウンロードし,適切な場所に配置すればよい.

TikZパッケージの宣言

LaTeXのパッケージを知っている人なら,パッケージを使用するためにはプリアンブル(\documentclassと\begin{document}の間)でパッケージを使う宣言が必要であることは基本的であろう.

TikZパッケージも例外ではない.

まずは,あえて何も説明せず使える状態にしよう.

.texファイルに以下のように

と記述する.これだけで既にTikZを使える状態になっている.

簡単な説明

ここでは,プリアンブルの

の部分の説明をするが,「とりあえず使いたいんや!」という方は飛ばしても構わない.

ドライバの宣言

冒頭の

であるが,これは「”dvipdfmx”というドライバを使い,和文(jsarticle)で作成する」という宣言である.

ドライバは.texファイルをコンパイルしたときにTikZの図を表示するために必要なものであるが,詳しい説明はここではしない.ひとまずはTikZの図を表示させるために,なんらかのドライバが必要だという認識でよい.

また,jsarticleに関してはTikZに対して,本質的に関わってくるものではないので説明は省略する.

パッケージの宣言

核となるのは

である.

これは「”tikz”というパッケージを使う」という宣言である.

正確には”tikz.sty”というスタイルファイルは存在せず,いくつかのスタイルファイルの集合体をTikZと呼んでいる.そして,これら”TikZ”にまつわるいくつかのスタイルファイルを”\usepackage{tikz}”で一斉に呼び出している.

詳しい説明は省略するが,このパッケージにTikZを使うための基本的な道具が詰まっている.

ライブラリの宣言

ライブラリはTikZの機能を拡張させるものである.

「”intersections”と”calc”と”arrows”のライブラリを使う」という宣言になっている.

TikZ単体では,線の交点を求めたり,内分点を求めるなどの座標の計算ができない.そこで

  • “intersections”を使えば,線の交点を求められるようになる
  • “calc”を使えば,座標計算ができるようになる

というように,ライブラリにより機能を拡張することができる.

他にもいくつかライブラリは存在するが,ひとまずこの2つのライブラリだけでもTikZの利便性が大きく向上する.

線分を描く

準備が終わったので,ここからは具体的にTikZを使っていく.

ここでは,まずは最も基本的な「線分の描き方」を説明する.

なお,以下は全て\begin{document}と\end{document}の間に記述する.

単純な線分,折れ線

まずは次のように記述する.

最後のセミコロン(“;”)は必ず必要なので,忘れないように注意する.

これをコンパイルすると以下のように表示される.

Rendered by QuickLaTeX.com

結論から言えば,これは「直交座標上で点(0,0)と点(2,1)を結んで(“–“)描け(“\draw”)」という命令になっている.

このように,座標と座標を2個の半角ダッシュ”-“で結べば,この2点間を結ぶ線分が描画できる.

また,描画は相対位置で描画されるので,上のものの全ての第1成分に5を加えて

と記述しても上と同じく

Rendered by QuickLaTeX.com

と表示される.

線分を順次つなげていくこともできる.

と記述し,コンパイルすると以下のように表示される.

Rendered by QuickLaTeX.com

閉じた線

閉じた線を記述することもできる.

と最後に”cycle”を記述すれば,

Rendered by QuickLaTeX.com

と閉じた線となる.

ここで,「”cycle”を使わなくても, \tikz \draw (0,0)--(2,1)--(3,-1)--(0,0); とすれば良いのではないか」という疑問が湧く.

しかし,実はこの記述と上の”cycle”を使った閉じた線は,微妙に異なった線を描く.

違いを分かりやすくするため,両者を極太の線分

で描いてみると,それぞれ以下のようになる.

Rendered by QuickLaTeX.com

Rendered by QuickLaTeX.com

両者の三角形の左の頂点に注目すると,前者はとんがっているが後者はとんがっていない.拡大してみるとよく分かる.

このように,“cycle”を使わないと「2つの端点が集まっているだけ」の不恰好な頂点となってしまう.

長方形

指定した2点を対角線とする長方形を描くことができる.

と2点で”rectangle”を挟んで記述すれば,

Rendered by QuickLaTeX.com

2点(0,0)(2,3)を結んだ線分を対角線とする長方形となる.

複数の描画をする

1行で図の記述が終わる場合には, \tikz を前に書くことで描画できるが,複数行の命令が必要な場合にはこの記述ではうまく動かない.

1つの図の中に複数行の命令で描画したい場合には,”\tikz”を前に書く代わりに,

とすれば,

Rendered by QuickLaTeX.com

と表示される.

このように,複数行の記述が必要な場合には,

の形で記述すれば良い.

図に文字を書き込む方法

以下のように“node”を用いれば,図中に文字を書き込むことができる.

表示は以下のようになる.

Rendered by QuickLaTeX.com

しかし,これでは図と文字が被って美しくないが,これを文字の位置をズラすことで解決できる.

具体的には,

とすれば,

Rendered by QuickLaTeX.com

と表示される.すなわち,

と書くことによって,「点(a,b)の[上下左右]に{文字}を書け」という命令になる.

[上下左右]には

  • above(上)
  • below(下)
  • left(左)
  • right(右)

と,これらを組み合わせた

  • above right(右上)
  • above left(左上)
  • below right(右下)
  • below left(左下)

の全8方向を指定できる.

なお,実は”node”は

ように,折れ線の記述の中でも正しく機能し,上と同じ図が描ける.

曲線の描き方

次に,曲線の描き方を説明する.

円の描き方

曲線の中でも円を描く機会は多いであろう.例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示される.すなわち,(a,b)中心,半径rの円は

と記述することにより描くことができる.

楕円の描き方

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示される.

すなわち,(a,b)中心,第1成分の径の長さがp,第2成分の径の長さがqの楕円をt^\circ傾けた図形

と記述することにより描くことができる.

始点と終点への向きを指定する方法1

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示される.

すなわち,(a,b)から偏角tの方向へ出て,点(p,q)へ偏角sの方向から入る曲線

と記述することにより描くことができる.

始点と終点への向きを指定する方法2

今の図の曲線を45^\circ回転させる場合には,

曲線のオプションに”relative”を記述することで,この2点を基準の軸とした偏角で表すことができる.これにより,

Rendered by QuickLaTeX.com

と表示される.

すなわち,(a,b)から点(p,q)の向きを基準として,点(a,b)から偏角t^{\circ}の方向へ出て,点(p,q)へ偏角s^{\circ}の方向から入る曲線

と記述することにより描くことができる.

もっとも回転させるだけなら,

という回転のオプション [rotate=角度] を”\draw”の直後に記述すれば,

Rendered by QuickLaTeX.com

となる.

なお,終点(4,0)を単に(2\sqrt{2},2\sqrt{2})に移して

と記述した場合には,

Rendered by QuickLaTeX.com

と表示される.

これは to [out=45,in=135] で指定している45^\circ135^\circはあくまでx軸正方向からの偏角なので,単に終点の位置を移動させても図形自体が回転するわけではない.

参考文献

以下はLaTeXに関しての参考文献である.

LaTeX2e美文書作成入門 改訂第7版 (奥村晴彦 著/技術評論社)

著者の奥村氏は日本におけるTeXの第一人者であり,本書はLaTeX初心者から中級者まで幅広い層に役立つLaTeXの教科書である.

非常に詳しく解説が載っており,しっかり理解して習得することができる.

本書にはDVD-ROMが付属しており,LaTeXのインストール用がすぐにできるので,LaTeXをはじめる人が苦戦しがちな環境整備がすぐにできる.

ただし,本稿の内容のTikZについての記述はないので注意.

関連記事

【良いと思ったらシェアを!】

SNSでもご購読できます。

コメント

コメントを残す

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください