TikZ のノード、矢印、ダイアグラム
各箱を \node[draw] (name) {text}; で置き、次の箱を positioning ライブラリ(right=of name)で配置して、\draw[->] (a) -- (b); で結びます。
ノード
ノードとは、ある点に置いたテキストで、枠を付けることもできます。draw で輪郭線を、fill で背景を付け、circle や ellipse で丸い形にします(デフォルトは rectangle)。かっこ内に名前を付けると、後でそのノードを参照できます。
形、塗り、大きさを指定したノード
\begin{tikzpicture}
\node[draw] (a) at (0,0) {plain box};
\node[draw, rounded corners, fill=blue!10] (b) at (3,0) {rounded};
\node[draw, circle, fill=yellow!40] (c) at (5.5,0) {44};
\node[draw, ellipse] (d) at (8,0) {ellipse};
\node[draw, minimum width=2.5cm, minimum height=1cm] at (1,-1.6) {fixed size};
\node[draw, text width=2.6cm, align=center] at (5,-1.6) {text that wraps onto two lines};
\end{tikzpicture}ノード間の矢印
\draw[->] (a) -- (b); はノード a からノード b への矢印を描きます。線はノードの中心ではなく、境界から始まり境界で終わります。-| と |- は直角に曲がる接続を描きます。
positioning ライブラリで作る小さなフローチャート
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[
node distance=1.2cm and 1.6cm,
box/.style={draw, rounded corners, fill=blue!8, minimum width=2.2cm, minimum height=0.8cm},
>={Stealth},
]
\node[box] (in) {Read data};
\node[box, right=of in] (clean) {Clean};
\node[box, right=of clean] (fit) {Fit model};
\node[draw, circle, below=of clean] (ok) {OK?};
\draw[->] (in) -- (clean);
\draw[->] (clean) -- (fit);
\draw[->] (fit) |- (ok);
\draw[->] (ok) -| node[pos=0.75, left] {no} (in);
\end{tikzpicture}
\end{document}right=of in はノードを in の右に node distance だけ離して置きます。ほかの方向は left、above、below と、above right のような斜めの方向です。right=2cm of in は 1 つのノードについて距離を指定します。
矢印とノードのラベル
パスの途中に書いた node は、そのパスのラベルになります。above、below、left、right で側を、midway、near start、near end、pos=0.3 でパス上の位置を指定します。label=below:text はノードにラベルを付けます。
曲がったラベル付きの辺を持つ状態遷移図
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning, arrows.meta}
\begin{document}
\begin{tikzpicture}[state/.style={draw, circle, minimum size=1cm}, >={Stealth}, node distance=2.4cm]
\node[state, label=below:start] (s0) {$q_0$};
\node[state, right=of s0] (s1) {$q_1$};
\node[state, right=of s1, fill=green!15] (s2) {$q_2$};
\draw[->] (s0) to[bend left] node[above] {$a$} (s1);
\draw[->] (s1) to[bend left] node[below] {$b$} (s0);
\draw[->] (s1) -- node[above] {$a$} (s2);
\end{tikzpicture}
\end{document}アンカー
すべてのノードは、境界上にアンカーを持っています。north、south、east、west と、north east のような角です。(box.north) は box の上辺の中央の点です。
ノードのアンカーから出る矢印
\begin{tikzpicture}
\node[draw, minimum width=3cm, minimum height=1cm] (box) {Server};
\draw[->] (box.north) -- ++(0,0.7) node[above] {north};
\draw[->] (box.east) -- ++(1,0) node[right] {east};
\draw[->] (box.south west) -- ++(-0.6,-0.6) node[below left] {south west};
\node[anchor=west] at (box.south east) {\small (anchor=west)};
\end{tikzpicture}ノードに anchor=west を指定すると、ノードの west アンカーが指定した点に来るように配置されます。
矢印の先端
| オプション | 先端 | Scissor LaTeX での対応 |
|---|---|---|
->、<-、<-> | TikZ のデフォルトの先端 | 使える |
-stealth、-latex | 従来の stealth と LaTeX の先端 | 使える |
-{Stealth}、-{Latex}(arrows.meta) | 新しい先端 | 使える |
|-| | 両端の縦棒 | 使える |
図に指定した >={Stealth} | -> で使われる先端 | 使える |
-{Stealth[length=3mm]} のような先端のオプション | 先端の大きさと形 | 一部対応:先端はデフォルトの大きさで描かれる |
先端の大きさは TikZ に近いものの、同一ではありません。
対応していないもの
これらの機能は TeX のインストール環境ではコンパイルできますが、ここでは使えません。ほとんどは「問題」タブに表示されます。
| 機能 | Scissor LaTeX での結果 | 代わりに書くもの |
|---|---|---|
\matrix(と matrix of nodes) | 図全体がメッセージ付きの破線の枠になる | at (x,y) か positioning でノードを置く |
\pic | 図全体がメッセージ付きの破線の枠になる | shift を指定した scope で描画を繰り返す |
装飾(decorate、decoration=...) | メッセージ付きで無視され、パスは装飾なしで描かれる | 普通のパスか破線のパス |
shapes.geometric のノードの形(diamond、trapezium …) | メッセージ付きで長方形として描かれる | rectangle、circle、ellipse |
double の線 | メッセージ付きで無視される | 2 つのノードかパス |
to[loop above](1 つのノードのループ) | ループは描かれず、メッセージも出ない。ラベルはノードの上に置かれる | ノードの境界から出る arc か .. controls .. の曲線 |
pin= | ピンのテキストは表示されるが、ピンの線は描かれない | label= |
-| や |- のパスの pos= | ラベルは 2 本目の線分に沿ってのみ置かれるので、pos=0.25 は角の近くになる | 2 本目の線分に pos=0.75 でラベルを付けるか、パスを 2 つに分ける |
tikz-cd、circuitikz、forest | 図はメッセージ付きで除外される | 簡単な TikZ か画像 |
\matrix はプレースホルダーになる
\begin{tikzpicture}
\matrix[draw] {
\node {a}; & \node {b}; \\
\node {c}; & \node {d}; \\
};
\end{tikzpicture}「問題」タブ: \matrix in a picture is not supported yet
ひし形のノードは長方形として描かれる
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\node[draw, diamond] at (0,0) {Yes?};
\node[draw, ellipse] at (2.5,0) {ellipse works};
\end{tikzpicture}
\end{document}「問題」タブ: TikZ node option 'diamond' is not supported yet
ノード、positioning ライブラリ、矢印の先端は、TikZ のマニュアル(PGF パッケージに含まれる)で説明されています:ctan.org/pkg/pgf。図形とパスは TikZ で描く図をご覧ください。
よくある質問
LaTeX でフローチャートを描くにはどうすればよいですか?
箱には draw を付けた TikZ のノードを、配置には positioning ライブラリ(right=of a、below=of b)を、矢印には \draw[->] (a) -- (b); を使います。
TikZ で矢印に文字を付けるにはどうすればよいですか?
パスの途中にノードを書きます:\draw[->] (a) -- node[above] {text} (b);。
Scissor LaTeX で tikz-cd は使えますか?
まだ使えません。tikzcd のダイアグラムはメッセージ付きで除外されます。代わりに、ノードと矢印で簡単なダイアグラムを描いてください。
このページの例はすべて、サイトのビルド時に Scissor LaTeX で組版されています。 最終更新:2026-11-07