0% found this document useful (0 votes)
144 views

Softskills Tikz PDF

The document provides an introduction to TikZ, a package for creating graphics in LaTeX documents. It discusses that TikZ builds on PGF to provide a high-level interface for drawing graphics. It then covers how to set up the environment to use TikZ, the basics of drawing paths and shapes using commands like \draw, how to add graphic options to customize lines and colors, and how to place and style text using nodes. Key concepts covered include coordinates, scopes, styles, and the syntax of the \node command.

Uploaded by

Blue
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
144 views

Softskills Tikz PDF

The document provides an introduction to TikZ, a package for creating graphics in LaTeX documents. It discusses that TikZ builds on PGF to provide a high-level interface for drawing graphics. It then covers how to set up the environment to use TikZ, the basics of drawing paths and shapes using commands like \draw, how to add graphic options to customize lines and colors, and how to place and style text using nodes. Key concepts covered include coordinates, scopes, styles, and the syntax of the \node command.

Uploaded by

Blue
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

A brief introduction into TikZ

Norbert Manthey
International Center for Computational Logic
Dresden
Technische Universitat
Germany

I What is TikZ?
I How to draw figures?
I How to place text inside the figures?

These slides are based on slides of Tobias Pietzsch


Norbert Manthey
A brief introduction into TikZ

PGF and TikZ


I PGF (portable graphics format)

. package for creating graphics inline


. TEX and LATEX input
. PDF, PostScript, and SVG output
. three layers: System, Basic, and Frontend

I TikZ(TikZ is not a drawing program)

. is a PGF frontend layer.


. high-level user interface.
. Current version 2.00 is quite old (February 2008)
. For features and bug-fixes: http://www.texample.net/tikz/builds/

I written by Till Tantau (author of Beamer package) and Mark Wibrow.

Norbert Manthey
A brief introduction into TikZ

Setup your environment

I Use a LATEX document


I Use the TikZ package and required TikZ libraries

\usepackage{tikz}
\usetikzlibrary{...}
I Draw TikZ figure in the document.

\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

\tikz \draw (0,0) circle (0.5);

Norbert Manthey
A brief introduction into TikZ

Setup your environment

I Use a LATEX document


I Use the TikZ package and required TikZ libraries

\usepackage{tikz}
\usetikzlibrary{...}
I Draw TikZ figure in the document.

\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

\tikz \draw (0,0) circle (0.5);

Norbert Manthey
A brief introduction into TikZ

Setup your environment

I Use a LATEX document


I Use the TikZ package and required TikZ libraries

\usepackage{tikz}
\usetikzlibrary{...}
I Draw TikZ figure in the document.

\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

\tikz \draw (0,0) circle (0.5);

Norbert Manthey
A brief introduction into TikZ

Drawing Basics

I A path is a series of straight and curved line segments.


I Syntax:

\path (path-operation | graphic-option)* ;


I there are two major operations: draw and node
I \draw is an abbreviation for \path [draw]

. Next, drawing figures by using \draw is presented


. By using \node text is added afterwards

Norbert Manthey
A brief introduction into TikZ

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

Norbert Manthey
A brief introduction into TikZ

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

I Move-To Operation: move to coordinate (0,0)


I without drawing anything

Norbert Manthey
A brief introduction into TikZ

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

I Circle Operation: draw circle with radius (0.5)


I current point remains (0,0)

Norbert Manthey
A brief introduction into TikZ

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

I Move-To Operation: move to coordinate (-0.5,-0.5)


I without drawing anything

Norbert Manthey
A brief introduction into TikZ

10

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

I Line-To Operation: line to coordinate (0.5,0.5)

Norbert Manthey
A brief introduction into TikZ

11

Drawing with paths

I A step by step example for \draw:

\begin{tikzpicture}
\path [draw] (0,0) circle (0.5)
(-0.5,-0.5) -- (0.5,0.5) ;
\end{tikzpicture}

I Path ends.

Norbert Manthey
A brief introduction into TikZ

12

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

Norbert Manthey
A brief introduction into TikZ

