Following the answer to this other question, I am using the Milsymb library and changing the foreground colour.
\documentclass{standalone}
\usepackage{tikz}
\usepackage{forest}
\usepackage{milsymb}
\makeatletter
\protected\def\tikz@fig@main#1{%
\expandafter\gdef\csname labeltextof@\tikz@fig@name\endcsname{#1}%
\iftikz@node@is@pic%
\tikz@node@is@picfalse%
\tikz@subpicture@handle{#1}%
\else%
\tikz@@fig@main#1\egroup%
\fi}
\makeatother
\newcommand\labeltextof[1]{\csname labeltextof@#1\endcsname}
\newcommand{\aftercolorof}[2]{% #1 is the color, #2 us the node
\path (#2.center) node[#1] (#2-2) {\labeltextof{#2}};
}
\begin{document}
\begin{tikzpicture}
\node (nA) {\tikz{\MilLand[faction=friendly,monochrome,echelon=division,main=armoured]{}}};
\aftercolorof{red}{nA}
\end{tikzpicture}
\end{document}
This produces red foregound colour.
How do I also change the node background colour (ie the light grey above, not the white image background)?


\coordinate (nA) at (0,0); \pgfsetstrokecolor{red} \MilLand[faction=friendly, echelon=division, main=armoured, red, fill=green](nA). – Jasper Habicht Mar 24 '23 at 19:09\coordinate(and I seem to need the{}at the end, which you have omitted). – Tomas By Mar 24 '23 at 20:06{}at the end. Which error do you get? – samcarter_is_at_topanswers.xyz Mar 24 '23 at 20:08\MilLand(approximately, I had the impression) and they disappeared when I added the brackets. – Tomas By Mar 24 '23 at 20:12\MilLandcommands in the matrix, so that may be the difference. – Tomas By Mar 24 '23 at 20:13\MilLand(and all the other macros defined by the package) haveo D(){0,0} d() gas argument type definition, so it is safe (and maybe also necessary sometimes, depending on the context) to add one pair of{}at the end of these macros (if no other argument is given instead). – Jasper Habicht Mar 24 '23 at 20:19\color{...}to\pgfsetstrokecolor{...}to change it. – samcarter_is_at_topanswers.xyz Mar 24 '23 at 20:30