texlive[63628] Master/texmf-dist: tikzlings (17jun22)

commits+karl at tug.org commits+karl at tug.org
Fri Jun 17 23:35:32 CEST 2022


Revision: 63628
          http://tug.org/svn/texlive?view=revision&revision=63628
Author:   karl
Date:     2022-06-17 23:35:31 +0200 (Fri, 17 Jun 2022)
Log Message:
-----------
tikzlings (17jun22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tikzlings/README.md
    trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.pdf
    trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.tex
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex

Modified: trunk/Master/texmf-dist/doc/latex/tikzlings/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzlings/README.md	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/doc/latex/tikzlings/README.md	2022-06-17 21:35:31 UTC (rev 63628)
@@ -1,7 +1,7 @@
 # TikZlings
 A collection of animals and other beings from the tikz world
 
-Current version: 2022/04/21 version v0.9
+Current version: 2022/06/17 version v1.0
 
 This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
 

Modified: trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.tex	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.tex	2022-06-17 21:35:31 UTC (rev 63628)
@@ -33,6 +33,7 @@
   allcolors=SteelBlue!50!black
 ]{hyperref}
 \usetikzlibrary{3d}
+\usetikzlibrary{tikzlings}
 
 % macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newcommand{\CTAN}{\textsc{CTAN}\xspace}
@@ -223,7 +224,7 @@
     \url{https://github.com/samcarter/tikzlings}\\
     \url{https://www.ctan.org/pkg/tikzlings}
   }{samcarter}}
-\date{Version v0.9 \textendash{} 2022/04/21}
+\date{Version v1.0 \textendash{} 2022/06/17}
 
 \begin{document}
 \maketitle
