Chapter 3 – Drawing, positioning, and aligning nodes (2024)

Here are the Code examples of this chapter. These pages are currently being updated over time (adding pictures, captions, and possibly further examples). Visit again soon for updates. Of course, the best way to use this page is together with the book for getting the explanations.

Chapter 3 – Drawing, positioning, and aligning nodes (1)

Figure 3.1 – A node with colors

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (2)

Figure 3.2 – Nodes with different shapes

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (3)

Figure 3.3 – Nodes with arrows

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (4)

Figure 3.4 – Default anchor

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (5)

Figure 3.5 – Southwest anchor

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (6)

Figure 3.6 – Rectangle shape with anchors

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (7)

Figure 3.7 – Circle shape with anchors

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (8)

Figure 3.8 – Various node shapes

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (9)

Figure 3.9 – Positioning node shapes

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (10)

Figure 3.10 – Spacing within and around a node

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (11)

Figure 3.11 – Different horizontal and vertical spacing

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (12)

Figure 3.12 – Spacing within and around a circle node

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (13)

Figure 3.13 – A node above a circle

\documentclass[tikz,border=10pt]{standalone}\begin{document}\begin{tikzpicture} \draw circle [fill, radius=2pt] node [anchor=south] {text};\end{tikzpicture}\end{document}

Different code, same output:

\documentclass[tikz,border=10pt]{standalone}\begin{document}\begin{tikzpicture} \draw circle [fill, radius=2pt] node [above] {text};\end{tikzpicture}\end{document}

Chapter 3 – Drawing, positioning, and aligning nodes (14)

Figure 3.14 – A node to the right of another node

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (15)

Figure 3.15 – A node above and to the right of another node

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (16)

Figure 3.16 – Nodes along a line

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (17)

Figure 3.17 – An epic misalignment

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (18)

Figure 3.18 – Epic base alignment

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (19)

Figure 3.19 – Default picture alignment

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (20)

Figure 3.20 – TikZ picture baseline alignment

\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}

With a macro, same output:

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (21)

Figure 3.21 – An enumerate environment with fancy TikZ numbers

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (22)

Figure 3.22 – A node with labels

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (23)

Figure 3.23 – A node with pinned labels

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (24)

Figure 3.24 – Images in nodes

\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}

Chapter 3 – Drawing, positioning, and aligning nodes (25)

Figure 3.25 – Images in nodes with connection and labels

\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}

Please rate (and possibly review) the book on Amazon if you got it there, your feedback means much to me and helps to get an extended second edition!

Go to next chapter.

Chapter 3 – Drawing, positioning, and aligning nodes (2024)
Top Articles
Latest Posts
Article information

Author: Fredrick Kertzmann

Last Updated:

Views: 6011

Rating: 4.6 / 5 (66 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Fredrick Kertzmann

Birthday: 2000-04-29

Address: Apt. 203 613 Huels Gateway, Ralphtown, LA 40204

Phone: +2135150832870

Job: Regional Design Producer

Hobby: Nordic skating, Lacemaking, Mountain biking, Rowing, Gardening, Water sports, role-playing games

Introduction: My name is Fredrick Kertzmann, I am a gleaming, encouraging, inexpensive, thankful, tender, quaint, precious person who loves writing and wants to share my knowledge and understanding with you.