# Scaling nodes, grow sep, and coordinates while preserving text size

I have a drawing based on 1cm unit.

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,positioning}
\begin{document}
\begin{tikzpicture}[
every node/.style = {
circle,
very thick,
inner sep = 0,
outer sep = 0,
minimum size = 1cm,
draw = black,
scale = 1,
},
]
\graph[grow right sep = 1cm]{
1 -> 2 -> 3 -> 4
};
\draw[help lines] (-0.5, -1.5) grid (8, 1.5);
\end{tikzpicture}
\end{document}


I'd like to scale it to 0.75× while preserving the font size (which should stay the same as the rest of the document). I did manage to get the desired output, but I think it's rather hacky because I don't know why it's working.

% …
\begin{tikzpicture}[scale=0.75,
% …
minimum size = 0.75cm,
% …
\graph[grow right sep = 5mm]{
% …


What is bugging me particularly is grow right sep = 5mm, which I got right by trial and error.

Scaling had to be done also for nodes shapes (by transform shapes):

\documentclass[border=3.141502, varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,positioning}
\begin{document}
\begin{tikzpicture}[scale=0.75, transform shape,%x=7.5mm,
every node/.style = {circle, draw, very thick,
inner sep = 0, outer sep=0pt,
minimum size = 10mm},
]
\graph[grow right sep=10mm]{
1 -> 2 -> 3 -> 4
};
\draw[help lines] (-0.5,-1.5) grid (8,1.5);
\end{tikzpicture}

\medskip
\begin{tikzpicture}[
every node/.style = {circle, draw, very thick,
inner sep = 0, outer sep=0pt,
minimum size = 10mm},
]
\graph[grow right sep=10mm]{
1 -> 2 -> 3 -> 4
};
\draw[help lines] (-0.5,-1.5) grid (8,1.5);
\end{tikzpicture}
\end{document}


Addendum: Unfortunately the question wasn't entirely clear (at least me). Now I guess, that you like to have smaller shapes, smaller node distances but normal text font size. This can be achieved by accordingly changes size of nodes, size of node distance and (if you like) also step of help lines. all this changes are in code marked by % <---:

\documentclass[border=3.141502, varwidth]{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,positioning}
\begin{document}
\begin{tikzpicture}[
every node/.style = {circle, draw, very thick,
inner sep = 0, outer sep=0pt,
minimum size = 7.5mm}, % <---
]
\graph[grow right sep=7.5mm]{               % <---
1 -> 2 -> 3 -> 4
};
\draw[help lines, step=7.5mm]               % <---
(-0.5,-1.5) grid (6,1.5);
\end{tikzpicture}

for comparison with "scaled" image:

\begin{tikzpicture}[
every node/.style = {circle, draw, very thick,
inner sep = 0, outer sep=0pt,
minimum size = 10mm},
]
\graph[grow right sep=10mm]{
1 -> 2 -> 3 -> 4
};
\draw[help lines] (-0.5,-1.5) grid (8,1.5);
% for test of scaling:
\end{tikzpicture}
\end{document}


Is this result what you after? As you see, it cannot be get by simple scaling. However you still can use first solution and in nodes use bigger font size, for example Large in your case.

• I don't want the text to be scaled, though. Also, do you understand why right sep needs to be set to 5mm rather than 7.5mm in my solution? Feb 11 at 16:38
• I see. You've specified new sizes for everything. I hoped everything could have been scaled with a single command. I want to draw things within the new scaled reference system, say a rectangle enclosing some nodes without resorting to using multiples of 7.5 cm. Feb 11 at 19:21