5 (3)

5 (3)

#### Overview of this book

In this first-of-its-kind TikZ book, you’ll embark on a journey to discover the fascinating realm of TikZ—what it’s about, the philosophy behind it, and what sets it apart from other graphics libraries. From installation procedures to the intricacies of its syntax, this comprehensive guide will help you use TikZ to create flawless graphics to captivate your audience in theses, articles, or books. You’ll learn all the details starting with drawing nodes, edges, and arrows and arranging them with perfect alignment. As you explore advanced features, you’ll gain proficiency in using colors and transparency for filling and shading, and clipping image parts. You’ll learn to define TikZ styles and work with coordinate calculations and transformations. That’s not all! You’ll work with layers, overlays, absolute positioning, and adding special decorations and take it a step further using add-on packages for drawing diagrams, charts, and plots. By the end of this TikZ book, you’ll have mastered the finer details of image creation, enabling you to achieve visually stunning graphics with great precision.
Chapter 1: Getting Started with TikZ
Free Chapter
Chapter 2: Creating the First TikZ Images
Chapter 3: Drawing and Positioning Nodes
Chapter 4: Drawing Edges and Arrows
Chapter 5: Using Styles and Pics
Chapter 6: Drawing Trees and Graphs
Chapter 7: Filling, Clipping, and Shading
Chapter 8: Decorating Paths
Chapter 9: Using Layers, Overlays, and Transparency
Chapter 10: Calculating with Coordinates and Paths
Chapter 11: Transforming Coordinates and Canvas
Chapter 12: Drawing Smooth Curves
Chapter 13: Plotting in 2D and 3D
Chapter 14: Drawing Diagrams
Chapter 15: Having Fun with TikZ
Index
Other Books You May Enjoy

# Giving arguments to styles

Remember that in Figure 5.5, we defined the `vertex` style in the following way:

```\tikzset{vertex/.style = {mytext, shape = circle,
ball color = blue}}```

We can introduce an argument when we intend to have different colors with the same style. One argument is easily supported; we can write the following, similar to arguments in macros:

```\tikzset{vertex/.style = {mytext, shape = circle,
ball color = #1}}```

Now, we can change our code for Figure 5.5 to choose colors as arguments:

```\node[vertex=blue] (A) {A};
\node[vertex=green, right = 4 cm of A] (B) {B};```

So, `#1` represents an argument in our style, and with `style=value`, we set that value for `#1`. We can specify a value that’s used when no value is given using the so-called `.``default` handler:

`\tikzset{vertex/.default=blue}`

Now, we can write `\node[vertex]` for a blue node by default, and `\node[vertex=green]` for a green node.

We may write `style={value}` to avoid misunderstandings...