@@ -337,7 +338,7 @@
 A short example how the hooks can be used:
 \begin{tcblisting}{}
 \newcommand{\mousehookbelly}{%
- \fill[red!80!black] 
+\fill[red!80!black] 
 (0.55, 1.35) -- (0.65, 0.3) -- 
 (-0.65, 0.3) -- (-0.55, 1.35) 
 -- (0.0, 0.9) -- cycle;
@@ -345,6 +346,42 @@
 \mouse
 \end{tcblisting}
 
+Another way to use the \tikzlings is the \TikZ library of the same name. By loading this library, all macros from the normal package can be used. In addition the \TikZ library also defines the \tikzlings as \lstinline|pic|'s:
+\begin{tcolorbox}
+\begin{lstlisting}[morekeywords={bear,penguin,coati,thing,cat,duck,standalone,tikz,document}]
+\documentclass{standalone}
+
+\usepackage{tikz}
+\usetikzlibrary{tikzlings}
+
+\begin{document}
+\begin{tikzpicture}
+\path (1,0) pic{bear}
+       (2,1) pic[
+         coati/body=blue,
+         scale=0.5
+       ]{coati}
+       (3,2) pic[
+         thing/hat=red
+       ]{penguin};
+\end{tikzpicture}
+\end{document}  
+\end{lstlisting} 
+
+\tcblower
+\begin{tikzpicture}
+\path (1,0) pic{bear}
+       (2,1) pic[
+         coati/body=blue,
+         scale=0.5
+       ]{coati}
+       (3,2) pic[
+         thing/hat=red!80!black
+       ]{penguin};
+\end{tikzpicture}
+\end{tcolorbox}
+
+\clearpage
 \subsection*{List of all \tikzlings:}
 
 \begingroup
@@ -353,18 +390,8 @@
 \endgroup
 
 \makeatletter
-% modified from https://chat.stackexchange.com/transcript/message/56515698#56515698
-\ExplSyntaxOn
-\cs_new_protected:Npn \tikzlings_load_stys:N #1 {
-  \clist_map_inline:Nn #1 {
-    \exp_args:Nx \CommentInput { 
-      tikzlings- \__tikzlings_after_slash:w ##1 / / \s_stop .sty
-    }
-  }
-}
-\cs_new_eq:NN \tikzling at loadstys \tikzlings_load_stys:N
-\ExplSyntaxOff
-\tikzling at loadstys\tikzling at list
+\tikzlings at clistMapInlineNn{\tikzlings at packages@clist}{%
+  \CommentInput{tikzlings-#1.sty}}
 \makeatother
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -393,7 +420,7 @@
 
 \subsection{Options}
 
-Only options common for all \tikzlings are supported for the \lstinline|\tikzling|. These are the ability to change the body colour
+Options common for all \tikzlings are supported for the \lstinline|\tikzling|. These are the ability to change the body colour
 \begin{tcblisting}{}
 \tikzling[body=blue]
 \end{tcblisting}
@@ -413,7 +440,7 @@
 \tikzling[contour=black]
 \end{tcblisting}
 
-If an option of a specific tikzlings is used (for example \lstinline|sleeping| which only the koala and sloth can do) this only works if you are lucky and one of them is drawn, in all other cases it will result in an error. 
+If an option of a specific Ti\emph{k}Zling is used (for example \lstinline|sleeping|, which only the koala and sloth can do) this option will only work for these \tikzlings. For all other \tikzlings, the option will be silently ignored.
 
 In addition all usual \TikZ and \lstinline|pgf| keys can be used in the optional argument as well as the accessories presented in the following section.
 

Added: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex	2022-06-17 21:35:31 UTC (rev 63628)
@@ -0,0 +1,34 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ library for the tikzlings package
+% A package to bring cute little animals and other beings into tikz
+% Maintained by samcarter
+%
+% Project repository and bug tracker:
+% https://github.com/samcarter/tikzlings
+%
+% Released under the LaTeX Project Public License v1.3c or later
+% See http://www.latex-project.org/lppl.txt
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{tikzlings}
+
+\ExplSyntaxOn
+
+\clist_map_inline:Nn \g__tikzlings_names_clist
+  {
+    \tikzset
+      {
+        % Create a csname in the argument but don't expand it now
+        #1/.pic/.expanded = { \exp_not:c {#1} },
+        #1/.search~also = { , /tikz, /pgf, /thing },
+      }
+  }
+
+\ExplSyntaxOff
+
+\tikzset{
+  tikzling/.pic={\tikzling},
+  tikzling/.search also={,/tikz,/pgf,/thing},  
+  thing/.search also={,/tikz,/pgf},  
+}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 % See http://www.latex-project.org/lppl.txt
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-addons}[2022/04/21 version v0.9 Draw additional items for the tikzlings]
+\ProvidesPackage{tikzlings-addons}[2022/06/17 version v1.0 Draw additional items for the tikzlings]
 
 \RequirePackage{tikz}
 \usetikzlibrary{patterns} % for the wizard hat
@@ -21,32 +21,26 @@
 %
 % List of all TikZlings
 %
-% converting a list of the format
-%     bee/bees, marmot/marmots, ...
-% into a list of the format 
-%     /bee, /marmot, ...
-% for the also search option
-% usage: \tikzling at iteratesearch\tikzling at list
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \RequirePackage{tikzlings-list}
 \RequirePackage{expl3}
 
 \ExplSyntaxOn
-\cs_new:Npn \tikzlings_iteratesearch:N #1 { 
-  \clist_map_function:NN #1 \__tikzlings_slashed_items:n 
-}
-\cs_new:Npn \__tikzlings_slashed_items:n #1 {
-  / 
-  \exp_not:N { 
-    \__tikzlings_before_slashsearch:w #1 / \s_stop 
+\seq_clear:N \l_tmpa_seq
+
+\clist_map_inline:Nn \g__tikzlings_names_clist
+  {
+    \seq_put_right:Nn \l_tmpa_seq { /#1 }
   }
-  , 
-}
-\cs_new:Npn \__tikzlings_before_slashsearch:w #1 / #2 \s_stop {
-  \tl_trim_spaces:n {#1} 
-}
-\cs_new_eq:NN \tikzling at iteratesearch \tikzlings_iteratesearch:N
+
+% Comma list such as '/anteater,/bat,/bear,...,/wolf' for use with the
+% '.search also' handler
+\clist_const:Nx \c__tikzlings_search_paths_clist
+  {
+    \seq_use:Nn \l_tmpa_seq { , }
+  }
+
+\cs_new_eq:NN \tikzlings at search@paths at clist \c__tikzlings_search_paths_clist
 \ExplSyntaxOff
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -119,7 +113,7 @@
   % General
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  /thing/.search also/.expanded={/tikz,/pgf,\tikzling at iteratesearch\tikzling at list}, 
+  /thing/.search also/.expanded={/tikz, /pgf, \tikzlings at search@paths at clist},
   %/thing/.unknown/.code=\relax, % bad idea, prevents tikz/pgf keys
   /thing/.cd,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-anteaters}[2022/04/21 version v0.9 Drawing anteaters in TikZ]
