In the following example, I would like to set the font size of a node from "inside" the node's contents, i.e. without changing the node's font attribute:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%% From https://tex.stackexchange.com/q/359189/2113
\def\gobblechar{\let\xchar= }
\def\assignthencheck{\afterassignment\xloop\gobblechar}
\def\xloop{%
\ifx\relax\xchar
\let\next=\relax
\else
\phantom{8}\makebox[0pt][r]{\xchar}
\let\next=\assignthencheck
\fi
\next}
\def\cellbits#1#2{\assignthencheck#1\relax \\ \assignthencheck#2\relax}
\begin{scope}[scale=0.5,every node/.style={font=\large,align=center}]
\draw[thin, densely dotted] (0,0) grid (7,1);
\begin{scope}[shift={(0.5,0.5)}]
\draw (0,0) node{1};
\draw (2,0) node{\cellbits{123}{456}};
\draw (4,0) node[font=\tiny]{\cellbits{123}{456}};
\draw (6,0) node{\tiny\cellbits{123}{456}};
\end{scope}
\end{scope}
\end{tikzpicture}
\end{document}
The nodes at (0,0) and (2,0) are just for reference. The node at (4,0) is exactly the output I would like to get.
The node at (6,0) illustrates my problem. The \tiny size seems to be applied only to the first line (until the \\), and the line spacing and the second line all have size \large, i.e. the one based on the node's default font attribute:
What can I put inside the (6,0) node's contents to get the same output as the (4,0) node?
P.s.: If it can't be done "compositionally" i.e. if I have to change the definition of cellbits / xloop to "push in" the \tiny-ness, that is not optimal, but still fine.


\draw (6,0) node{\tiny\AddToHook{cmd/phantom/before}{\tiny}\cellbits{123}{456}\RemoveFromHook{cmd/phantom/before}};3and the4.\draw (6,0) node{\parbox{.03\textwidth}{\tiny\cellbits{123}{456}}};suffice?