I discovered that there is a different default dimension in shift and xshift.
Consider the following mwe
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (a) at (0,3) {a};
\node (b) at (0,2) {b};
\node (c) at (0,1) {c};
\node (d) at (0,0) {d};
\node[xshift=5cm] at (a) {aa};
\node[shift={(5cm,0)}] at (b) {bb};
\node[xshift=5] at (c) {cc};
\node[shift={(5,0)}] at (d) {dd};
\draw[help lines] (0,0) grid (5,3) ;
\end{tikzpicture}
\end{document}
It gives the following result:
For the two first lines given with 'cm' (a and b), the behavior of shift and xshift is the same.
But without dimensions (c and d) , it seems that shift uses default tikz dimensions, while xshift seems to use point?
I noticed that in the manual xshift is always given with cm, but this behavior is not explained.
Am I doing something incorrect? Is it a bug or a feature?
\draw (0,0) circle(1);
gives you a circle of radius 1cm, similarly for arcs. As you have noticed, this is also true for coordinates, soat (1,0)
andat (1cm,0)
are equivalent. That's why theshift={(5,0)}
andshift={(5cm,0)}
can be used interchangedly. But for "most" other situations the default unit ispt
.