+\ProvidesPackage{tikzlings-anteaters}[2022/06/17 version v1.0 Drawing anteaters in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -45,9 +45,9 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\anteater at body{#1},
+  body/.store in     = \anteater at body,
   body               = red!55!green!75!blue!66!white,
-  eye/.code          = \def\anteater at eye{#1},
+  eye/.store in      = \anteater at eye,
   eye                = \anteater at body!70!brown!50!darkgray,   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
@@ -123,18 +123,22 @@
   % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   \anteater at part@draw[\anteater at body] (0.52, 0.8) .. controls (0.52, 0.23) and (0.3, 0.17) .. (0, 0.17) .. controls (-0.3, 0.17) and (-0.52, 0.23) .. (-0.52, 0.8) .. controls (-0.52, 1.35) and (-0.3, 1.8) .. (0, 1.8) .. controls (0.3, 1.8) and (0.52, 1.35) .. (0.52, 0.8) -- cycle;
   %
+  % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \ifanteater at back
+    \anteater at part@draw[\anteater at body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28];    
+    \anteater at part@draw[\anteater at body!70!brown!50!darkgray]  
+     (-0,1.47) ellipse [x radius=0.35, y radius=0.23];  
+  \else% back
+    \anteater at part@draw[\anteater at body!45!white!95!orange]  (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.5, 1.05) and (-0.1, 0.95) .. (0, 0.60) .. controls (0.1, 0.95) and (0.5, 1.05) .. (0.33, 1.55) -- cycle;
+    \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.45, 1.1) and (-0.1, 1) .. (0, 0.70) .. controls (0.1, 1) and (0.45, 1.1) .. (0.33, 1.55) -- cycle;
+  \fi% back
+  %
   % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   \csname anteaterhookbelly\endcsname
   \csname tikzlinghookbelly\endcsname
   %  
   \ifanteater at back
-    %
-     % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    \anteater at part@draw[\anteater at body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28];    
-    %
-    % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    \anteater at part@draw[\anteater at body!70!brown!50!darkgray]  
-   (-0,1.47) ellipse [x radius=0.35, y radius=0.23];  
+    % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     \anteater at part@draw[\anteater at body]  (-0,1.73) ellipse [x radius=0.36, y radius=0.33];
     %
     % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -143,10 +147,6 @@
   %  
   \else% back
     %
-    % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-    \anteater at part@draw[\anteater at body!45!white!95!orange]  (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.5, 1.05) and (-0.1, 0.95) .. (0, 0.60) .. controls (0.1, 0.95) and (0.5, 1.05) .. (0.33, 1.55) -- cycle;
-    \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.33, 1.55) -- (-0.33, 1.55) .. controls (-0.45, 1.1) and (-0.1, 1) .. (0, 0.70) .. controls (0.1, 1) and (0.45, 1.1) .. (0.33, 1.55) -- cycle;
-    %
     % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.3531, 1.9773) .. controls (0.4315, 2.0197) and (0.6217, 2.172) .. (0.5917, 2.2157) .. controls (0.5615, 2.2594) and (0.3224, 2.178) .. (0.2441, 2.1354) .. controls (0.1659, 2.093) and (0.1269, 2.023) .. (0.1569, 1.9793) .. controls (0.1870, 1.9356) and (0.2748, 1.9347) .. (0.3531, 1.9773) -- cycle;
     \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (-0.3531, 1.9773) .. controls (-0.4315, 2.0197) and (-0.6217, 2.172) .. (-0.5917, 2.2157) .. controls (-0.5615, 2.2594) and (-0.3224, 2.178) .. (-0.2441, 2.1354) .. controls (-0.1659, 2.093) and (-0.1269, 2.023) .. (-0.1569, 1.9793) .. controls (-0.1870, 1.9356) and (-0.2748, 1.9347) .. (-0.3531, 1.9773) -- cycle;

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bats}[2022/04/21 version v0.9 Drawing bats in TikZ]
+\ProvidesPackage{tikzlings-bats}[2022/06/17 version v1.0 Drawing bats in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -47,19 +47,19 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\bat at body{#1},
+  body/.store in     = \bat at body,
   body               = black!75!white,
-  ears/.code         = \def\bat at ears{#1},
+  ears/.store in     = \bat at ears,
   ears               = \bat at body,     
-  eye/.code          = \def\bat at eye{#1},
+  eye/.store in      = \bat at eye,
   eye                = white,
-  pupil/.code        = \def\bat at pupil{#1},
+  pupil/.store in    = \bat at pupil,
   pupil              = black,
-  mouth/.code        = \def\bat at mouth{#1},
+  mouth/.store in    = \bat at mouth,
   mouth              = black,     
-  feet/.code         = \def\bat at feet{#1},
+  feet/.store in     = \bat at feet,
   feet               = orange, 
-  wings/.code        = \def\bat at wings{#1},
+  wings/.store in    = \bat at wings,
   wings              = 1,  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bears}[2022/04/21 version v0.9 Draw teddy bears in TikZ]
+\ProvidesPackage{tikzlings-bears}[2022/06/17 version v1.0 Draw teddy bears in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -45,11 +45,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\bear at body{#1},
+  body/.store in     = \bear at body,
   body               = brown,
-  eye/.code          = \def\bear at eye{#1},
+  eye/.store in      = \bear at eye,
   eye                = \bear at body!30!black,  
-  mouth/.code        = \def\bear at mouth{#1},
+  mouth/.store in    = \bear at mouth,
   mouth              = \bear at body!30!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bees}[2022/04/21 version v0.9 Drawing bees in TikZ]
+\ProvidesPackage{tikzlings-bees}[2022/06/17 version v1.0 Drawing bees in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,19 +46,19 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\bee at body{#1},
+  body/.store in     = \bee at body,
   body               = yellow!70!orange,
-  hands/.code        = \def\bee at hands{#1},
+  hands/.store in    = \bee at hands,
   hands              = black,  
-  wings/.code        = \def\bee at wings{#1},
+  wings/.store in    = \bee at wings,
   wings              = blue!20!cyan!30!white, 
-  stripes/.code      = \def\bee at stripes{#1},
+  stripes/.store in  = \bee at stripes,
   stripes            = black,     
-  antennas/.code     = \def\bee at antennas{#1},
+  antennas/.store in = \bee at antennas,
   antennas           = black,     
-  eye/.code          = \def\bee at eye{#1},
+  eye/.store in      = \bee at eye,
   eye                = black,   
-  mouth/.code        = \def\bee at mouth{#1},
+  mouth/.store in    = \bee at mouth,
   mouth              = black,      
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bugs}[2022/04/21 version v0.9 Drawing bugs in TikZ]
+\ProvidesPackage{tikzlings-bugs}[2022/06/17 version v1.0 Drawing bugs in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,23 +46,23 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\bug at body{#1},
+  body/.store in     = \bug at body,
   body               = black!90!white,
-  arms/.code         = \def\bug at arms{#1},
+  arms/.store in     = \bug at arms,
   arms               = red!80!black,  
-  wings/.code        = \def\bug at wings{#1},
+  wings/.store in    = \bug at wings,
   wings              = red!80!black, 
-  dots/.code         = \def\bug at dots{#1},
+  dots/.store in     = \bug at dots,
   dots               = black!90!white,     
-  antennas/.code     = \def\bug at antennas{#1},
+  antennas/.store in = \bug at antennas,
   antennas           = red!80!black,     
-  eye/.code          = \def\bug at eye{#1},
+  eye/.store in      = \bug at eye,
   eye                = white,
-  pupil/.code        = \def\bug at pupil{#1},
+  pupil/.store in    = \bug at pupil,
   pupil              = black,
-  mouth/.code        = \def\bug at mouth{#1},
+  mouth/.store in    = \bug at mouth,
   mouth              = red,     
-  feet/.code         = \def\bug at feet{#1},
+  feet/.store in     = \bug at feet,
   feet               = red!80!black, 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-cats}[2022/04/21 version v0.9 Drawing cats in TikZ]
+\ProvidesPackage{tikzlings-cats}[2022/06/17 version v1.0 Drawing cats in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -73,14 +73,14 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code              = \def\cat at body{#1},
+  body/.store in          = \cat at body,
   body                    = gray!30!black,
-  whiskers/.code          = \def\cat at whiskers{#1},
+  whiskers/.store in      = \cat at whiskers,
   whiskers                = gray!50!white,
-  eye/.code               = \def\cat at eye{#1},
+  eye/.store in           = \cat at eye,
   eye                     = yellow!80!orange,
   eyes/.forward to        = /cat/eye,
-  pupil/.code             = \def\cat at pupil{#1},
+  pupil/.store in         = \cat at pupil,
   pupil                   = black,
   pupilwidth/.code        = \def\cat at pupil@width{#1}
                             \edef\cat at pupil@offset{\strip at pt\dimexpr#1pt/4},
@@ -94,9 +94,9 @@
   very wide pupils/.code  = \def\cat at pupil@width{0.050}
                             \edef\cat at pupil@offset{\strip at pt\dimexpr 0.050pt/4},
   pupil width             = 0.015,
-  paws/.code              = \def\cat at paws{#1},
+  paws/.store in          = \cat at paws,
   paws                    = \cat at body,
-  nose/.code              = \def\cat at nose{#1},
+  nose/.store in          = \cat at nose,
   nose                    = red!40!white!80!gray,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-chickens}[2022/04/21 version v0.9 Draw chickens in TikZ]
+\ProvidesPackage{tikzlings-chickens}[2022/06/17 version v1.0 Draw chickens in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -52,17 +52,17 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\chicken at body{#1},
+  body/.store in     = \chicken at body,
   body               = brown!50!orange!70!yellow!80!white,
-  eye/.code          = \def\chicken at eye{#1},
+  eye/.store in      = \chicken at eye,
   eye                = white!90!gray,
-  pupil/.code        = \def\chicken at pupil{#1},
+  pupil/.store in    = \chicken at pupil,
   pupil              = brown!30!black,
-  bill/.code         = \def\chicken at bill{#1},
+  bill/.store in     = \chicken at bill,
   bill               = yellow,
-  feet/.code         = \def\chicken at feet{#1},
+  feet/.store in     = \chicken at feet,
   feet               = orange!90!yellow,  
-  comb/.code         = \def\chicken at comb{#1},
+  comb/.store in     = \chicken at comb,
   comb               = red,    
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-coatis}[2022/04/21 version v0.9 Drawing coatis in TikZ]
+\ProvidesPackage{tikzlings-coatis}[2022/06/17 version v1.0 Drawing coatis in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,11 +46,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\coati at body{#1},
+  body/.store in     = \coati at body,
   body               = brown!50!darkgray!97!yellow,
-  eye/.code          = \def\coati at eye{#1},
+  eye/.store in      = \coati at eye,
   eye                = \coati at body!50!black,   
-  rotatehead/.code   = \def\coati at rotatehead{#1},
+  rotatehead/.store in = \coati at rotatehead,
   rotate head/.forward to = /coati/rotatehead,
   rotatehead         = 0,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-elephants}[2022/04/21 version v0.9 Draw teddy elephants in TikZ]
+\ProvidesPackage{tikzlings-elephants}[2022/06/17 version v1.0 Draw teddy elephants in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -45,9 +45,9 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\elephant at body{#1},
+  body/.store in     = \elephant at body,
   body               = gray,
-  eye/.code          = \def\elephant at eye{#1},
+  eye/.store in      = \elephant at eye,
   eye                = \elephant at body!30!black,  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-hippos}[2022/04/21 version v0.9 Drawing hippos in TikZ]
+\ProvidesPackage{tikzlings-hippos}[2022/06/17 version v1.0 Drawing hippos in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -45,15 +45,15 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\hippo at body{#1},
+  body/.store in     = \hippo at body,
   body               = gray,
-  eye/.code          = \def\hippo at eye{#1},
+  eye/.store in      = \hippo at eye,
   eye                = white,   
-  pupil/.code        = \def\hippo at pupil{#1},
+  pupil/.store in    = \hippo at pupil,
   pupil              = black,  
-  toes/.code         = \def\hippo at toes{#1},
+  toes/.store in     = \hippo at toes,
   toes               = \hippo at body!55!white,
-  mouth/.code        = \def\hippo at mouth{#1},
+  mouth/.store in    = \hippo at mouth,
   mouth              = \hippo at body!70!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-koalas}[2022/04/21 version v0.9 Drawing koalas in TikZ]
+\ProvidesPackage{tikzlings-koalas}[2022/06/17 version v1.0 Drawing koalas in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -52,11 +52,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\koala at body{#1},
+  body/.store in     = \koala at body,
   body               = gray!75!white,
-  eye/.code          = \def\koala at eye{#1},
+  eye/.store in      = \koala at eye,
   eye                = black,   
-  mouth/.code        = \def\koala at mouth{#1},
+  mouth/.store in    = \koala at mouth,
   mouth              = \koala at body!40!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -1,4 +1,4 @@
-\ProvidesPackage{tikzlings-list}[2022/04/21 version v0.9 Helper package for the tikzlings]
+\ProvidesPackage{tikzlings-list}[2022/06/17 version v1.0 Helper package for the tikzlings]
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -5,29 +5,53 @@
 % List of all TikZlings
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\tikzling at list{
-  anteater/anteaters,
-  bat/bats,
-  bear/bears,
-  bee/bees,
-  bug/bugs,
-  cat/cats,
-  chicken/chickens,
-  coati/coatis,
-  elephant/elephants,
-  hippo/hippos,
-  koala/koalas,
-  marmot/marmots,
-  mouse/mice,
-  moles/moles,
-  owl/owls,
-  panda/pandas,
-  penguin/penguins,
-  pig/pigs,
-  rhino/rhinos,
-  sheep/sheep,
-  sloth/sloths,
-  snowman/snowmen,
-  squirrel/squirrels,
-  wolf/wolves%
-}
+
+\ExplSyntaxOn
+
+\clist_const:Nn \c__tikzlings_clist
+  {
+    anteater / anteaters,
+    bat / bats,
+    bear / bears,
+    bee / bees,
+    bug / bugs,
+    cat / cats,
+    chicken / chickens,
+    coati / coatis,
+    elephant / elephants,
+    hippo / hippos,
+    koala / koalas,
+    marmot / marmots,
+    mouse / mice,
+    moles / moles,       % avoid conflict with siunitx's \mole
+    owl / owls,
+    panda / pandas,
+    penguin / penguins,
+    pig / pigs,
+    rhino / rhinos,
+    sheep / sheep,
+    sloth / sloths,
+    snowman / snowmen,
+    squirrel / squirrels,
+    wolf / wolves
+  }
+
+\clist_new:N \g__tikzlings_names_clist
+\clist_new:N \g__tikzlings_packages_clist
+
+% Store the two “columns” of \c__tikzlings_clist in these variables
+\clist_map_inline:Nn \c__tikzlings_clist
+  {
+    \seq_set_split:Nnn \l_tmpa_seq { / } {#1}
+    \clist_gput_right:Nx \g__tikzlings_names_clist
+      { \seq_item:Nn \l_tmpa_seq { 1 } }
+    \clist_gput_right:Nx \g__tikzlings_packages_clist
+      { \seq_item:Nn \l_tmpa_seq { 2 } }
+  }
+
+% Define aliases that can be used without \ExplSyntaxOn
+\cs_new_eq:NN \tikzlings at clist \c__tikzlings_clist
+\cs_new_eq:NN \tikzlings at names@clist \g__tikzlings_names_clist
+\cs_new_eq:NN \tikzlings at packages@clist \g__tikzlings_packages_clist
+
+\ExplSyntaxOff

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-marmots}[2022/04/21 version v0.9 Drawing marmots in TikZ]
+\ProvidesPackage{tikzlings-marmots}[2022/06/17 version v1.0 Drawing marmots in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -74,11 +74,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\marmot at body{#1},
+  body/.store in     = \marmot at body,
   body               = brown,
-  eye/.code          = \def\marmot at eye{#1},
+  eye/.store in      = \marmot at eye,
   eye                = \marmot at body!50!black,   
-  mouth/.code        = \def\marmot at mouth{#1},
+  mouth/.store in    = \marmot at mouth,
   mouth              = \marmot at body!50!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-mice}[2022/04/21 version v0.9 Drawing mice in TikZ]
+\ProvidesPackage{tikzlings-mice}[2022/06/17 version v1.0 Drawing mice in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -49,11 +49,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\mouse at body{#1},
+  body/.store in     = \mouse at body,
   body               = gray!90!white,
-  eye/.code          = \def\mouse at eye{#1},
+  eye/.store in      = \mouse at eye,
   eye                = \mouse at body!50!black,   
-  whiskers/.code     = \def\mouse at whiskers{#1},
+  whiskers/.store in = \mouse at whiskers,
   whiskers           = \mouse at body!50!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-moles}[2022/04/21 version v0.9 Drawing moles in TikZ]
+\ProvidesPackage{tikzlings-moles}[2022/06/17 version v1.0 Drawing moles in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,17 +46,17 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\moles at body{#1},
+  body/.store in     = \moles at body,
   body               = gray,
-  eye/.code          = \def\moles at eye{#1},
+  eye/.store in      = \moles at eye,
   eye                = \moles at body!60!black,   
-  feet/.code         = \def\moles at feet{#1},
+  feet/.store in     = \moles at feet,
   feet               = red!20!white!50!brown,
-  hands/.code        = \def\moles at hands{#1},
+  hands/.store in    = \moles at hands,
   hands              = red!20!white!50!brown,  
-  muzzle/.code       = \def\moles at muzzle{#1},
+  muzzle/.store in   = \moles at muzzle,
   muzzle             = red!20!white!50!brown, 
-  mouth/.code        = \def\moles at mouth{#1},
+  mouth/.store in    = \moles at mouth,
   mouth              = \moles at body!60!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-owls}[2022/04/21 version v0.9 Draw owls in TikZ]
+\ProvidesPackage{tikzlings-owls}[2022/06/17 version v1.0 Draw owls in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,15 +46,15 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\owl at body{#1},
+  body/.store in     = \owl at body,
   body               = brown!70!black,
-  eye/.code          = \def\owl at eye{#1},
+  eye/.store in      = \owl at eye,
   eye                = white!90!gray,
-  pupil/.code        = \def\owl at pupil{#1},
+  pupil/.store in    = \owl at pupil,
   pupil              = brown!30!black,
-  bill/.code         = \def\owl at bill{#1},
+  bill/.store in     = \owl at bill,
   bill               = orange,
-  feet/.code         = \def\owl at feet{#1},
+  feet/.store in     = \owl at feet,
   feet               = orange,  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pandas}[2022/04/21 version v0.9 Drawing pandas in TikZ]
+\ProvidesPackage{tikzlings-pandas}[2022/06/17 version v1.0 Drawing pandas in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,13 +46,13 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\panda at body{#1},
+  body/.store in     = \panda at body,
   body               = white!90!black,
-  eye/.code          = \def\panda at eye{#1},
+  eye/.store in      = \panda at eye,
   eye                = white, 
-  pupil/.code        = \def\panda at pupil{#1},
+  pupil/.store in    = \panda at pupil,
   pupil              = black, 
-  mouth/.code        = \def\panda at mouth{#1},
+  mouth/.store in    = \panda at mouth,
   mouth              = black,   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-penguins}[2022/04/21 version v0.9 Draw penguins in TikZ]
+\ProvidesPackage{tikzlings-penguins}[2022/06/17 version v1.0 Draw penguins in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,17 +46,17 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\penguin at body{#1},
+  body/.store in     = \penguin at body,
   body               = black,
-  belly/.code        = \def\penguin at belly{#1},
+  belly/.store in    = \penguin at belly,
   belly              = white!95!black,
-  feet/.code         = \def\penguin at feet{#1},
+  feet/.store in     = \penguin at feet,
   feet               = yellow!50!orange,
-  bill/.code         = \def\penguin at bill{#1},
+  bill/.store in     = \penguin at bill,
   bill               = orange,  
-  eye/.code          = \def\penguin at eye{#1},
+  eye/.store in      = \penguin at eye,
   eye                = white!95!black,
-  pupil/.code        = \def\penguin at pupil{#1},
+  pupil/.store in    = \penguin at pupil,
   pupil              = black, 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pigs}[2022/04/21 version v0.9 Drawing pigs in TikZ]
+\ProvidesPackage{tikzlings-pigs}[2022/06/17 version v1.0 Drawing pigs in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -47,13 +47,13 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\pig at body{#1},
+  body/.store in     = \pig at body,
   body               = pigdark,
-  eye/.code          = \def\pig at eye{#1},
+  eye/.store in      = \pig at eye,
   eye                = gray,  
-  tail/.code         = \def\pig at tail{#1},
+  tail/.store in     = \pig at tail,
   tail               = \pig at body, 
-  mouth/.code        = \def\pig at mouth{#1},
+  mouth/.store in    = \pig at mouth,
   mouth              = gray,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-rhinos}[2022/04/21 version v0.9 Drawing rhinos in TikZ]
+\ProvidesPackage{tikzlings-rhinos}[2022/06/17 version v1.0 Drawing rhinos in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -46,15 +46,15 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\rhino at body{#1},
+  body/.store in     = \rhino at body,
   body               = gray,
-  toes/.code         = \def\rhino at toes{#1},
+  toes/.store in     = \rhino at toes,
   toes               = \rhino at body!55!white,
-  eye/.code          = \def\rhino at eye{#1},
+  eye/.store in      = \rhino at eye,
   eye                = white,  
-  pupil/.code        = \def\rhino at pupil{#1},
+  pupil/.store in    = \rhino at pupil,
   pupil              = black,  
-  mouth/.code        = \def\rhino at mouth{#1},
+  mouth/.store in    = \rhino at mouth,
   mouth              = \rhino at body!70!black, 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-sheep}[2022/04/21 version v0.9 Drawing sheep in TikZ]
+\ProvidesPackage{tikzlings-sheep}[2022/06/17 version v1.0 Drawing sheep in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -51,11 +51,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\sheep at body{#1},
+  body/.store in     = \sheep at body,
   body               = brown!50!darkgray!97!yellow,
-  eye/.code          = \def\sheep at eye{#1},
+  eye/.store in      = \sheep at eye,
   eye                = \sheep at body!50!black, 
-  nose/.code         = \def\sheep at nose{#1},
+  nose/.store in     = \sheep at nose,
   nose               = \sheep at body!50!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-sloths}[2022/04/21 version v0.9 Drawing sloths in TikZ]
+\ProvidesPackage{tikzlings-sloths}[2022/06/17 version v1.0 Drawing sloths in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -49,13 +49,13 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\sloth at body{#1},
+  body/.store in     = \sloth at body,
   body               = slothcol,
-  eye/.code          = \def\sloth at eye{#1},
+  eye/.store in      = \sloth at eye,
   eye                = black,   
-  eyelid/.code       = \def\sloth at eyelid{#1},
+  eyelid/.store in   = \sloth at eyelid,
   eyelid             = \sloth at body!50!white,
-  mouth/.code        = \def\sloth at mouth{#1},
+  mouth/.store in    = \sloth at mouth,
   mouth              = \sloth at body!40!black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-snowmen}[2022/04/21 version v0.9 Draw snowmen in TikZ]
+\ProvidesPackage{tikzlings-snowmen}[2022/06/17 version v1.0 Draw snowmen in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -47,15 +47,15 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\snowman at body{#1},
+  body/.store in     = \snowman at body,
   body               = white!95!black,
-  eye/.code          = \def\snowman at eye{#1},
+  eye/.store in      = \snowman at eye,
   eye                = black,
-  nose/.code         = \def\snowman at nose{#1},
+  nose/.store in     = \snowman at nose,
   nose               = orange,
-  mouth/.code        = \def\snowman at mouth{#1},
+  mouth/.store in    = \snowman at mouth,
   mouth              = black,
-  buttons/.code      = \def\snowman at buttons{#1},
+  buttons/.store in  = \snowman at buttons,
   buttons            = black, 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-squirrels}[2022/04/21 version v0.9 Drawing squirrels in TikZ]
+\ProvidesPackage{tikzlings-squirrels}[2022/06/17 version v1.0 Drawing squirrels in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -45,11 +45,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\squirrel at body{#1},
+  body/.store in     = \squirrel at body,
   body               = brown!40!gray!90!red,
-  eye/.code          = \def\squirrel at eye{#1},
+  eye/.store in      = \squirrel at eye,
   eye                = white, 
-  pupil/.code        = \def\squirrel at pupil{#1},
+  pupil/.store in    = \squirrel at pupil,
   pupil              = black,    
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 %% See http://www.latex-project.org/lppl.txt
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-wolves}[2022/04/21 version v0.9 Drawing wolves in TikZ]
+\ProvidesPackage{tikzlings-wolves}[2022/06/17 version v1.0 Drawing wolves in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -50,11 +50,11 @@
   % body
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body/.code         = \def\wolf at body{#1},
+  body/.store in     = \wolf at body,
   body               = gray!90!white,
-  eye/.code          = \def\wolf at eye{#1},
+  eye/.store in      = \wolf at eye,
   eye                = white,   
-  pupil/.code        = \def\wolf at pupil{#1},
+  pupil/.store in    = \wolf at pupil,
   pupil              = black,   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
@@ -211,7 +211,7 @@
 %%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %\clearpage
-%\section[wolf]{Westy, the wolf}
+%\section[Wolf]{Westy, the wolf}
 %
 %\emph{The wolf was kindly contributed by @cfroccajr. It is named ``Westy'' for the Western CT State University, whose new mascot is a wolf.}
 %

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty	2022-06-17 18:20:49 UTC (rev 63627)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty	2022-06-17 21:35:31 UTC (rev 63628)
@@ -12,7 +12,7 @@
 % See http://www.latex-project.org/lppl.txt
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings}[2022/04/21 version v0.9 Collection of packages to draw animals and other beings in TikZ]
+\ProvidesPackage{tikzlings}[2022/06/17 version v1.0 Collection of packages to draw animals and other beings in TikZ]
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -28,20 +28,13 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \RequirePackage{tikz}
 
-% from https://chat.stackexchange.com/transcript/message/56515698#56515698
 \ExplSyntaxOn
-\cs_new_protected:Npn \tikzlings_load_packages:N #1 {
-  \clist_map_inline:Nn #1 {
-    \exp_args:Nx \RequirePackage { 
-      tikzlings- \__tikzlings_after_slash:w ##1 / / \s_stop 
-    }
-  }
-}
-\cs_new:Npn \__tikzlings_after_slash:w #1 / #2 / #3 \s_stop { \tl_trim_spaces:n {#2} }
-\cs_new_eq:NN \tikzling at loadpackages \tikzlings_load_packages:N
+\cs_new_eq:NN \tikzlings at clistMapInlineNn \clist_map_inline:Nn
 \ExplSyntaxOff
-\tikzling at loadpackages\tikzling at list
 
+\tikzlings at clistMapInlineNn{\tikzlings at packages@clist}{%
+  \RequirePackage{tikzlings-#1}}
+
 \RequirePackage{tikzlings-addons}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -65,31 +58,44 @@
   \pgfmathsetseed{\number\pdfrandomseed} 
 \fi
 
-% from https://chat.stackexchange.com/transcript/message/56516469#56516469
-% To be able to x-expand \iterateTikzlings, it has to be expandable, so no 'protected'.  Also \clist_map_inline:Nn is not expandable, so we have to use \clist_map_function:NN instead.
-\cs_new:Npn \tikzlings_iterate:N #1 { 
-  \clist_map_function:NN #1 \__tikzlings_braced_items:n 
-}
-% \__tikzlings_braced_items:n will receive each clist item, then:
-\cs_new:Npn \__tikzlings_braced_items:n #1 {
-  { % leave an open brace
-  % we don't want the x-expansion to expand the tikzling command, so we prevent expansion with \exp_not:c.  The 'c' variant is used so it builds a csname from its argument, before preventing the expansion: and the argument is what's before the '/'
-  \exp_not:c { 
-    \__tikzlings_before_slash:w #1 / \s_stop 
+% #1: tikzling name.
+% The second argument of \__tikzlings_show_tikzling:nn will be provided
+% by \tikzling.
+\cs_new:Npn \__tikzlings_brace_item:n #1
+  { { \__tikzlings_show_tikzling:nn {#1} } }
+
+% #1: tikzling name
+% #2: options passed to its command
+\cs_new_protected:Npn \__tikzlings_show_tikzling:nn #1#2
+  {
+    \group_begin:
+      \pgfkeys
+        {
+          /#1/.search~also/.expanded =
+            { /tikz, /pgf, /thing, \tikzlings at search@paths at clist }
+        }
+      \use:c {#1} [{#2}]
+    \group_end:
   }
-  } % leave a close brace
-}
-\cs_new:Npn \__tikzlings_before_slash:w #1 / #2 \s_stop {
-  \tl_trim_spaces:n {#1} % make sure there are no spaces around the string
-}
-\cs_new_eq:NN \tikzling at iteraterandom \tikzlings_iterate:N
-\cs_new_eq:NN \ExpArgsNnx \exp_args:Nnx
 
+\cs_new_protected:Npn \__tikzlings_declare_pgfmath_random_list:n #1
+  {
+    \pgfmathdeclarerandomlist { tikzlings } {#1}
+  }
+
+% Variant that uses \edef on the argument, then passes the result to
+% \__tikzlings_declare_pgfmath_random_list:n
+\cs_generate_variant:Nn \__tikzlings_declare_pgfmath_random_list:n { x }
+
+% Works because \clist_map_function:NN is expandable
+\__tikzlings_declare_pgfmath_random_list:x
+  {
+    \clist_map_function:NN \g__tikzlings_names_clist \__tikzlings_brace_item:n
+  }
 \ExplSyntaxOff
 
-\ExpArgsNnx\pgfmathdeclarerandomlist{tikzlings}{\tikzling at iteraterandom\tikzling at list}
-
 \newcommand{\tikzling}[1][]{%
-  \pgfmathrandomitem{\tikzling at random}{tikzlings}%
-  \tikzling at random[#1]
+  \pgfmathrandomitem{\tikzlings at random}{tikzlings}%
+  % #1 is passed as second argument to \__tikzlings_show_tikzling:nn
+  \tikzlings at random{#1}%
 }



More information about the tex-live-commits mailing list.