今回はTikZで描画する矢印のカスタマイズについて紹介したい。
まずカスタマイズのために以下のライブラリをプリアンブルでロードしておく。直線矢印だけの場合は\usetikzlibrary {arrows.meta}
のみでよい。
\usetikzlibrary {arrows.meta} \usetikzlibrary {bending}
通常の矢印は以下のようになる。
\tikz \draw[->] (0,0)--(1,0);
次に矢印の矢じりの形状を指定するStealth
を付加する。たとえば>-Stealth
は矢印の前後に矢じりを設定する。Stealth
はオプションを指定することができ{Stealth[red]}
とすると矢じりを赤にすることができる。
\begin{tikzpicture} \draw[>-Stealth] (0,0) -- (1,0); \end{tikzpicture} \begin{tikzpicture} \draw[-{Stealth[red]}] (0,0) -- (2,0); \end{tikzpicture}
以下はStelth[length=5mm]
として矢じりの長さを指定している。またLatex
はStealth
とは異なる形状を与える。
\tikz{ \draw [-{Stealth[length=5mm]}] (0,0) -- (1.5,0); } \tikz{ \draw [-{Latex[length=5mm]}] (0,0) -- (1.5,0); }
Classical TikZ Rightarrow
もStealth
やLatex
と同様に矢じり形状を与える。double distance=3pt,arrows =
とすることで2重線矢印のすることができる。
またStealth[length=10mm, open]
のようにopenを指定すると矢印の塗りつぶしが白抜きになる。
\tikz{ \draw [-{Classical TikZ Rightarrow[length=5mm]}] (0,0) -- (1,0); } \tikz{ \draw [line width=1pt, double distance=3pt, arrows = {-Latex[length=0pt 3 0]}] (0,0) -- (1,0);} \tikz{ \draw [line width=1mm, -{Stealth[length=10mm, open]}](0,0) -- (1.5,0); }
以下はangle
を指定すると矢じりの開き角度、scale
は矢じりの大きさを指定する。
\tikz \draw [arrows = {-Stealth[inset=0pt, angle=90:10pt]}] (0,0) -- (1,0); \tikz { \draw [arrows = {-Stealth[]}] (0,1) -- (1,1); \draw [arrows = {-Stealth[scale=1.5]}] (0,0.5) -- (1,0.5); \draw [arrows = {-Stealth[scale=2]}] (0,0) -- (1,0); }
Hooks
は矢じりをフック形状にし、さらにオプションarc
はフックの曲がりを指定する。
\tikz [ultra thick] { \draw [arrows = {-Hooks[]}] (0,1) -- (1,1); \draw [arrows = {-Hooks[arc=90]}] (0,0.5) -- (1,0.5); \draw [arrows = {-Hooks[arc=270]}] (0,0) -- (1,0); }
slant
は矢じりの傾きを指定することができる。
\tikz { \draw [arrows = {->[]}] (0,1) -- (1,1); \draw [arrows = {->[slant=.5]}] (0,0.5) -- (1,0.5); \draw [arrows = {->[slant=1]}] (0,0) -- (1,0); }
fill
オプションは塗りつぶすことができる。
\tikz [ultra thick] \draw [draw=red, fill=red!50, arrows = {-Stealth[length=10pt]}] (0,0) -- (1,1) -- (2,0);
Computer Modern Rightarrow
のline join
を指定すると接合部の形状が変わる。
\tikz [line width=2mm] \draw [arrows = {-Computer Modern Rightarrow[line join=miter]}] (0,0) -- (1,0); \tikz [line width=2mm] \draw [arrows = {-Computer Modern Rightarrow[line join=round]}] (0,0) -- (1,0); \tikz [line width=2mm] \draw [arrows = {-Computer Modern Rightarrow[sharp]}] (0,0) -- (1,0);
fill
とline width
の指定により矢印を白抜きにすることもできる。
\tikz \draw [arrows = {-Latex[line width=0.1pt, fill=white, length=10pt]}] (0,0) -- (1,0); \tikz \draw [arrows = {-Latex[line width=1pt, fill=white, length=10pt]}] (0,0) -- (1,0);
プリアンブルのbendingライブラリを用いて、カーブをもつ矢印を指定できる。
\begin{tikzpicture} \draw [red,line width=1mm,-{Stealth[length=20pt,bend]}] (-1,-.5) .. controls (0,-.5) and (0,0) .. (1,0); \end{tikzpicture}
最後にStealth
で矢じりの形状reversed
やharpoon
、矢印の色を以下のように指定できる。
\tikz [ultra thick] \draw [arrows = {-Stealth[reversed]}] (0,0) -- (1,0); \tikz [ultra thick] \draw [arrows = {-Stealth[harpoon]}] (0,0) -- (1,0); \tikz [ultra thick] \draw [red, arrows = {-Stealth}] (0,0) -- (1,0); \tikz [ultra thick] \draw [red, arrows = {-Stealth[color=blue]}] (0,0) -- (1,0);