13

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue] (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Add color to the line.

Norbert Manthey
A brief introduction into TikZ

14

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white] (0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Fill the circle with color.

Norbert Manthey
A brief introduction into TikZ

15

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white,fill opacity=0.6]
(0,0) circle (0.5);
\draw (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Make circle transparent.

Norbert Manthey
A brief introduction into TikZ

16

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white,fill opacity=0.6]
(0,0) circle (0.5);
\draw [thick] (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Draw a thick line.

Norbert Manthey
A brief introduction into TikZ

17

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white,fill opacity=0.6]
(0,0) circle (0.5);
\draw [thick, dashed] (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Draw a dashed line.

Norbert Manthey
A brief introduction into TikZ

18

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white,fill opacity=0.6]
(0,0) circle (0.5);
\draw [thick, dashed, ->] (-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Draw an arrow.

Norbert Manthey
A brief introduction into TikZ

19

Graphic Options
I Add color and line styles to the picture:

\begin{tikzpicture}
\draw [color=blue, fill=blue!20!white,fill opacity=0.6]
(0,0) circle (0.5);
\draw [thick, dashed, ->, rotate=30]
(-0.5,-0.5) -- (0.5,0.5);
\end{tikzpicture}

I Rotate the arrow.

Norbert Manthey
A brief introduction into TikZ

20

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\begin{tikzpicture}
\draw [orange, very thick] (0,0) circle (0.5);
\draw [orange, very thick](-0.5,-0.5) -- (0.5,0.5);
\draw [orange, very thick](0.5,-0.5) -- (-0.5,0.5);
\end{tikzpicture}

Norbert Manthey
A brief introduction into TikZ

21

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\begin{tikzpicture} [orange, very thick]


\draw (0,0) circle (0.5);
\draw(-0.5,-0.5) -- (0.5,0.5);
\draw(0.5,-0.5) -- (-0.5,0.5);
\end{tikzpicture}

I Define a set of options for the whole figure.

Norbert Manthey
A brief introduction into TikZ

22

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\begin{tikzpicture}
\draw (0,0) circle (0.5);
\begin{scope} [orange, very thick]
\draw(-0.5,-0.5) -- (0.5,0.5);
\draw(0.5,-0.5) -- (-0.5,0.5);
\end{scope}
\end{tikzpicture}

I Set a scope.

Norbert Manthey
A brief introduction into TikZ

23

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\begin{tikzpicture}
[marked/.style = {orange, very thick}]
\draw (0,0) circle (0.5);
\draw [marked] (-0.5,-0.5) -- (0.5,0.5);
\draw [marked] (0.5,-0.5) -- (-0.5,0.5);
\end{tikzpicture}

I Define a style.

Norbert Manthey
A brief introduction into TikZ

24

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\tikzset{marked/.style = {orange, very thick}}


\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw [marked] (-0.5,-0.5) -- (0.5,0.5);
\draw [marked] (0.5,-0.5) -- (-0.5,0.5);
\end{tikzpicture}

I Draw a global style.

Norbert Manthey
A brief introduction into TikZ

25

Scoping and Grouping Graphic Options


I Grouping multiple graphic options:

\tikzset{marked/.style = {orange, very thick}}


\begin{tikzpicture}
\draw (0,0) circle (0.5);
\draw [marked,blue] (-0.5,-0.5) -- (0.5,0.5);
\draw [marked,dashed] (0.5,-0.5) -- (-0.5,0.5);
\end{tikzpicture}

I Properties of styles can be overwritten.

Norbert Manthey
A brief introduction into TikZ

26

Coordinates
I There exists multiple coordinate systems

. Polar coordinates are not introduced here


I Absolute coordinates

\tikz \draw [thick,red] (0,0) -- (2mm, 0) -- (2mm, 5pt);


I Relative coordinates
\tikz \draw [thick,red] (0,0) -- +(2mm, 0) -- +(0, 5pt);

I Named points
\tikz \draw [thick,red] (0,0) -- ++(2mm, 0) -- +(0, 5pt);

I Named points
\tikz \draw [thick,red] (10mm,1mm) coordinate (c1) circle (5pt)
(0,0) -- (c1);

Norbert Manthey
A brief introduction into TikZ

27

Nodes

I A node is a simple shape with some text on it.

hello

\tikz \path node [shape=circle, draw, color=red] {hello};

I Constructed using the path-operation node.


I \path node can be abbreviated as \node.
I shape= and color= can be omitted if there is no confusion.

Norbert Manthey
A brief introduction into TikZ

28

Nodes

I A node is a simple shape with some text on it.

hello

\tikz \node [circle, draw, red] {hello};

I Constructed using the path-operation node.


I \path node can be abbreviated as \node.
I shape= and color= can be omitted if there is no confusion.

Norbert Manthey
A brief introduction into TikZ

29

Node Syntax
\path ... node

Norbert Manthey
A brief introduction into TikZ

[options]

(name)

at (coordinate)

30

{contents} ...;

Node Syntax
\path ... node

[options]

(name)

at (coordinate)

{contents} ...;

I options may contain node shape, color, sizes, labels, . . .


I A node may get a name for later reference.
I A node may be placed using at (coordinate).

(Otherwise it is placed at the current path coordinate.)


I Nodes contents can be arbitrary LATEX.

Norbert Manthey
A brief introduction into TikZ

31

Node Syntax
\path ... node

[options]

(name)

at (coordinate)

{contents} ...;

I options may contain node shape, color, sizes, labels, . . .


I A node may get a name for later reference.
I A node may be placed using at (coordinate).

(Otherwise it is placed at the current path coordinate.)


I Nodes contents can be arbitrary LATEX.

TikZ is quite liberal with respect to the order of the arguments.


hello

Norbert Manthey
A brief introduction into TikZ

\tikz \node [circle] at (0,0) [draw] (hello) [red] {hello};

32

Placing Nodes
p1

p1

pn

\begin{tikzpicture}
\node [packet] (p1) at (0,0.5) {$p_1$};
\node [packet] (p1) at (1,0.5) {$p_1$};
\node [packet] (p1) at (4,0.5) {$p_1$};
\end{tikzpicture}
I Can be placed at absolute positions.

Norbert Manthey
A brief introduction into TikZ

33

Placing Nodes
p1

p2

pn

\begin{tikzpicture}
\node [packet] (p1) at (0,0.5) {$p_1$};
\node [packet,right=0.25of p1] (p2) {$p_2$}
\node [packet,right=2of p2] (pn) {$p_n$}
\end{tikzpicture}
I Relative placement allows to say things like:

. Node (p2) should be right of (p1) (wherever (p1) happens to be).


. Requires the positioning TikZ library:
\usetikzlibrary{positioning}
. available: right=of, below=of, above left=of, . . .

Norbert Manthey
A brief introduction into TikZ

34

Connecting Nodes
I We can simply draw paths between node anchors.

\usetikzlibrary{arrows}
b

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a.east) -- (b.west);
\end{tikzpicture}

