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

TikZ
TikZ

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

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

そこで本稿では.texファイルに直接記述することで直線・曲線・グラフなどの図を描くことができるパッケージ“TikZ”の使い方を紹介します.

TikZが便利な点はいくつかありますが,

  • 図を美しく描ける
  • .texファイルを書き換えれば図を編集できる

という2つは大きなメリットです.


$\LaTeX$の参考文献

以下は$\LaTeX$に関するオススメの参考書です.

LaTeX2e美文書作成入門 改訂第9版

[奥村晴彦 著/技術評論社]

$\TeX$はDonald E. Knuth氏が開発した数式処理に特化した組版処理システム(ざっくり言えば文書ソフト)です.

現在ではほとんどの数学の論文雑誌では$\LaTeX$により書かれた論文が標準となっています.

そのため,ほとんどの数学の研究者が論文作成の際に$\LaTeX$を使っていると言ってよいでしょう.

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

数式処理だけでなく$\LaTeX$を扱う際に便利な多くの機能の解説が載っており,しっかり理解して$\LaTeX$を習得することができます.

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

TikZの準備

TikZはパッケージなので

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

という準備が必要です.

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

そのため,TikZパッケージのインストールはこの記事では省略します.

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

TikZパッケージの宣言

他のパッケージと同様に,TikZパッケージを利用する場合は$\LaTeX$でパッケージを使用するためにはプリアンブル( \begin{documentclass}\begin{document}の間)でTikZパッケージを使う宣言が必要です.

あえて何も説明せず使える状態にしたければ,.texファイルに

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

簡単な説明

ここでは,いま記述した

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

ドライバの宣言

冒頭の

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

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

パッケージの宣言

核となるのは

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

正確にはtikz.styというスタイルファイルではなく,いくつかのスタイルファイルの集合体をTikZと呼んでいます.

そして,これらTikZにまつわるいくつかのスタイルファイルを”\usepackage{tikz}”で一斉に呼び出しているというわけです.

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

ライブラリの宣言

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

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

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

  • intersectionsを使えば,線の交点を求められるようになる
  • calcを使えば,座標計算ができるようになる
  • arrows.metaを使えば,様々な矢印のスタイルを使えるようになる

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

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

TikZのコマンドの基本

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

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

基本の描画

命令の意味はあとで説明するとして,例えば

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.このように,

の形で記述することにより,簡単に図を描くことができます.

最後のセミコロン ;がないと正しく動かないので,忘れないように注意してください.

複数の描画

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

のように記述すればよく,この場合には

Rendered by QuickLaTeX.com

と表示されます.

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

の形で記述します.

なお, \drawの後に

と複数の命令を書いても問題なくコンパイルされます.

線分を描く

まずは最も基本的な線分の描き方から説明します.

単純な線分,折れ線

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

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

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

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

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

なお,線を太くしたりといった,線のスタイルの変更は次の記事を参照してください.

LaTeXで図を直接描けるTikZの使い方2|線のスタイル
LaTeXでの図の挿入に苦労した経験がある人は少なくないでしょう.LaTeXのパッケージ「TikZ」を使えばLaTeXで図を直接描くことができ,図を作って挿入する必要がありません.本稿では,TikZで描いた線のスタイルのオプションについて説明します.

長方形

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

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

Rendered by QuickLaTeX.com

と2点$(0,0)$, $(2,3)$を結んだ線分を対角線とする長方形が描かれます.

垂線

点から線分に下ろした垂線を描くことができます.

と記述すれば,

Rendered by QuickLaTeX.com

のように

  • 2点$(0,0)$, $(3,0)$を結んだ線分
  • 2点$(0,0)$, $(3,0)$を結んだ直線に点$(1,3)$から下ろした垂線

が描かれます.すなわち,

は2点$(a1,a2)$, $(b1,b2)$を結んだ直線に点$(x,y)$から下ろした「垂線の足」を意味します.

曲線の描き方

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

円の描き方

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

と記述すれば,

Rendered by QuickLaTeX.com

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

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

実はこの \draw (a,b) circle (r);はかっこ( )を座標以外で使いたくないという理由から「古い構文」とされています.

個人的には簡潔なこの「古い構文」を好んで用いていますが,公式には \draw (a,b) circle [radius=1];が推奨された書き方です.

楕円の描き方

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.

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

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

円弧/楕円弧の描き方

例えば,

と記述すれば,

Rendered by QuickLaTeX.com

と表示されます.

すなわち,点$(a,b)$から始まる半径$r$の円の偏角$s^\circ$から$t^\circ$の弧は

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

また,点$(a,b)$から始まる$x$方向の径が$r$,$y$方向の径が$r’$の楕円の偏角$s^\circ$から$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)$を単に$(3,3)$に移して

と記述した場合には,

Rendered by QuickLaTeX.com

と表示されます.

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

図に文字を書き込む方法

以下のように 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 は

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

管理人

プロフィール

山本やまもと 拓人たくと

元予備校講師.講師として駆け出しの頃から予備校の生徒アンケートで抜群の成績を残し,通常の8倍の報酬アップを提示されるなど頭角を表す.

飛び級・首席合格で大学院に入学しそのまま首席修了するなど数学の深い知識をもち,本質をふまえた分かりやすい授業に定評がある.

現在はオンライン家庭教師,社会人向け数学教室での講師としての教育活動とともに,京都大学で数学の研究も行っている.専門は非線形偏微分方程式論.大学数学系YouTuberとしても活動中.

趣味は数学,ピアノ,甘いもの食べ歩き.公式LINEを友達登録で【限定プレゼント】配布中.

Twitter・大学数学YouTube・公式LINEを見てみる
あーるえぬ

コメント