こちらはこの章のコード例です。これらのページは現在、時間をかけて更新されています(画像、キャプションの追加、おそらくさらなる例の追加)。更新のためにもう一度訪れてください。もちろん、このページを説明が得られる本と一緒に使用するのが最善の方法です。
図 3.1 – 色付きのノード
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw (4,2) node[draw, color=red, fill=yellow, text=blue] {TikZ}; \end{tikzpicture} \end{document}
図 3.2 – 異なる形のノード
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{shapes} \begin{document} \begin{tikzpicture} \node (r) at (0,1) [draw, rectangle] {rectangle}; \node (c) at (1.5,0) [draw, circle] {circle}; \node (e) at (3,1) [draw, ellipse] {ellipse}; \end{tikzpicture} \end{document}
図 3.3 – 矢印付きのノード
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{shapes} \begin{document} \begin{tikzpicture} \node (r) at (0,1) [draw, rectangle] {rectangle}; \node (c) at (1.5,0) [draw, circle] {circle}; \node (e) at (3,1) [draw, ellipse] {ellipse}; \draw[->] (r.east) -- (e.west); \draw[->] (r.south) -- (c.north west); \draw[->] (e.south) -- (c.north east); \end{tikzpicture} \end{document}
図 3.4 – デフォルトのアンカー
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw[fill=red] (4,2) circle[radius=0.1]; \node at (4,2) [draw, rectangle] {rectangle}; \end{tikzpicture} \end{document}
図 3.5 – 南西アンカー
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw[fill=red] (4,2) circle[radius=0.1]; \node at (4,2) [draw, rectangle, anchor=south west] {rectangle}; \end{tikzpicture} \end{document}
図 3.6 – アンカー付きの四角形
\documentclass[tikz,border=5]{standalone} \usetikzlibrary{positioning} \tikzset{shape example/.style = { color=black!50, draw, fill=blue!10, inner xsep=1.5cm, inner ysep=0.5cm, }} \begin{document} \Huge \begin{tikzpicture}[node distance = 1mm] \node[name=n,shape=rectangle,shape example] {\Huge rectan\smash{g}le\hspace{3cm}node}; \foreach \anchor/\placement in {center/above, text/below, 45/above right, mid/right, mid east/right, mid west/left, base/below, base east/below right, base west/below left, north/above, south/below, east/above right, west/above left, north east/above, south east/below, south west/below, north west/above} \draw[shift=(n.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {\scriptsize\texttt{(n.\anchor)}}; \end{tikzpicture} \end{document}
図 3.7 – アンカー付きの円形
\documentclass[tikz,border=5]{standalone} \usetikzlibrary{positioning} \tikzset{shape example/.style = { color=black!50, draw, fill=blue!10, inner xsep=0.5cm, inner ysep=0.5cm, }} \begin{document} \Huge \begin{tikzpicture}[node distance = 1mm] \node[name=n,shape=circle,shape example] {\Huge circle\hspace{2cm}node}; \foreach \anchor/\placement in {center/above, text/below, 30/above right, mid/right, mid east/right, mid west/left, base/below, base east/below right, base west/below left, north/above, south/below, east/above right, west/above left, north east/above right, south east/below right, south west/below left, north west/above left} \draw[shift=(n.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {\scriptsize\texttt{(n.\anchor)}}; \end{tikzpicture} \end{document}
図 3.8 – 様々なノード形状
\documentclass[tikz,border=1pt]{standalone} \usepackage{tikz} \usetikzlibrary{shapes,snakes} \begin{document} \begin{tikzpicture} \matrix[nodes={draw, fill=blue!15}, row sep=0.2cm, column sep=0.3cm, nodes={font=\sffamily}] { \node[rectangle split, rectangle split parts=2] {rectangle \nodepart{two} split};& \node[circle split] {circle \nodepart{lower} split}; & \node[semicircle] {semicircle};& \node[circular sector, align=center] {circular\\sector};& \\ \node[forbidden sign,text width=4em, text centered] {forbidden sign};& \node[dart] {dart};& \node[kite] {kite};& \node[isosceles triangle, align=center] {isosceles\\triangle};& \\ \node[diamond] {diamond};& \node[regular polygon, regular polygon sides=5, align=center] {regular\\polygon\\(5 sides)};& \node[regular polygon, regular polygon sides=6, align=center] {regular\\polygon\\(6 sides)};& \node[regular polygon, regular polygon sides=8, align=center] {regular\\polygon\\(8 sides)};\\ \node[trapezium] {trapezium};& \node[cloud] {cloud};& \node[star] {star};& \node[starburst] {starburst};& \\ \node[cylinder] {cylinder};& \node[signal] {signal};& \node[tape] {tape};& \node[magnetic tape, align=center] {magnetic\\tape};& \\ }; \end{tikzpicture} \end{document}
図 3.9 – ノード形状の配置
\documentclass[tikz,border=10pt]{standalone} \usepackage{tikzpeople} \usetikzlibrary{shapes} \begin{document} \begin{tikzpicture} \node (student) [graduate, monitor, minimum size=2cm] {}; \node at (student.45) [starburst, draw=red, fill=yellow, starburst point height=0.4cm, line width=1pt, font=\ttfamily\scriptsize, inner sep=1.5pt] {error}; \node at (student.130) [cloud callout, cloud puffs=13, aspect=3, anchor=pointer, shading=ball, ball color=darkgray, text=white, font=\bfseries] {My thesis...!}; \end{tikzpicture} \end{document}
図 3.10 – ノード内外のスペーシング
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{calc} \begin{document} \begin{tikzpicture}[font={\scriptsize\ttfamily}] \node[draw,rectangle,outer sep=1cm,inner sep=1cm,color=black!50, draw, fill=blue!10] (n) {{\sffamily\Large node n}}; \draw[<->,thick,blue] (n.south) --++(0,1cm) node[midway,right]{outer sep}; \draw[<->,thick,red] (n.south) ++(0,1cm) --++(0,1cm)node[midway,right]{inner sep}; \node[,outer sep=0,draw,left,color=black!50, draw, fill=blue!10,] (m) at(n.west) {{\sffamily\Large node m}}; \draw[<->,blue,thick] (m.east) -- ++(1cm,0) node[midway,above] {outer} node[midway,below] {sep}; \draw[<->,red,thick] ($(n.west)+(1,0)$) -- ++(1cm,0) node[midway,above] {inner} node[midway,below] {sep}; \foreach \anchor/\placement in {south west/below left,south/below,north/above,north west/above left, north east/above right,south east/below right} \draw[shift=(n.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {(n.\anchor)}; \foreach \anchor/\placement in {west/left,south/below,north/above} \draw[shift=(m.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {(m.\anchor)}; \draw[dashed] (n.south west) rectangle (n.north east); \node[above] at ($(n.center)!0.5!(n.north)$) {shape rectangle}; \end{tikzpicture} \end{document}
図 3.11 – 異なる水平および垂直スペーシング
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{calc} \begin{document} \begin{tikzpicture}[font={\scriptsize\ttfamily}] \node[draw,rectangle,outer xsep=1cm,outer ysep=0.5cm,inner xsep=1cm, inner ysep=0.5cm,color=black!50, draw, fill=blue!10,] (n) {{\sffamily\Large node n}}; \draw[<->,thick,blue] (n.south) --++(0,0.5cm) node[midway,right]{outer ysep}; \draw[<->,thick,red] (n.south) ++(0,0.5cm) --++(0,0.5cm)node[midway,right]{inner ysep}; \draw[<->,blue,thick] (n.west) -- ++(1cm,0) node[midway,above] {outer} node[midway,below] {xsep}; \draw[<->,red,thick] ($(n.west)+(1,0)$) -- ++(1cm,0) node[midway,above] {inner} node[midway,below] {xsep}; \foreach \anchor/\placement in {south west/below left,south/below,north/above,north west/above left, north east/above right,south east/below right} \draw[shift=(n.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {(n.\anchor)}; \draw[dashed] (n.south west) rectangle (n.north east); \node[above] at ($(n.center)!0.5!(n.north)$) {shape rectangle}; \end{tikzpicture} \end{document}
図 3.12 – 円形ノード内外のスペーシング
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{calc} \newcommand{\n}{\sffamily\Large node n} \newcommand{\invis}{\phantom{\sffamily\Large node n}} \begin{document} \begin{tikzpicture}[font={\scriptsize\ttfamily}] % node n \node[draw,circle,outer sep=1cm,inner sep=1cm,color=black!50, draw, fill=blue!10] (n) {{\n}}; % label "shape circle" \node[above] at ($(n.center)!0.5!(n.north)$) {shape circle}; % dashed helper nodes with same position and (invisible) same text \node[circle,draw,densely dashed,inner sep=0pt,outer sep=0pt] at (n.center) {\invis}; \node[rectangle,draw,densely dashed,inner sep=0pt,outer sep=0pt] at (n.center) {\invis}; \node (o) [rectangle,draw, dashed,inner sep=1cm,outer sep=0pt] at (n.center) {\invis}; % neighbor node \node[circle,inner sep=0,outer sep=0,draw,right,color=black!50, draw, fill=blue!10] (m) at(n.east) {{\sffamily\Large node m}}; % vertical sep \draw[<->,thick,blue] (n.south) --++(0,1cm) node[midway,right]{outer sep}; \draw[<->,thick,red] (o.south) -- ++(0,1cm) node[pos=0.3,right]{inner sep}; % horizontal sep \draw[<->,red,thick] (o.east) -- ++(-1cm,0) node[midway,above] {inner} node[midway,below] {sep}; \draw[<->,blue,thick] (m.west) -- ++(-1cm,0) node[midway,above] {outer} node[midway,below] {sep}; % some anchors \foreach \anchor/\placement in {south west/below left,south/below,north/above,north west/above left, north east/above right,south east/below right,west/left} \draw[shift=(n.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {(n.\anchor)}; \foreach \anchor/\placement in {east/right,south/below,north/above} \draw[shift=(m.\anchor)] plot[mark=x] coordinates{(0,0)} node[\placement,label distance = 0mm,inner sep=3pt] {(m.\anchor)}; % random circle :-) \draw[dashed] (n.center) circle (3.05cm); \end{tikzpicture} \end{document}
図 3.13 – 円上のノード
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw circle [fill, radius=2pt] node [anchor=south] {text}; \end{tikzpicture} \end{document}
異なるコード、同じ出力:
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw circle [fill, radius=2pt] node [above] {text}; \end{tikzpicture} \end{document}
図 3.14 – 他のノードの右にあるノード
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture} \node [draw] (TikZ) {TikZ}; \node [draw, right = 0.1cm of TikZ] {PDF}; \end{tikzpicture} \end{document}
図 3.15 – 他のノードの右上にあるノード
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture} \node [draw] (TikZ) {TikZ}; \node [draw, above right = -0.25cm and 0.1cm of TikZ] {PDF}; \end{tikzpicture} \end{document}
図 3.16 – 直線上のノード
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture} \draw (0,0) -- node [above, pos=0] {0} node [above, pos=0.5] {0.5} node [above, pos=1] {1} node [below, pos=0.25] {0.25} node [below, pos=0.75] {0.75} (4,0); \end{tikzpicture} \end{document}
図 3.17 – 非常にずれた配置
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[every node/.style = {inner sep=0pt}] \node (E) {E}; \node (p) [right = 0pt of E] {p}; \node (i) [right = 0pt of p] {i}; \node (c) [right = 0pt of i] {c}; \node (.) [right = 0pt of c] {.}; \end{tikzpicture} \end{document}
図 3.18 – ベースラインに合わせた配置
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[every node/.style = {inner sep=0pt}] \node (E) {E}; \node (p) [base right = 0pt of E] {p}; \node (i) [base right = 0pt of p] {i}; \node (c) [base right = 0pt of i] {c}; \node (.) [base right = 0pt of c] {.}; \end{tikzpicture} \end{document}
図 3.19 – デフォルトのピクチャ配置
\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture} \node[circle, draw, inner sep=2pt] (label) {1}; \end{tikzpicture} This is the first topic. \end{document}
図 3.20 – TikZピクチャのベースライン配置
\documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture}[baseline=(label.base)] \node[circle, draw, inner sep=2pt] (label) {1}; \end{tikzpicture} This is the first topic. \end{document}
マクロを使用して同じ出力:
\documentclass{article} \usepackage{tikz} \DeclareRobustCommand{\circled}[1]{\tikz[baseline=(label.base)]{ \node[circle, draw, inner sep=2pt] (label) {#1};}} \begin{document} \circled{1} This is the first topic. \end{document}
図 3.21 – 番号付きリストにおける装飾的なTikZ数字
\documentclass{article} \usepackage{tikz} \DeclareRobustCommand{\circled}[1]{% \tikz[baseline=(label.base)]{\node[circle, white, shading=ball, inner sep=2pt] (label) {#1};}} \usepackage{enumitem} \begin{document} \begin{enumerate}[label=\circled{\arabic*}] \item First item \item Second item \item Third item \item Fourth item \end{enumerate} \end{document}
図 3.22 – ラベル付きのノード
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture}[every label/.style = {scale=0.5}] \node[ label = above:Graphics, label = left:Design, label = below:Typography, label = right:Coding, circle, shading=ball, ball color=blue!60, text=white] {TikZ}; \end{tikzpicture} \end{document}
図 3.23 – ピン留めされたラベル付きのノード
\documentclass[tikz,border=10pt]{standalone} \begin{document} \begin{tikzpicture}[every pin/.style = {scale=0.5}] \node[ pin = above:Graphics, pin = left:Design, pin = below:Typography, pin = right:Coding, circle, shading=ball, ball color=blue!60, text=white] {TikZ}; \end{tikzpicture} \end{document}
図 3.24 – ノード内の画像
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture} \node (router) [inner sep=0pt] {\includegraphics[width=2cm]{router.pdf}}; \node (switch) [inner sep=0pt, right = of router] {\includegraphics[width=2cm]{switch.pdf}}; \draw[double] (router) -- (switch); \end{tikzpicture} \end{document}
図 3.25 – 接続とラベル付きのノード内の画像
\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture} \node (router) [inner sep=0pt] {\includegraphics[width=2cm]{router.pdf}}; \node (switch) [inner sep=0pt, right = of router] {\includegraphics[width=2cm]{switch.pdf}}; \draw[double] (router) -- node [above, font=\scriptsize] {TenGig} node [font=\tiny, inner xsep=0pt, below right, at start] {1} node [font=\tiny,inner xsep=0pt, below left, at end] {24} (switch); \end{tikzpicture} \end{document}
次の章 へ進む.