I Each node has anchors, e.g. east, west, center, . . .

Norbert Manthey
A brief introduction into TikZ

35

Connecting Nodes
I We can simply draw paths between node anchors.

\usetikzlibrary{arrows}
b

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) -- (b);
\end{tikzpicture}

I Each node has anchors, e.g. east, west, center, . . .


I If anchor specifications are left out TikZ tries to be smart about the anchor it

should choose.

Norbert Manthey
A brief introduction into TikZ

36

Connecting Nodes
I We can simply draw paths between node anchors.

\usetikzlibrary{arrows}
b

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) -| (b);
\end{tikzpicture}

I Each node has anchors, e.g. east, west, center, . . .


I If anchor specifications are left out TikZ tries to be smart about the anchor it

should choose.
I Another path operation -|
I Again, TikZ is clever about the correct anchors

Norbert Manthey
A brief introduction into TikZ

37

Connecting Nodes

I A very powerful path operation is to.

Norbert Manthey
A brief introduction into TikZ

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to (b);
\end{tikzpicture}

38

Connecting Nodes

I A very powerful path operation is to.

Norbert Manthey
A brief introduction into TikZ

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] (b);
\end{tikzpicture}

39

Connecting Nodes

I A very powerful path operation is to.

Norbert Manthey
A brief introduction into TikZ

\begin{tikzpicture}[>=latex]
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [out=0, in=180] (b);
\end{tikzpicture}

40

Labeling Connections
I Connections can be labeled by inserting text nodes in the path.

Norbert Manthey
A brief introduction into TikZ

\begin{tikzpicture}
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] (b);
\end{tikzpicture}

41

Labeling Connections
I Connections can be labeled by inserting text nodes in the path.

Norbert Manthey
A brief introduction into TikZ

\begin{tikzpicture}
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] node [auto] {$f$} (b);
\end{tikzpicture}

42

Labeling Connections
I Connections can be labeled by inserting text nodes in the path.

\begin{tikzpicture}
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] node [auto] {$f$} (b);
\end{tikzpicture}

I The auto option places the label such that it is next to the path and doesnt

overlap anything.

Norbert Manthey
A brief introduction into TikZ

43

Labeling Connections
I Connections can be labeled by inserting text nodes in the path.

b
f
a

\begin{tikzpicture}
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] node [auto,swap] {$f$}(b);
\end{tikzpicture}

I The auto option places the label such that it is next to the path and doesnt

overlap anything.
I swap places the label on the other side of the path.

Norbert Manthey
A brief introduction into TikZ

44

Labeling Connections
I Connections can be labeled by inserting text nodes in the path.

b
f

\begin{tikzpicture}
\node [circle, draw] (a) {a};
\node [circle, draw] (b) [above right=of a] {b};
\draw [->] (a) to [bend left=45] node [left] {$f$}(b);
\end{tikzpicture}

I The auto option places the label such that it is next to the path and doesnt

overlap anything.
I swap places the label on the other side of the path.
I Instead of auto, also left, above, right and below can be used

Norbert Manthey
A brief introduction into TikZ

45

For Loop

I For drawing multiple objects a for loop can be used


I Loops can be nested

\begin{tikzpicture}
\foreach \y in {1,2,3} {
\draw [blue, ultra thick] (0,\y ) circle [radius=0.3];
}
\end{tikzpicture}

Norbert Manthey
A brief introduction into TikZ

46

Good Practice
I Place nodes relative to each other
I Do not use to many colors and styles
I Do not overload figures.

I Further information:

. Gnuplot has a TikZ terminal


. Inkscape can export to TikZ
. Dia is another GUI that can export TikZ
. see http://www.texample.net/tikz/resources/

Norbert Manthey
A brief introduction into TikZ

47

You might also like