Use rotating.sty for wide tables/figures

You can use the rotating package to automatically rotate wide figures or tables. It provides {sidewaystable}/{sidewaysfigure} as a alternatives for {table}/{figure} and rotates the environment content by 90°. The direction of the rotation can be set with package options clockwise or counterclockwise; if you set twoside as class or package option the tables/figures are rotated by extra 180° on odd pages.

PS: Use booktabs for a nicer styling of your tables 😉

Add a prefix to your labels

To keep track of (the target of) your labels you might want to add a prefix to their names indicating the thing they are referring to. E.g. sec for sections, eq for equations, fig for figures etc. It is common to separate the prefix with a colon from the label name like in the following example:

Then when you read your code you always know that \ref{sec:test} refers to a section.

In some cases the colon can cause troubles, e.g. when you type a french document with babel, varioref, hyperref and cleveref (see this and this post on TeX.SX for example). In that case you may use another character to separate the prefix.

scrpage2 is obsolete

With KOMA-Script version 3.12 the bundled package scrpage2 became obsolete and should no longer be used. Instead use the new package scrlayer-scrpage, which provides nearly the same interface but has much more power than scrpage2. For example with the new package instead of

you can use

to set the same mark content for plain and normal style pages. That is shorter and is more consistent: For instance if you have a more complex definition than \pagemark now there’s only one place to make changes.

For more details check the manual: scrguien.pdf (or the german version scrguide.pdf), chapter 5.

When changing font size don’t forget the \par

When you change the font size with commands like \Large inside a group you must end the paragraph either with a blank line or  \par before the group ends to get the right line spacing.

TeX always uses the baseline skip settings of the site active at the paragraph end, which is actually \normalsize in the first code.

Download a complete example from my website …

Crossing lines

Sometimes it’s not possible in diagrams or charts, that a line goes over another one. To not let this crossing look like a real connection of the two lines, we can let the top line go over a gap in the bottom line. It would require to calculate the intersection of the lines.

However, there’s an easy way: draw the firsts line normally, then draw the top line with a bit whitespace around. Or the top line first thicker and white (or background color), then again thin and black (foreground color).

The probably easiest way in TikZ is: draw a “double” line (TikZ manual, 15.3.4 Graphic Parameters: Double Lines and Bordered Lines). Originally, it gives two parallel lines with space in-between filled by a color. But we want to get a single line. Solution: a double line in white, the gap between them filled in black. This results in a black line with white space around.

Many words, short and simple code example:

This way, double distance is the width of the actual black line, while line width stands for the white space on each side.

Use it such as:

It can look like:

datacenter1

Or:

datacenter2

Flipping images

When I defined an image as a TikZ node, I easily create and use a flipped version: I define a mirror style that does a reflection for me:

As my original style was defined this way

I simply override the image style by adding the mirror style:

This way I can get a diagram with a focus to its center:

network-physical

Images as TikZ nodes

In diagrams, I need to include images, such as symbolic icons or photos of actual hardware. I defined a generic TikZ style with two arguments: the name of the image, and the desired width. The height comes automatically with the same aspect ratio.

For the final node style, I apply this style plus adjustments such as actual node width and x or y separation:

All style definitions above go into a \tikzset command, separated by comma, plus many more global styles I need:

This way I get photos with annotations for larger physical diagrams:

core-switch