samcarter
For testing purposes I would like to pass a key and value (e.g. `body=red`) to all Ti*k*Zlings. Is there an easier way than repeating it for each Ti*k*Zling?
```
\documentclass{standalone}
\usepackage{tikzlings}
\begin{document}
\begin{tikzpicture}
\bear[body=red]
\end{tikzpicture}
\begin{tikzpicture}
\penguin[body=red]
\end{tikzpicture}
\begin{tikzpicture}
\marmot[body=red]
\end{tikzpicture}
\end{document}
```
Top Answer
marmot
A very simpleminded approach.
```
\documentclass{standalone}
\usepackage{tikzlings}
\tikzset{tikzling body red/.code={\tikzset{/#1/body=red}}}
\begin{document}
\tikzset{tikzling body red/.list={bear,penguin,marmot}}
\begin{tikzpicture}
\bear
\end{tikzpicture}
\begin{tikzpicture}
\penguin
\end{tikzpicture}
\begin{tikzpicture}
\marmot
\end{tikzpicture}
\end{document}
```

and of course
```
\tikzset{tikzling body red/.list={bear,marmot}}
```
gives

BTW, some time ago I experimented a bit with keys that allow you to build the union or complement of two lists, but I never finalized this. Such tools might be useful for coloring all Ti*k*Zlings. However, if you play with such lists, the `/.expanded` may be important:
```
\def\lstTikzlings{{bear,penguin,marmot}}
\tikzset{tikzling body red/.list/.expanded=\lstTikzlings}
```