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

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

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

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

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

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

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の図を表示させるために,なんらかのドライバが必要だという認識で構いません.

パッケージの宣言

核となるのは

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

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

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

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

ライブラリの宣言

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

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

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

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

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

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

TikZのコマンドの基本

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

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

基本の描画

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

と記述すれば,

Rendered by QuickLaTeX.com

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

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

最後のセミコロン;は必ず必要なので,忘れないように注意してください.

複数の描画

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

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

Rendered by QuickLaTeX.com

と表示されます.

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

の形で記述します.

線分を描く

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

単純な線分,折れ線

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

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

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つの端点が集まっているだけ」の不恰好な頂点となってしまいます.

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

長方形

指定した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$の円は

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

楕円の描き方

例えば,

と記述すれば,

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 は

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

次の記事では,「線の太さ」「デザイン(点線,破線など)」「矢印」といった線のスタイルを変える方法を説明します.

参考文献

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

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

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

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

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

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

最後までありがとうございました!

参考になった方は是非シェアをお願いします!

フォローする

以下の関連記事もいかがですか?

SPONSORED LINK
関連記事

記事一覧はこちらからどうぞ!

コメント

  1. シバタショウイチ より:

    おかげさまで,入門できました。
    ただし,

    は通るのに,

    はエラーになります。

    ! Package pgf Error: No shape named 2*sqrt(2 is known.

    See the pgf package documentation for explanation.
    Type H for immediate help.

    l.94 … [out=45,in=135] ({2*sqrt(2)},{2*sqrt(2)})
    ;

    • yama-taku より:

      コメントをありがとうございます!

      ご指摘のように,確かに

      ではエラーになりました.

      理由はわからないのですが,“No shape named 2*sqrt(2 is known”から関数が使えないようで, sqrtだけでなく lnsinなどで試してみてもエラーになりますね.

      したがって,どうやら to [out=s,in=t]のあとの座標の中で関数は使えないようです.

      実は,この記事の図では

      と記述しており,この場合は問題なくコンパイルされます.

      もしくは

      to [out=s,in=t]のあとの座標に関数を用いない形であっても,同じ図がコンパイルができました.

      私も知らないことでしたので,良い勉強になりました.

      ご指摘をありがとうございました!

記事一覧は

こちら

Twitterを

フォロー

大学院入試

解答例

大学受験

解説ブログ