texlive[54838] Master/texmf-dist: tikzlings (22apr20)

commits+karl at tug.org commits+karl at tug.org
Wed Apr 22 22:50:08 CEST 2020


Revision: 54838
          http://tug.org/svn/texlive?view=revision&revision=54838
Author:   karl
Date:     2020-04-22 22:50:07 +0200 (Wed, 22 Apr 2020)
Log Message:
-----------
tikzlings (22apr20)

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-bears.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.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-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-sloths.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty

Added Paths:
-----------
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
    trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty

Modified: trunk/Master/texmf-dist/doc/latex/tikzlings/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzlings/README.md	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/doc/latex/tikzlings/README.md	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,19 +1,20 @@
 # TikZlings
 A collection of animals and other beings from the tikz world
 
-Current version: 2019/04/07 v0.2
+Current version: 2020/04/22 version v0.3
 
 This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt
 
-![tikzlings](https://github.com/samcarter/tikzlings/blob/master/Examples/tikzlings.png)
+![tikzlings](https://raw.githubusercontent.com/samcarter/tikzlings/master/Examples/tikzlings.png)
 
 ### TikZlings in action
 
-Several TikZlings are featured in the following video:
+Several TikZlings are featured in the following videos:
 
-[![The great TikZlings Christmas Extravaganza 2018](https://user-images.githubusercontent.com/43832342/49704004-3cd27500-fc0d-11e8-9002-319a8e71aca7.png)](https://vimeo.com/305374856)
+<a href="https://vimeo.com/305374856"><img src="https://user-images.githubusercontent.com/43832342/49704004-3cd27500-fc0d-11e8-9002-319a8e71aca7.png" alt="The great TikZlings Christmas Extravaganza 2018" title="The great TikZlings Christmas Extravaganza 2018" height="128"></a>
+<a href="https://vimeo.com/380684973"><img src="https://user-images.githubusercontent.com/43832342/71256276-8382a100-2330-11ea-8996-e87132c6ad29.png" alt="The great TikZlings Christmas Extravaganza 2019" title="The great TikZlings Christmas Extravaganza 2019" height="128"></a>
 
-The source code for the "The great TikZlings Christmas Extravaganza 2018" can be found at https://github.com/samcarter/Extravanganza2018 .
+The source code of the movies is available from [The great TikZlings Christmas Extravaganza 2018](https://github.com/samcarter/Extravaganza2018) and [The great TikZlings Christmas Extravaganza 2019](https://github.com/samcarter/Extravaganza2019).
 
 
 

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	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/doc/latex/tikzlings/tikzlings-doc.tex	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,7 +1,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % Documentation for the tikzlings package
-% A collection of packages to draw animals in tikz
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -10,20 +10,18 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019  
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \documentclass[parskip=half]{scrartcl}
 
 % packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage[T1]{fontenc}	
-\usepackage[utf8]{inputenc}		
+\usepackage[T1]{fontenc}  
+\usepackage[utf8]{inputenc}    
 \usepackage[english]{babel}
 \usepackage[svgnames]{xcolor}
 \usepackage[bitstream-charter]{mathdesign}
 \usepackage{tikzlings}
 \usepackage[most]{tcolorbox}
+\usepackage{bearwear}
 \usepackage[paper=a4paper,margin=3cm]{geometry}
 \usepackage{url}
 \usepackage{xspace}
@@ -30,10 +28,11 @@
 \usepackage{scrlayer-scrpage} 
 \usepackage[hang,flushmargin,bottom]{footmisc}
 \usepackage[%
-	colorlinks=true,
-	breaklinks=true,
-	allcolors=SteelBlue!50!black
+  colorlinks=true,
+  breaklinks=true,
+  allcolors=SteelBlue!50!black
 ]{hyperref}
+\usetikzlibrary{3d}
 
 % macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newcommand{\CTAN}{\textsc{CTAN}\xspace}
@@ -66,7 +65,7 @@
 
 \makeatletter
 \renewcommand{\sectionlinesformat}[4]{%
-\ifstr{#1}{section}{%
+\Ifstr{#1}{section}{%
     \parbox[t]{\linewidth}{%
       \raggedsection\@hangfrom{\hskip #2#3}{#4}\par%
       \kern-.75\ht\strutbox\rule{\linewidth}{.8pt}%
@@ -84,46 +83,46 @@
 \colorlet{blue}{SteelBlue}
 
 \lstdefinestyle{duckstyle}{%
-	language={[latex]TeX},
-	tabsize=2,
-	breaklines,
-	basicstyle=\ttfamily,
-	commentstyle={\color{green!50!black}\slshape}, 
-	columns=fullflexible,
-	alsodigit={-},
-	alsoletter={3},
-	emphstyle=\color{red!60!black},
-	emph=[1]{
-		tikzlings,
-		tikzlings-marmots, tikzlings-bears, tikzlings-coatis, tikzlings-koalas, tikzlings-marmots, tikzlings-owls, tikzlings-penguins, tikzlings-snowmans, tikzlings-mice, tikzlings-moles, tikzlings-sloths, tikzlings-pigs, tikzlings-cats, tikzlings-hippos, tikzlings-rhinos, tikzlings-pandas,
-		body, 3D, rotatehead, sideward, blush, sleeping, whiskers, teeth, shadow, askphil, leftstep, rightstep, eye, nose, pupil, bill, feet, belly, ask, phil, mouth, buttons, rotatearms, eyes, paws,
-		scale, yshift, xshift, rotate, hands, muzzle, schroedinger, toes,
-		hat, tophat, beret, strawhat, ribbon, harlequin, niuqelrah, witch, magichat, magicstars, crown, queencrown, kingcrown, santa, chef, graduate, tassel, alien, book, bookcolour, signpost, signcolour, signback, speech, think, bubblecolour, pizza, cheese, baguette, cake, icecream, flavoura, flavourb, flavourc, milkshake, wine, cricket, hockey, football, crystalball, magicwand, rollingpin, lightsaber, torch, basket, easter, egga, eggb, eggc, crozier, shovel, pickaxe, umbrella, umbrellaclosed, handbag, cocktail, pupilwidth,
-	},
-	texcsstyle=*\color{SteelBlue!50!black}\bfseries,
-	keywordstyle=\color{red!60!black}\bfseries,
-	morekeywords={tikzpicture},
-	moretexcs={
-		usepackage, usetikzlibrary, marmot, coati, bear, koala, owl, penguin, thing, tikzling, snowman, mouse, moles, sloth, pig, cat, hippo, rhino, panda,
-	},
-	delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
-	moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
-	index=[1][emph]
+  language={[latex]TeX},
+  tabsize=2,
+  breaklines,
+  basicstyle=\ttfamily,
+  commentstyle={\color{green!50!black}\slshape}, 
+  columns=fullflexible,
+  alsodigit={-},
+  alsoletter={3},
+  emphstyle=\color{red!60!black},
+  emph=[1]{
+    tikzlings,
+    tikzlings-marmots, tikzlings-bears, tikzlings-coatis, tikzlings-koalas, tikzlings-marmots, tikzlings-owls, tikzlings-penguins, tikzlings-snowmans, tikzlings-mice, tikzlings-moles, tikzlings-sloths, tikzlings-pigs, tikzlings-cats, tikzlings-hippos, tikzlings-rhinos, tikzlings-pandas, tikzlings-bees, tikzlings-anteaters, tikzlings-squirrels,
+    body, 3D, rotatehead, sideward, blush, sleeping, whiskers, teeth, shadow, askphil, leftstep, rightstep, eye, nose, pupil, bill, feet, belly, ask, phil, mouth, buttons, rotatearms, eyes, paws, back, pupilwidth, globalwarming, wings, antennas, stripes,
+    scale, yshift, xshift, rotate, hands, muzzle, schroedinger, toes,
+    hat, tophat, beret, strawhat, ribbon, harlequin, niuqelrah, witch, magichat, magicstars, crown, queencrown, kingcrown, santa, chef, graduate, tassel, alien, book, bookcolour, signpost, signcolour, signback, speech, think, bubblecolour, pizza, cheese, baguette, cake, icecream, flavoura, flavourb, flavourc, milkshake, wine, cricket, hockey, football, crystalball, magicwand, rollingpin, lightsaber, torch, basket, easter, egga, eggb, eggc, crozier, shovel, pickaxe, umbrella, umbrellaclosed, handbag, cocktail,
+  },
+  texcsstyle=*\color{SteelBlue!50!black}\bfseries,
+  keywordstyle=\color{red!60!black}\bfseries,
+  morekeywords={tikzpicture},
+  moretexcs={
+    usepackage, usetikzlibrary, marmot, coati, bear, koala, owl, penguin, thing, tikzling, snowman, mouse, moles, sloth, pig, cat, hippo, rhino, panda, bee, anteater, squirrel, bearwear, tikzlinghookbackground, tikzlinghookbelly, tikzlinghookbody, tikzlinghookforeground, mousehookbelly
+  },
+  delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
+  moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
+  index=[1][emph]
 }
 
 \tcbset{%
-	colframe=SteelBlue!50!black,
-	arc=0mm,
-	fonttitle=\bfseries,
-	sidebyside,
-	listing options={style=duckstyle},
-	center lower,
-	righthand width=6.5cm,
-	bottom=0pt, 
-	top=0pt,
-	tikz lower,
-	height plus=3cm,
-	colback=SteelBlue!30!white
+  colframe=SteelBlue!50!black,
+  arc=0mm,
+  fonttitle=\bfseries,
+  sidebyside,
+  listing options={style=duckstyle},
+  center lower,
+  righthand width=6.5cm,
+  bottom=0pt, 
+  top=0pt,
+  tikz lower,
+  height plus=3cm,
+  colback=SteelBlue!30!white
 }
 
 \lstset{style=duckstyle}
@@ -134,50 +133,14 @@
 \cfoot{\thepage} 
 \pagestyle{scrheadings}
 
-\makeatletter
-\renewcommand*{\coati}[1][]{%
-	\begin{scope}%
-		\path (-1.63,0.1) rectangle (1.63,2.26);
-		\tikzset{/coati/.cd,#1}%
-		\coati at draw%
-	\end{scope}%
-	\thing[#1]%
-}
+\newcommand{\coatihookbackground}{\path (-1.63,0.1) rectangle (1.63,2.26);}
+\newcommand{\mousehookbackground}{\path (-1.6,0.1) rectangle (0.905, 2.17);}
+\newcommand{\cathookbackground}{\path (-1.6,0.1) rectangle (0.905, 2.17);}
 
-\renewcommand*{\mouse}[1][]{%
-	\begin{scope}%
-		\path (-1.6,0.1) rectangle (0.905, 2.17);
-		\tikzset{/mouse/.cd,#1}%
-		\mouse at draw%
-	\end{scope}%
-	\thing[#1]%
-}
-
-\renewcommand*{\cat}[1][]{%
-  \begin{scope}%
-    \tikzset{/cat/.cd,#1}%
-    \ifcat at schroedinger
-      \pgfmathparse{int(random(0,1))}
-      \let\cat at random=\pgfmathresult
-      \ifnum\cat at random=1
-				\cat at tombstone%
-       \else%
-     		\path (-1.6,0.1) rectangle (0.905, 2.17);
-       	\cat at draw%
-      \fi%
-    \else%
-   		\path (-1.6,0.1) rectangle (0.905, 2.17);
-    	\cat at draw%
-    \fi
-  \end{scope}%
-  \thing[#1]%
-}
-\makeatother
-
 \cfoot{%
-	\begin{tikzpicture}[scale=0.5] 
-	    \tikzling[signpost={\thepage}]
-	\end{tikzpicture}
+  \begin{tikzpicture}[scale=0.5] 
+      \tikzling[signpost={\thepage}]
+  \end{tikzpicture}
 } 
 
 % meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -184,11 +147,11 @@
 \title{The \texorpdfstring{\tikzlings}{tikzlings} package}
 \subtitle{drawing animals and beings in \TikZ}
 \author{%
-	\texorpdfstring{\texttt{samcarter}\\[0.8em]
-		\url{https://github.com/samcarter/tikzlings}\\
-		\url{https://www.ctan.org/pkg/tikzlings}
-	}{samcarter}}
-\date{Version 0.2 -- \today}
+  \texorpdfstring{\texttt{samcarter}\\[0.8em]
+    \url{https://github.com/samcarter/tikzlings}\\
+    \url{https://www.ctan.org/pkg/tikzlings}
+  }{samcarter}}
+\date{Version v0.3 \textendash{} 2020/04/22}
 
 \begin{document}
 \maketitle
@@ -201,11 +164,12 @@
 
 This package is work in progress, therefore I would be happy to hear your feedback and ideas how to improve the package. 
 The head version of the source code can be found on \url{github.com/samcarter/tikzlings}, including a bug tracker -- please make constructive use of it! 
+If you seek any other assistance (not bug reports/feature requests), I suggest asking a question at \url{topanswers.xyz/tex}.
 A more stable package version can be found on \CTAN (\url{https://www.ctan.org/pkg/tikzlings}) and is included in both \miktex and \texlive as \tikzlings. 
 
 \subsection*{Acknowledgements}
 
-I'd like to thank the friendly and helpful community of \href{https://tex.stackexchange.com/}{TeX.Stackexchange} for their suggestions, feedback and help to create this package and find a suitable name for it. As a thank you all the \tikzlings have a name which is in some way or another connected to the users of TeX.SE.
+I'd like to thank the friendly and helpful community of \TeX{} users for their suggestions, feedback and help to create this package and find a suitable name for it. As a thank you all the \tikzlings have a name which is in some way or another connected to the users of \TeX{}.
 
 \subsection*{License}
 
@@ -231,15 +195,133 @@
 
 In addition to the standard options provided by \TikZ each \tikzlings also comes with some additional options which are listed in the following sections. If these additional options consist of multiple words they are available both with and without spaces, for example \lstinline|askphil| and \lstinline|ask phil| will be treated as the same.
 
+To make customisation  of the \tikzlings easier, some hooks are provided, which can be redefined by the user in order to add commands at specific layers:
+\begin{itemize}
+  \color{SteelBlue!50!black}
+  \item \lstinline|\<name_of_the_tikzling>hookbackground|
+  \item \lstinline|\<name_of_the_tikzling>hookbelly|
+  \item \lstinline|\<name_of_the_tikzling>hookbody| 
+  \item \lstinline|\<name_of_the_tikzling>hookforeground|
+\end{itemize}
+
+With regard to the individual components of the \tikzlings, they are located in the following z order:
+\begin{center}
+\begin{tikzpicture}
+    \newcommand{\planes}{\fill[SteelBlue!30!white,opacity=0.9]  (-1.9,-0.1) rectangle (1.9,2.4);}
+    \newcommand{\hooks}{\draw[SteelBlue!50!black, rounded corners=3pt, line width=1pt]  (-1.9,-0.1) rectangle (1.9,2.4);}
+    \newcounter{layer}
+    \setcounter{layer}{0}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \hooks
+      \node[font=\footnotesize\ttfamily,rotate=45] at (0,0.1) {background};
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \planes
+      \newcommand{\rhinohookbelly}{
+        \pgfsetfillopacity{0}
+        \pgfsetstrokeopacity{0}
+      }
+      \rhino
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \hooks
+      \node[font=\footnotesize\ttfamily,rotate=45] at (0,0.1) {belly};
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \planes
+      \newcommand{\rhinohookbackground}{
+        \pgfsetfillopacity{0}
+        \pgfsetstrokeopacity{0}
+      }      
+      \newcommand{\rhinohookbelly}{
+        \pgfsetfillopacity{1}
+        \pgfsetstrokeopacity{1}
+      }
+      \rhino
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \hooks
+      \node[font=\footnotesize\ttfamily,rotate=45] at (0,0.1) {body};
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \planes
+      \thing[magichat,magicwand]
+    \end{scope}
+    \addtocounter{layer}{1}
+    \begin{scope}[canvas is zy plane at x=\thelayer*1.8]
+      \hooks
+      \node[font=\footnotesize\ttfamily,rotate=45] at (0,0.1) {foreground};
+    \end{scope}
+  \end{tikzpicture}
+\end{center}
+
+In addition the hooks \lstinline|\tikzlinghookbackground|, \lstinline|\tikzlinghookbelly|, \lstinline|\tikzlinghookbody| and \lstinline|\tikzlinghookforeground| are available and will effect all \tikzlings.
+
+A short example how the hooks can be used:
+
+\begin{tcblisting}{}
+\newcommand{\mousehookbelly}{%
+ \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;
+}
+\mouse
+\end{tcblisting}
+
 \subsection*{List of all \tikzlings:}
 
 \begingroup
-	\hypersetup{hidelinks}
-	\tableofcontents
+  \hypersetup{hidelinks}
+  \tableofcontents
 \endgroup
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% Anteater 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage
+\section[Anteater]{Peter, the anteater}
+
+\subsection{Package name}
+
+\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
+\vspace*{0.5cm}
+\lstinline|\usepackage{tikzlings-anteaters}| 
+\vspace*{0.5cm}
+\end{tcolorbox}
+
+\subsection{Basic Usage}
+
+\begin{tcblisting}{}
+\anteater
+\end{tcblisting}
+
+\subsection{Options}
+
+The basic anteater can be modified by changing its colour:
+\begin{tcblisting}{}
+\anteater[body=blue]
+\end{tcblisting}
+
+To view the anteater from behind:
+\begin{tcblisting}{}
+\anteater[back]
+\end{tcblisting}
+
+The key \lstinline|3D| will make the anteater 3-dimensional:
+\begin{tcblisting}{}
+\anteater[3D]
+\end{tcblisting}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
 % Bear 
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -269,13 +351,98 @@
 \bear[body=blue]
 \end{tcblisting}
 
+To view the teddy bear from behind:
+\begin{tcblisting}{}
+\bear[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the teddy bear 3-dimensional:
 \begin{tcblisting}{}
 \bear[3D]
 \end{tcblisting}
 
+\subsection{Extension}
+
+The B\"ar and Ulrike Fischer wrote the fantastic \lstinline|bearwear| package, that provides many different clothing options for the \lstinline|TikZbears|. All the other \tikzlings admire them for the nice clothing!
+
+A short example:
+
+\begin{tcblisting}{}
+%\usepackage{bearwear}
+\bear
+\bearwear[
+  long sleeves, 
+  shirt=red!80!black
+]
+\end{tcblisting}
+
+Many more options and examples can be found in the package documentation \url{https://ctan.org/pkg/bearwear}. 
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% Bee 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage
+\section[Bee]{Beeing, the bee}
+
+\emph{The bee was kindly contributed by @marmot}
+
+\subsection{Package name}
+
+\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
+\vspace*{0.5cm}
+\lstinline|\usepackage{tikzlings-bees}| 
+\vspace*{0.5cm}
+\end{tcolorbox}
+
+\subsection{Basic Usage}
+
+\begin{tcblisting}{}
+\bee
+\end{tcblisting}
+
+\subsection{Options}
+
+The basic bee can be modified by changing its colour:
+\begin{tcblisting}{}
+\bee[body=blue]
+\end{tcblisting}
+
+In addition to the colour of the body, the colour of various body parts can be adjusted:
+\begin{tcblisting}{}
+\bee[antennas=red]
+\end{tcblisting}
+\begin{tcblisting}{}
+\bee[eye=red]
+\end{tcblisting}
+\begin{tcblisting}{}
+\bee[mouth=red]
+\end{tcblisting}
+\begin{tcblisting}{}
+\bee[wings=red]
+\end{tcblisting}
+\begin{tcblisting}{}
+\bee[hands=red]
+\end{tcblisting}
+\begin{tcblisting}{}
+\bee[stripes=red]
+\end{tcblisting}
+
+To view the bee from behind:
+\begin{tcblisting}{}
+\bee[back]
+\end{tcblisting}
+
+The key \lstinline|3D| will make the bee 3-dimensional:
+\begin{tcblisting}{}
+\bee[3D]
+\end{tcblisting}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
 % Cat
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -348,13 +515,26 @@
 \end{tikzpicture}
 \end{tcolorbox}
 
-
-There is also the special option \lstinline|schroedinger|. This cat is both alive and death as long as you did not compile your document.
+There is also the special option \lstinline|schroedinger|. This cat is both alive and dead as long as you did not compile your document.
 Be prepared for a possibly disturbing scene when you open the pdf, this option is not suited for sensitive \tikzlings.
+\begingroup
+\makeatletter
+\renewcommand*{\cat}[1][]{%
+    \tikzset{/cat/.cd,#1}%
+    \cat at tombstone%
+}
+\renewcommand{\cathookbackground}{}
+\makeatother
 \begin{tcblisting}{}
 \cat[schroedinger]
 \end{tcblisting}
+\endgroup
 
+To view the cat from behind:
+\begin{tcblisting}{}
+\cat[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the cat 3-dimensional:
 \begin{tcblisting}{}
 \cat[3D]
@@ -401,6 +581,11 @@
 \coati[sideward]
 \end{tcblisting}
 
+To view the coati from behind:
+\begin{tcblisting}{}
+\coati[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the coati 3-dimensional:
 \begin{tcblisting}{}
 \coati[3D]
@@ -442,6 +627,11 @@
 \hippo[toes=red]
 \end{tcblisting}
 
+To view the hippo from behind:
+\begin{tcblisting}{}
+\hippo[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the hippo 3-dimensional:
 \begin{tcblisting}{}
 \hippo[3D]
@@ -455,7 +645,7 @@
 \clearpage
 \section[Koala]{Will, the koala}
 
-\emph{The koala was generously contributed by the TeX.Stackexchange user marmot and is named in honour of a \LaTeX{} developer from Down Under}
+\emph{The koala was generously contributed by @marmot and is named in honour of a \LaTeX{} developer from Down Under}
 
 \subsection{Package name}
 
@@ -488,6 +678,11 @@
 \koala[sleeping]
 \end{tcblisting}
 
+To view the koala from behind:
+\begin{tcblisting}{}
+\koala[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the koala 3-dimensional:
 \begin{tcblisting}{}
 \koala[3D]
@@ -555,6 +750,11 @@
 \marmot[rightstep,xshift=2cm]
 \end{tcblisting}
 
+To view the marmot from behind:
+\begin{tcblisting}{}
+\marmot[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the marmot 3-dimensional:
 \begin{tcblisting}{}
 \marmot[3D]
@@ -587,7 +787,7 @@
 
 \subsection{Options}
 
-The basic mouse can be modified by changing its colour:
+The basic mole can be modified by changing its colour:
 \begin{tcblisting}{}
 \moles[body=blue]
 \end{tcblisting}
@@ -605,6 +805,11 @@
 \moles[feet=red]
 \end{tcblisting}
 
+To view the mole from behind:
+\begin{tcblisting}{}
+\moles[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the mole 3-dimensional:
 \begin{tcblisting}{}
 \moles[3D]
@@ -618,7 +823,7 @@
 \clearpage
 \section[Mouse]{Tokz, the mouse}
 
-\emph{The idea for the mouse came from an Italian TeX.Stackexchange user -- Tokz is a combination of the Italian word for mouse and \TikZ}
+\emph{The idea for the mouse came from an Italian \LaTeX{} user -- Tokz is a combination of the Italian word for mouse and \TikZ}
 
 \subsection{Package name}
 
@@ -646,6 +851,17 @@
 \mouse[rotatearms=40]
 \end{tcblisting}
 
+And the mouse can lift its legs:
+\begin{tcblisting}{}
+\mouse[leftstep]
+\mouse[rightstep,xshift=2cm]
+\end{tcblisting}
+
+To view the mouse from behind:
+\begin{tcblisting}{}
+\mouse[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the mouse 3-dimensional:
 \begin{tcblisting}{}
 \mouse[3D]
@@ -659,7 +875,7 @@
 \clearpage
 \section[Owl]{Jake, the owl}
 
-\emph{The owl Jake was inspired by the avatar of one of the top users of TeX.Stackexchange}
+\emph{The owl Jake was inspired by the avatar of one of the world's top TikZperts}
 
 \subsection{Package name}
 
@@ -696,6 +912,11 @@
 \owl[feet=red]
 \end{tcblisting}
 
+To view the owl from behind:
+\begin{tcblisting}{}
+\owl[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the owl 3-dimensional:
 \begin{tcblisting}{}
 \owl[3D]
@@ -732,6 +953,11 @@
 \panda[body=blue]
 \end{tcblisting}
 
+To view the panda from behind:
+\begin{tcblisting}{}
+\panda[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the panda 3-dimensional:
 \begin{tcblisting}{}
 \panda[3D]
@@ -786,6 +1012,11 @@
 \penguin[feet=red]
 \end{tcblisting}
 
+To view the penguin from behind:
+\begin{tcblisting}{}
+\penguin[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the penguin 3-dimensional:
 \begin{tcblisting}{}
 \penguin[3D]
@@ -822,6 +1053,11 @@
 \pig[body=blue]
 \end{tcblisting}
 
+To view the pig from behind:
+\begin{tcblisting}{}
+\pig[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the pig 3-dimensional:
 \begin{tcblisting}{}
 \pig[3D]
@@ -863,12 +1099,16 @@
 \rhino[toes=red]
 \end{tcblisting}
 
+To view the rhino from behind:
+\begin{tcblisting}{}
+\rhino[back]
+\end{tcblisting}
+
 The key \lstinline|3D| will make the rhino 3-dimensional:
 \begin{tcblisting}{}
 \rhino[3D]
 \end{tcblisting}
 
-
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % Sloth 
@@ -877,7 +1117,7 @@
 \clearpage
 \section[Sloth]{Riley, the sloth}
 
-\emph{One of the regulars in the TeX.Stackexchange chat once met a sloth called Riley}
+\emph{One of good souls behind the TugBoat once met a sloth called Riley}
 
 \subsection{Package name}
 
@@ -905,6 +1145,11 @@
 \sloth[sleeping]
 \end{tcblisting}
 
+To view the sloth from behind:
+\begin{tcblisting}{}
+\sloth[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the sloth 3-dimensional:
 
 \begin{tcblisting}{}
@@ -913,6 +1158,47 @@
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% Squirrel 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage
+\section[Squirrel]{Ratatosk, the squirrel}
+
+\emph{named after the squirrel from Norse mythology who climbs around Yggdrasil}
+
+\subsection{Package name}
+
+\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
+\vspace*{0.5cm}
+\lstinline|\usepackage{tikzlings-squirrels}| 
+\vspace*{0.5cm}
+\end{tcolorbox}
+
+\subsection{Basic Usage}
+
+\begin{tcblisting}{}
+\squirrel
+\end{tcblisting}
+
+\subsection{Options}
+
+The basic squirrel can be modified by changing its colour:
+\begin{tcblisting}{}
+\squirrel[body=blue]
+\end{tcblisting}
+
+To view the squirrel from behind:
+\begin{tcblisting}{}
+\squirrel[back]
+\end{tcblisting}
+
+Finally the key \lstinline|3D| will make the squirrel 3-dimensional:
+\begin{tcblisting}{}
+\squirrel[3D]
+\end{tcblisting}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
 % Snowman 
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -956,6 +1242,16 @@
 \snowman[buttons=red]
 \end{tcblisting}
 
+The biggest enemy of the snowman are raising temperatures:
+\begin{tcblisting}{}
+\snowman[globalwarming,tophat]
+\end{tcblisting}
+
+To view the snowman from behind:
+\begin{tcblisting}{}
+\snowman[back]
+\end{tcblisting}
+
 Finally the key \lstinline|3D| will make the snowman 3-dimensional:
 
 \begin{tcblisting}{}
@@ -968,7 +1264,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \clearpage
-\section[Ti\emph{k}Zlings]{... , the Ti\emph{k}Zling}
+\section[Ti\emph{k}Zling]{... , the Ti\emph{k}Zling}
 
 \emph{The inventor of the word \tikzlings has yet to come up with a name for the Ti\emph{k}Zling}
 
@@ -993,12 +1289,17 @@
 \tikzling[body=blue]
 \end{tcblisting}
 
+to view the \tikzlings from behind
+\begin{tcblisting}{}
+\tikzling[back]
+\end{tcblisting}
+
 and the \lstinline|3D| key, which will make the Ti\emph{k}Zlings 3-dimensional:
 \begin{tcblisting}{}
 \tikzling[3D]
 \end{tcblisting}
 
-If an option of a specific tikzlings is used (for example \lstinline|sleeping| which only the koala can do) this only works if your are lucky and the koala is drawn, in all other cases it will result in an error. 
+If an option of a specific tikzlings is used (for example \lstinline|sleeping| which only the koala can do) this only works if you are lucky and the koala is drawn, in all other cases it will result in an error. 
 
 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.
 
@@ -1035,89 +1336,89 @@
 
 \begin{tcblisting}{}
 \penguin[
-	hat=blue!40!black
+  hat=blue!40!black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \snowman[
-	tophat=black!90!white
+  tophat=black!90!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \mouse[
-	beret=black
+  beret=black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
-\owl[
-	strawhat=gray!30!white,
-	ribbon=black
+\anteater[
+  strawhat=blue,
+  ribbon=black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \coati[
-	harlequin=blue,
-	niuqelrah=red
+  harlequin=blue,
+  niuqelrah=red
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \cat[
-	witch=gray
+  witch=gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \bear[
-	magichat=violet,
-	magicstars=yellow!80!brown
+  magichat=violet,
+  magicstars=yellow!80!brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	crown=yellow!90!orange
+  crown=yellow!90!orange
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \koala[
-	queencrown=yellow
+  queencrown=yellow
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \marmot[
-	kingcrown=gray
+  kingcrown=gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \mouse[
-	santa=red!80!black
+  santa=red!80!black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \bear[
-	chef=gray!20!white
+  chef=gray!20!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \snowman[
-	graduate=black,
-	tassel=red
+  graduate=black,
+  tassel=red
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	alien=green
+  alien=green
 ]
 \end{tcblisting}
 
@@ -1125,30 +1426,30 @@
 
 \begin{tcblisting}{}
 \coati[
-	book={\tiny\TeX},
-	bookcolour=brown
+  book={\tiny\TeX},
+  bookcolour=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \pig[
-	signpost={\TeX},
-	signcolour= brown!50!black,
-	signback=green!40!black
+  signpost={\TeX},
+  signcolour= brown!50!black,
+  signback=green!40!black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \bear[
-	speech={\TeX},
-	bubblecolour=gray!30!white
+  speech={\TeX},
+  bubblecolour=gray!30!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	think={\TeX},
-	bubblecolour=gray!30!white
+  think={\TeX},
+  bubblecolour=gray!30!white
 ]
 \end{tcblisting}
 
@@ -1156,46 +1457,46 @@
 
 \begin{tcblisting}{}
 \koala[
-	pizza
+  pizza
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \mouse[
-	cheese=yellow!30!orange!60!white
+  cheese=yellow!30!orange!60!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \coati[
-	baguette=brown
+  baguette=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \moles[
-	cake=violet
+  cake=violet
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \marmot[
-	icecream=brown!60!gray,
-	flavoura=brown!50!black,
-	flavourb=white!70!brown,
-	flavourc=red!50!white
+  icecream=brown!60!gray,
+  flavoura=brown!50!black,
+  flavourb=white!70!brown,
+  flavourc=red!50!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	milkshake=red!20!white
+  milkshake=red!20!white
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \owl[
-	wine=red!70!black
+  wine=red!70!black
 ]
 \end{tcblisting}
 
@@ -1203,19 +1504,19 @@
 
 \begin{tcblisting}{}
 \coati[
-	cricket=brown
+  cricket=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
-\hippo[
-	hockey=brown
+\bee[
+  hockey=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
-\koala[
-	football=white
+\squirrel[
+  football=white
 ]
 \end{tcblisting}
 
@@ -1223,88 +1524,88 @@
 
 \begin{tcblisting}{}
 \marmot[
-	crystalball=cyan
+  crystalball=cyan
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \bear[
-	magicwand
+  magicwand
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \coati[
-	rollingpin=brown
+  rollingpin=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	lightsaber=green
+  lightsaber=green
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \snowman[
-	torch=gray
+  torch=gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \mouse[
-	basket=brown!70!gray
+  basket=brown!70!gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \sloth[
-	easter=brown!70!gray,
-	egga=blue,
-	eggb=green,
-	eggc=red
+  easter=brown!70!gray,
+  egga=blue,
+  eggb=green,
+  eggc=red
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \koala[
-	crozier=brown
+  crozier=brown
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \snowman[
-	shovel=gray
+  shovel=gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \penguin[
-	pickaxe=gray
+  pickaxe=gray
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \rhino[
-	umbrella=cyan
+  umbrella=cyan
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \marmot[
-	umbrellaclosed=cyan
+  umbrellaclosed=cyan
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \mouse[
-	handbag=red!70!black
+  handbag=red!70!black
 ]
 \end{tcblisting}
 
 \begin{tcblisting}{}
 \bear[
-	cocktail
+  cocktail
 ]
 \end{tcblisting}
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./testing/test.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-addons package (part of the tikzlings collection)
-% A package to draw litlle things with tikz 
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019   
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-addons}
- [2019/04/07 v0.2 Draw additional items for the tikzlings]
+\ProvidesPackage{tikzlings-addons}[2020/04/22 version v0.3 Draw additional items for the tikzlings]
 
 \RequirePackage{tikz}
 \usetikzlibrary{patterns} % for the wizard hat
@@ -85,7 +81,7 @@
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   /thing/.search also={%
     /tikz,/pgf,
-    /bear,/coati,/koala,/marmot,/mouse,/owl,/penguin,/snowman,/mole,/sloth,/pig,/cat,/hippo,/rhino,/panda,
+    /bear,/coati,/koala,/marmot,/mouse,/owl,/penguin,/snowman,/mole,/sloth,/pig,/cat,/hippo,/rhino,/panda,/bee,/anteater,/squirrel,
   },
   %/thing/.unknown/.code=\relax, % bad idea, prevents tikz/pgf keys
   /thing/.cd,
@@ -220,7 +216,7 @@
   wine/.code              = \thing at winetrue
                             \def\thing at wine{#1},  
   wine/.default           = red!70!black,  
-	cocktail/.code          = \thing at cocktailtrue,   
+  cocktail/.code          = \thing at cocktailtrue,   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % Sport
@@ -285,13 +281,13 @@
   umbrella/.code          = \thing at umbrellatrue
                             \def\thing at umbrella{#1},
   umbrella/.default       = cyan,      
-	umbrellaclosed/.code    = \thing at umbrellaclosedtrue
-	                          \def\thing at umbrellaclosed{#1},
-	umbrellaclosed/.default = cyan,    
-	umbrella closed/.forward to = /thing/umbrellaclosed,
-	handbag/.code           = \thing at handbagtrue
+  umbrellaclosed/.code    = \thing at umbrellaclosedtrue
+                            \def\thing at umbrellaclosed{#1},
+  umbrellaclosed/.default = cyan,    
+  umbrella closed/.forward to = /thing/umbrellaclosed,
+  handbag/.code           = \thing at handbagtrue
                             \def\thing at handbag{#1},
-	handbag/.default        = red!70!black,  
+  handbag/.default        = red!70!black,  
 }
 
 \def\thing at draw{%
@@ -303,7 +299,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -316,23 +312,23 @@
 % Hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at hat
   \fill[\thing at hat,rotate around={-15:(-0.3,2.01)}] (-0.3,2.01) rectangle (0.46,2.31);
-  \fill[\thing at hat,rotate around={-15:(0.05,1.92)}] (0.05,1.92) ellipse (0.6 and 0.1); 
-  \fill[\thing at hat,rotate around={-15:(0.14,2.2)}] (0.14,2.2) ellipse (0.37 and 0.08); 
+  \fill[\thing at hat] (0.05,1.92) ellipse[x radius=0.6, y radius=0.1, rotate=-15]; 
+  \fill[\thing at hat] (0.14,2.2) ellipse[x radius=0.37, y radius=0.08, rotate=-15]; 
 \fi
 %
 % Tophat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at tophat
-  \fill[\thing at tophat,rotate around={-15:(0.1,1.94)}] (0.1,1.94) ellipse (0.48 and 0.1);
+  \fill[\thing at tophat] (0.1,1.94) ellipse[x radius=0.48, y radius=0.1, rotate=-15];
   \fill[\thing at tophat,rotate around={-15:(0.15,2.165)}] (-0.17, 1.94) -- (0.46, 1.94) -- (0.52, 2.39) -- (-0.22, 2.39) -- cycle;
-  \fill[\thing at tophat,rotate around={-15:(0.21,2.385)}] (0.21,2.385) ellipse (0.37 and 0.08);  
+  \fill[\thing at tophat] (0.21,2.385) ellipse[x radius=0.37, y radius=0.08, rotate=-15];  
 \fi
 %
 % Beret %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at beret
   \begin{scope}[xshift=-19,yshift=-2,rotate=10]
-  \fill[\thing at beret,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17);
-  \fill[\thing at beret,rotate=-25] (0.13,2.25) ellipse (0.55 and 0.17);
-  \fill[\thing at beret,rotate=-25] (0.13,2.4) circle (0.08);
+  \fill[\thing at beret,rotate=-25] (0.13,2.15) ellipse[x radius=0.5, y radius=0.17];
+  \fill[\thing at beret,rotate=-25] (0.13,2.25) ellipse[x radius=0.55, y radius=0.17];
+  \fill[\thing at beret,rotate=-25] (0.13,2.4) circle[radius=0.08];
   \end{scope}
 \fi
 %
@@ -339,13 +335,13 @@
 % Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at strawhat
   \begin{scope}[xshift=-16,rotate=12,yshift=-1]
-  \fill[\thing at strawhat,rotate=-15] (0.44,2.0) ellipse (0.75 and 0.1);  
+  \fill[\thing at strawhat,rotate=-15] (0.44,2.0) ellipse[x radius=0.75, y radius=0.1];  
   \fill[\thing at strawhat,rotate=-15] (0.1,2.05) rectangle (0.78,2.5);
-  \fill[\thing at strawhat,rotate=-15] (0.44,2.5) ellipse (0.34 and 0.08);  
+  \fill[\thing at strawhat,rotate=-15] (0.44,2.5) ellipse[x radius=0.34, y radius=0.08];  
   \fill[\thing at strawhat,rotate=-15] (-0.3,2.02) -- (1.18,2.02) -- (0.78,2.2) -- (0.1,2.2) -- cycle;
-  \fill[\thing at ribbon,rotate=-15] (0.44,2.2) ellipse (0.34 and 0.08);   
+  \fill[\thing at ribbon,rotate=-15] (0.44,2.2) ellipse[x radius=0.34, y radius=0.08];   
   \fill[\thing at ribbon,rotate=-15] (0.1,2.2) rectangle (0.78,2.3);
-  \fill[\thing at strawhat,rotate=-15] (0.44,2.3) ellipse (0.34 and 0.08);  
+  \fill[\thing at strawhat,rotate=-15] (0.44,2.3) ellipse[x radius=0.34, y radius=0.08];  
   \end{scope}
 \fi
 %
@@ -357,8 +353,8 @@
   \fill[\thing at harlequin] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle;
   \fill[\thing at niuqelrah] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle;
   \end{pgfinterruptboundingbox}
-  \fill[\thing at harlequin] (1.7,2.07) circle (0.1);
-  \fill[\thing at niuqelrah] (0.3,2.23) circle (0.1);
+  \fill[\thing at harlequin] (1.7,2.07) circle[radius=0.1];
+  \fill[\thing at niuqelrah] (0.3,2.23) circle[radius=0.1];
   \end{scope}
 \fi
 %
@@ -365,7 +361,7 @@
 % witch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at witch
   \begin{scope}[xshift=-26] 
-  \fill[\thing at witch,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17);  
+  \fill[\thing at witch,rotate=-15] (0.44,2.13) ellipse[x radius=0.75, y radius=0.17];  
   \fill[\thing at witch,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2);
   \end{scope}
 \fi
@@ -453,7 +449,7 @@
     (1.456,1.759) .. controls (1.534,1.637) and (1.480,1.545) .. 
     (1.400,1.566) .. controls (1.265,1.714) and (0.577,2.267) .. 
     (0.44,1.733) -- cycle;
-  \fill[white!80!brown] (1.6,1.0) circle (0.17);
+  \fill[white!80!brown] (1.6,1.0) circle[radius=0.17];
   \end{scope}
 \fi
 %
@@ -460,12 +456,12 @@
 % Chef hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at chef
   \begin{scope}[xshift=-26]
-  \fill[\thing at chef,rotate=-15] (0.44,2.1) ellipse (0.37 and 0.08);  
+  \fill[\thing at chef,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.08];  
   \fill[\thing at chef,rotate=-15] (0.07,2.1) rectangle (0.81,2.55);
-  \fill[\thing at chef] (1.01,2.47) circle (0.17);
-  \fill[\thing at chef] (1.24,2.35) circle (0.15);
-  \fill[\thing at chef] (0.77,2.40) circle (0.12);
-  \fill[\thing at chef] (1.39,2.20) circle (0.12);
+  \fill[\thing at chef] (1.01,2.47) circle[radius=0.17];
+  \fill[\thing at chef] (1.24,2.35) circle[radius=0.15];
+  \fill[\thing at chef] (0.77,2.40) circle[radius=0.12];
+  \fill[\thing at chef] (1.39,2.20) circle[radius=0.12];
   \end{scope}
 \fi
 %
@@ -472,11 +468,11 @@
 % graduate hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at graduate
   \begin{scope}[xshift=-26]
-  \fill[\thing at graduate,rotate=-15] (0.44,2.1) ellipse (0.37 and 0.1);  
+  \fill[\thing at graduate,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.1];  
   \fill[\thing at graduate,rotate=-15] (0.07,2.1) rectangle (0.81,2.3);
   \fill[\thing at graduate] (0.3,2.25) -- (1.05,2.35) -- (1.7,1.95) -- (0.92,1.85) -- cycle;
   \fill[\thing at tassel,rounded corners=\scalingfactor*1] (1.12,1.89) -- (1.01,2.1) -- (1.09,2.11) -- (1.2,1.9) -- (1.2,1.3) -- (1.12,1.3) -- cycle;
-  \fill[\thing at tassel] (1.16,1.3) ellipse (0.06 and 0.12);
+  \fill[\thing at tassel] (1.16,1.3) ellipse[x radius=0.06, y radius=0.12];
   \end{scope}
 \fi
 %
@@ -484,8 +480,8 @@
 \ifthing at alien
   \fill[\thing at alien,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3);
   \fill[\thing at alien,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3);
-  \fill[\thing at alien] (-0.22,2.30) circle (0.07);
-  \fill[\thing at alien] (0.22,2.30) circle (0.07);
+  \fill[\thing at alien] (-0.22,2.30) circle[radius=0.07];
+  \fill[\thing at alien] (0.22,2.30) circle[radius=0.07];
 \fi
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -516,7 +512,7 @@
 % speech bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at speech
   \begin{scope}[xshift=-26]
-  \fill[\thing at bubblecolour] (-0.5,1.8) ellipse (0.7 and 0.3);
+  \fill[\thing at bubblecolour] (-0.5,1.8) ellipse[x radius=0.7, y radius=0.3];
   \fill[\thing at bubblecolour] (-0.2,1.54) -- (0.2,1.35) -- (0.0,1.6) -- cycle;
   \node at (-0.5,1.8) {\thing at speech};
   \end{scope}
@@ -525,8 +521,8 @@
 % think bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at think
   \begin{scope}[xshift=-26]
-  \fill[\thing at bubblecolour] (2,2.4) ellipse (0.7 and 0.35); 
-  \fill[\thing at bubblecolour] (1.55,2.35) circle (0.25) (2.0,2.15) circle (0.25) (2.4,2.25) circle (0.25) (1.6,2.55) circle (0.25) (2.0,2.6) circle (0.25) (2.35,2.5) circle (0.25) (1.65,1.95) circle (0.1) (1.55,1.80) circle (0.06) (1.47,1.70) circle (0.03);
+  \fill[\thing at bubblecolour] (2,2.4) ellipse[x radius=0.7, y radius=0.35]; 
+  \fill[\thing at bubblecolour] (1.55,2.35) circle[radius=0.25] (2.0,2.15) circle[radius=0.25] (2.4,2.25) circle[radius=0.25] (1.6,2.55) circle[radius=0.25] (2.0,2.6) circle[radius=0.25] (2.35,2.5) circle[radius=0.25] (1.65,1.95) circle[radius=0.1] (1.55,1.80) circle[radius=0.06] (1.47,1.70) circle[radius=0.03];
   \node at (2,2.4) {\thing at think};
   \end{scope}
 \fi
@@ -540,35 +536,35 @@
 % pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at pizza
   \begin{scope}[xshift=-28,yshift=2]
-  \fill[brown] (1.00,0.60) ellipse (0.4 and 0.2);
-  \fill[red!70!black] (1.00,0.60) ellipse (0.34 and 0.16);
-  \fill[white!85!yellow] (1.15,0.65) ellipse (0.065 and 0.04);  
-  \fill[white!85!yellow] (0.81,0.57) ellipse (0.065 and 0.04);  
-  \fill[white!85!yellow] (0.95,0.68) ellipse (0.065 and 0.04);  
-  \fill[white!85!yellow] (1.02,0.54) ellipse (0.065 and 0.04);
-  \fill[green!40!brown] (1.09,0.54) ellipse (0.07 and 0.02);
-  \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse (0.07 and 0.02);
-  \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse (0.07 and 0.02);
-  \fill[green!40!brown] (1.00,0.60) ellipse (0.03 and 0.06);
+  \fill[brown] (1.00,0.60) ellipse[x radius=0.4, y radius=0.2];
+  \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16];
+  \fill[white!85!yellow] (1.15,0.65) ellipse[x radius=0.065, y radius=0.04];  
+  \fill[white!85!yellow] (0.81,0.57) ellipse[x radius=0.065, y radius=0.04];  
+  \fill[white!85!yellow] (0.95,0.68) ellipse[x radius=0.065, y radius=0.04];  
+  \fill[white!85!yellow] (1.02,0.54) ellipse[x radius=0.065, y radius=0.04];
+  \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06];
   \end{scope}
 \fi
 % no pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at davidlikespineapplepizza
   \begin{scope}[xshift=-28,yshift=2]
-  \fill[brown] (1.00,0.60) ellipse (0.4 and 0.2);
-  \fill[red!70!black] (1.00,0.60) ellipse (0.34 and 0.16);
-  \fill[yellow!70!brown] (1.15,0.65) ellipse (0.08 and 0.06);  
-  \fill[red!70!black] (1.15,0.65) ellipse (0.04 and 0.03); 
-  \fill[yellow!70!brown] (0.81,0.57) ellipse (0.08 and 0.06);  
-  \fill[red!70!black] (0.81,0.57) ellipse (0.04 and 0.03); 
-  \fill[yellow!70!brown] (0.95,0.68) ellipse (0.08 and 0.06);  
-  \fill[red!70!black] (0.95,0.68) ellipse (0.04 and 0.03); 
-  \fill[yellow!70!brown] (1.02,0.54) ellipse (0.08 and 0.06);
-  \fill[red!70!black] (1.02,0.54) ellipse (0.04 and 0.03); 
-  \fill[green!40!brown] (1.09,0.54) ellipse (0.07 and 0.02);
-  \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse (0.07 and 0.02);
-  \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse (0.07 and 0.02);
-  \fill[green!40!brown] (1.00,0.60) ellipse (0.03 and 0.06);  
+  \fill[brown] (1.00,0.60) ellipse[x radius=0.4, y radius=0.2];
+  \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16];
+  \fill[yellow!70!brown] (1.15,0.65) ellipse[x radius=0.08, y radius=0.06];  
+  \fill[red!70!black] (1.15,0.65) ellipse[x radius=0.04, y radius=0.03]; 
+  \fill[yellow!70!brown] (0.81,0.57) ellipse[x radius=0.08, y radius=0.06];  
+  \fill[red!70!black] (0.81,0.57) ellipse[x radius=0.04, y radius=0.03]; 
+  \fill[yellow!70!brown] (0.95,0.68) ellipse[x radius=0.08, y radius=0.06];  
+  \fill[red!70!black] (0.95,0.68) ellipse[x radius=0.04, y radius=0.03]; 
+  \fill[yellow!70!brown] (1.02,0.54) ellipse[x radius=0.08, y radius=0.06];
+  \fill[red!70!black] (1.02,0.54) ellipse[x radius=0.04, y radius=0.03]; 
+  \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02];
+  \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06];  
   \end{scope}
 \fi
 %
@@ -576,7 +572,7 @@
 \ifthing at cheese
   \fill[\thing at cheese] (-0.3200,0.8058) -- (0.0608,0.7220) -- (0.0608,0.6366) -- (-0.3200,0.5410) -- (0.2143,0.4236) .. controls (0.3395,0.4810) and (0.4241,0.5627) .. (0.4117,0.6253) -- (0.4117,0.7634) .. controls (0.4261,0.8618) and (0.2607,0.8954) .. (0.1907,0.8962) -- cycle;
   \fill[\thing at cheese!35!white] (-0.3200,0.8057) -- (-0.3200,0.5410) -- (0.2143,0.4236) -- (0.2143,0.7381) -- cycle;
-  \fill[\thing at cheese] (-0.23,0.71) circle (0.04) (0.0,0.55) circle (0.04) (-0.23,0.58) circle (0.02) (-0.15,0.6) circle (0.02) (-0.1,0.7) circle (0.02) (0.1,0.65) circle (0.02) (0,0.65) circle (0.02) (0.1,0.5) circle (0.02) (0.07,0.55) circle (0.01) (0.12,0.6) circle (0.01) (-0.08,0.54) circle (0.01);
+  \fill[\thing at cheese] (-0.23,0.71) circle[radius=0.04] (0.0,0.55) circle[radius=0.04] (-0.23,0.58) circle[radius=0.02] (-0.15,0.6) circle[radius=0.02] (-0.1,0.7) circle[radius=0.02] (0.1,0.65) circle[radius=0.02] (0,0.65) circle[radius=0.02] (0.1,0.5) circle[radius=0.02] (0.07,0.55) circle[radius=0.01] (0.12,0.6) circle[radius=0.01] (-0.08,0.54) circle[radius=0.01];
 \fi
 %
 % baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -583,7 +579,7 @@
 \ifthing at baguette
   \begin{scope}[xshift=-38,yshift=7,rotate=-20]
   \fill[\thing at baguette!70!white, rounded corners=\scalingfactor*4, rotate=-30] (0.4,0.72) rectangle (0.7,2.0);
-  \fill[\thing at baguette!80!black, rotate=5] (1.44,1.1) ellipse (0.1 and 0.03) (1.30,0.9) ellipse (0.1 and 0.03) (1.16,0.7) ellipse (0.1 and 0.03) (1.02,0.5) ellipse (0.1 and 0.03);
+  \fill[\thing at baguette!80!black, rotate=5] (1.44,1.1) ellipse[x radius=0.1, y radius=0.03] (1.30,0.9) ellipse[x radius=0.1, y radius=0.03] (1.16,0.7) ellipse[x radius=0.1, y radius=0.03] (1.02,0.5) ellipse[x radius=0.1, y radius=0.03];
   \end{scope}
 \fi
 %
@@ -590,15 +586,15 @@
 % cake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at cake
   \begin{scope}[xshift=-28]
-  \fill[\thing at cake] (1.00,0.50) ellipse (0.4 and 0.2);
+  \fill[\thing at cake] (1.00,0.50) ellipse[x radius=0.4, y radius=0.2];
   \fill[\thing at cake] (0.6,0.5) rectangle (1.4,0.7);
-  \fill[\thing at cake] (1.00,0.70) ellipse (0.4 and 0.2);
+  \fill[\thing at cake] (1.00,0.70) ellipse[x radius=0.4, y radius=0.2];
   \fill[\thing at cake!50!white] (0.75,0.75) rectangle (0.8,0.95);
   \fill[\thing at cake!50!white] (1.2,0.75) rectangle (1.25,0.95);
   \fill[\thing at cake!50!white] (0.975,0.65) rectangle (1.025,0.85);
-  \fill[white!85!yellow] (1.0,0.93) ellipse (0.03 and 0.06);
-  \fill[white!85!yellow] (1.225,1.03) ellipse (0.03 and 0.06);
-  \fill[white!85!yellow] (0.775,1.03) ellipse (0.03 and 0.06);
+  \fill[white!85!yellow] (1.0,0.93) ellipse[x radius=0.03, y radius=0.06];
+  \fill[white!85!yellow] (1.225,1.03) ellipse[x radius=0.03, y radius=0.06];
+  \fill[white!85!yellow] (0.775,1.03) ellipse[x radius=0.03, y radius=0.06];
   \end{scope}
 \fi
 %
@@ -606,9 +602,9 @@
 \ifthing at icecream
   \begin{scope}[xshift=-26]
   \fill[\thing at cone,rotate=-20] (0.35,1.20)--(0.50,0.60)--(0.75,1.20);
-  \fill[\thing at flavoura] (0.85,1.03) circle (0.12);
-  \fill[\thing at flavourb] (1.05,0.95) circle (0.12);
-  \fill[\thing at flavourc] (0.95,1.1) circle (0.12);    
+  \fill[\thing at flavoura] (0.85,1.03) circle[radius=0.12];
+  \fill[\thing at flavourb] (1.05,0.95) circle[radius=0.12];
+  \fill[\thing at flavourc] (0.95,1.1) circle[radius=0.12];    
   \end{scope}
 \fi
 %
@@ -615,17 +611,17 @@
 % milkshake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at milkshake
   \begin{scope}[xshift=-26]
-  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03);
+  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03];
   \begin{scope}
     \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); 
-    \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse (0.18 and 0.4);
-    \fill[\thing at milkshake, rotate=-10] (0.8,0.94) ellipse (0.15 and 0.36);
+    \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse[x radius=0.18, y radius=0.4];
+    \fill[\thing at milkshake, rotate=-10] (0.8,0.94) ellipse[x radius=0.15, y radius=0.36];
   \end{scope}
-  \fill[white!85!yellow] (0.83,0.92) circle (0.05) (0.88,0.9) circle (0.05) (0.93,0.92) circle (0.05) (0.99,0.91) circle (0.05) (1.06,0.86) circle (0.05) (1.13,0.87) circle (0.05) (0.85,0.99) circle (0.05) (0.9,0.98) circle (0.07) (1.0,0.98) circle (0.07) (1.1,0.95) circle (0.07);
-  \fill[red!90!black] (1.0,1.1) circle (0.05);
-  \fill[white!85!yellow] (0.94,1.05) circle (0.05) (1.03,1.03) circle (0.05);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05);
+  \fill[white!85!yellow] (0.83,0.92) circle[radius=0.05] (0.88,0.9) circle[radius=0.05] (0.93,0.92) circle[radius=0.05] (0.99,0.91) circle[radius=0.05] (1.06,0.86) circle[radius=0.05] (1.13,0.87) circle[radius=0.05] (0.85,0.99) circle[radius=0.05] (0.9,0.98) circle[radius=0.07] (1.0,0.98) circle[radius=0.07] (1.1,0.95) circle[radius=0.07];
+  \fill[red!90!black] (1.0,1.1) circle[radius=0.05];
+  \fill[white!85!yellow] (0.94,1.05) circle[radius=0.05] (1.03,1.03) circle[radius=0.05];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
   \fill[red!90!black,rotate=20] (1.2,0.58) rectangle (1.22,0.85); 
   \end{scope}
 \fi
@@ -633,16 +629,16 @@
 % wine %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at wine
   \begin{scope}[xshift=-26,yshift=2]
-  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse (0.03 and 0.2);
+  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2];
   \begin{scope}
     \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); 
-    \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse (0.18 and 0.4);
+    \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse[x radius=0.18, y radius=0.4];
   \end{scope}
   \begin{scope}
     \clip[rotate=-10] (0.58,0.5) rectangle (1.02,0.87); 
-    \fill[\thing at wine, rotate=-10] (0.8,1.1) ellipse (0.15 and 0.36);
+    \fill[\thing at wine, rotate=-10] (0.8,1.1) ellipse[x radius=0.15, y radius=0.36];
   \end{scope}
   \end{scope}
 \fi
@@ -650,13 +646,13 @@
 % cocktail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at cocktail
 \begin{scope}[xshift=-26,yshift=3]
-  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03);
-  \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse (0.03 and 0.2);
+  \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03];
+  \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2];
   \fill[cyan!10!white] (0.92,0.6) -- (0.75,0.9) -- (1.18,0.83) -- cycle;
   \fill[gray!60!white] (0.928,0.64) -- (0.85,0.77) -- (1.08,0.77) -- cycle;
-  \fill[green!40!brown!60!white] (0.94,0.71) circle (0.04);
-  \fill[red!80!black] (0.94,0.72) circle (0.01);
+  \fill[green!40!brown!60!white] (0.94,0.71) circle[radius=0.04];
+  \fill[red!80!black] (0.94,0.72) circle[radius=0.01];
   \end{scope}
 \fi
 %
@@ -685,9 +681,9 @@
 % football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at football
   \begin{scope}[xshift=-26]
-  \fill[\thing at football] (1.2,0.33) circle (0.32);
+  \fill[\thing at football] (1.2,0.33) circle[radius=0.32];
   \begin{scope}
-    \clip (1.2,0.33) circle (0.32);
+    \clip (1.2,0.33) circle[radius=0.32];
     \fill[black] (1.06,0.30) -- (1.01,0.17) -- (1.14,0.08) -- (1.26,0.14) -- (1.20,0.28) -- cycle (1.37,0.14) -- (1.46,0.27) -- (1.59,0.27) -- (1.41,0.04) -- cycle (1.28,0.38) -- (1.22,0.52) -- (1.33,0.61) -- (1.45,0.51) -- (1.43,0.37) -- cycle (0.87,0.44) -- (1.02,0.40) -- (1.10,0.53) -- (1.07,0.62) -- (0.94,0.57) -- cycle;
   \end{scope}
   \end{scope}
@@ -701,7 +697,7 @@
 %
 % crystal ball %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at crystalball
-  \shade[ball color=\thing at crystalball,opacity=0.7] (0,0.8) circle (0.33);
+  \shade[ball color=\thing at crystalball,opacity=0.7] (0,0.8) circle[radius=0.33];
 \fi
 % 
 % magic wand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -751,7 +747,7 @@
     (1.4338,1.025) -- cycle;
   \fill[\thing at torch,rounded corners=\scalingfactor*1]
     (1.1,0.96) -- (0.77,0.25) -- (0.83,0.25) -- (1.3,0.86) -- cycle;
-  \fill[\thing at torch,rotate=-28] (0.62,1.32) ellipse (0.2 and 0.08);
+  \fill[\thing at torch,rotate=-28] (0.62,1.32) ellipse[x radius=0.2, y radius=0.08];
   \end{scope}
 \fi%
 % 
@@ -760,8 +756,8 @@
   \begin{scope}[xshift=-28.5]
   \fill[\thing at basket, start angle=180, end angle=360, x radius=0.35, y radius=0.35] (0.65,0.61) arc  -- cycle;
   \fill[\thing at basket, start angle=180, end angle=0, even odd rule] [x radius=0.35, y radius=0.5] (0.65,0.6) arc  -- cycle [x radius=0.3, y radius=0.45] (0.7,0.6) arc  -- cycle;
-  \fill[\thing at basket, even odd rule] (1,0.6) ellipse (0.35 and 0.1) (1,0.6) ellipse (0.3 and 0.07);  
-  \fill[\thing at basket!75!black] (1,0.6) ellipse (0.3 and 0.07);
+  \fill[\thing at basket, even odd rule] (1,0.6) ellipse[x radius=0.35, y radius=0.1] (1,0.6) ellipse[x radius=0.3, y radius=0.07];  
+  \fill[\thing at basket!75!black] (1,0.6) ellipse[x radius=0.3, y radius=0.07];
   \end{scope}  
 \fi%  
 %
@@ -770,9 +766,9 @@
   \begin{scope}[xshift=-28.5]
   \begin{scope}
     \clip [start angle=180, end angle=0, x radius=0.3, y radius=0.45] (0.7,0.6) arc  -- cycle [start angle=180, end angle=360, x radius=0.3, y radius=0.07] (0.7,0.6) arc  -- cycle;  
-    \fill[\thing at eggb, rotate=-5]  (0.95,0.72) ellipse (0.09 and 0.13);
-    \fill[\thing at egga, rotate=10]  (0.94,0.42) ellipse (0.09 and 0.13);
-    \fill[\thing at eggc, rotate=-30] (0.7,1.08) ellipse (0.09 and 0.13);
+    \fill[\thing at eggb, rotate=-5]  (0.95,0.72) ellipse[x radius=0.09, y radius=0.13];
+    \fill[\thing at egga, rotate=10]  (0.94,0.42) ellipse[x radius=0.09, y radius=0.13];
+    \fill[\thing at eggc, rotate=-30] (0.7,1.08) ellipse[x radius=0.09, y radius=0.13];
   \end{scope}
   \end{scope}  
 \fi% 
@@ -782,7 +778,7 @@
   \begin{scope}[xshift=-20]
   \begin{scope}
     \clip [rotate=-20] (0.6,2.3) rectangle (1.1,1.999);
-    \fill[even odd rule,\thing at crozier] (1.5,1.6) circle (0.2) (1.5,1.6) circle (0.1);
+    \fill[even odd rule,\thing at crozier] (1.5,1.6) circle[radius=0.2] (1.5,1.6) circle[radius=0.1];
   \end{scope}
   \fill[\thing at crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);  
   \end{scope}
@@ -790,35 +786,35 @@
 %
 % shovel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at shovel
-	\fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4);
-	\fill[\thing at shovel] (-0.21, 0.86) .. controls (0.02, 0.72) and (0.11, 0.66) .. (0.38, 0.58) -- (0.01, 0.04) .. controls (-0.17, 0.02) and (-0.28, 0.07) .. (-0.37, 0.21) -- cycle;
+  \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4);
+  \fill[\thing at shovel] (-0.21, 0.86) .. controls (0.02, 0.72) and (0.11, 0.66) .. (0.38, 0.58) -- (0.01, 0.04) .. controls (-0.17, 0.02) and (-0.28, 0.07) .. (-0.37, 0.21) -- cycle;
 \fi
 %
 % pickaxe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at pickaxe
-	\fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4);
-	\fill[\thing at pickaxe] (-0.77, 0.57) .. controls (-0.14, 0.25) and (-0.02, 0.21) .. (0.60, 0.02) .. controls (-0.12, 0.03) and (-0.22, 0.10) .. (-0.77, 0.57) -- cycle;
+  \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4);
+  \fill[\thing at pickaxe] (-0.77, 0.57) .. controls (-0.14, 0.25) and (-0.02, 0.21) .. (0.60, 0.02) .. controls (-0.12, 0.03) and (-0.22, 0.10) .. (-0.77, 0.57) -- cycle;
 \fi
 %
 % umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at umbrella
-	\path (-0.8, 0.4) rectangle (1.2200000000000002, 2.7);
-	\begin{pgfinterruptboundingbox}
-		\fill[gray] (-0.3078, 0.5942) -- (-0.2574, 0.6103) .. controls (-0.1724, 0.3884) and (-0.1145, 0.4523) .. (-0.0667, 0.6543) -- (-0.0666, 0.6545) -- (-0.0665, 0.6547) .. controls (0.0347, 1.0671) and (0.2906, 1.9565) .. (0.2906, 1.9565) -- (0.3415, 1.9419) .. controls (0.3415, 1.9419) and (0.0855, 1.0519) .. (-0.0151, 0.6423) -- (-0.0152, 0.642) .. controls (-0.076, 0.3633) and (-0.2126, 0.3312) .. (-0.3078, 0.5942) -- cycle;
-		\fill[\thing at umbrella] (-0.7815, 1.9927) .. controls (-0.6441, 2.1962) and (-0.3163, 2.072) .. (-0.3239, 1.824) .. controls (-0.1602, 2.0111) and (0.1891, 1.9216) .. (0.1685, 1.6915) .. controls (0.3000, 1.8765) and (0.6639, 1.7626) .. (0.6607, 1.5356) .. controls (0.7865, 1.7271) and (1.135, 1.695) .. (1.1626, 1.4589) .. controls (1.4996, 2.5771) and (-0.4356, 3.2631) .. (-0.7815, 1.9927) -- cycle;
-	\end{pgfinterruptboundingbox}
+  \path (-0.8, 0.4) rectangle (1.2200000000000002, 2.7);
+  \begin{pgfinterruptboundingbox}
+    \fill[gray] (-0.3078, 0.5942) -- (-0.2574, 0.6103) .. controls (-0.1724, 0.3884) and (-0.1145, 0.4523) .. (-0.0667, 0.6543) -- (-0.0666, 0.6545) -- (-0.0665, 0.6547) .. controls (0.0347, 1.0671) and (0.2906, 1.9565) .. (0.2906, 1.9565) -- (0.3415, 1.9419) .. controls (0.3415, 1.9419) and (0.0855, 1.0519) .. (-0.0151, 0.6423) -- (-0.0152, 0.642) .. controls (-0.076, 0.3633) and (-0.2126, 0.3312) .. (-0.3078, 0.5942) -- cycle;
+    \fill[\thing at umbrella] (-0.7815, 1.9927) .. controls (-0.6441, 2.1962) and (-0.3163, 2.072) .. (-0.3239, 1.824) .. controls (-0.1602, 2.0111) and (0.1891, 1.9216) .. (0.1685, 1.6915) .. controls (0.3000, 1.8765) and (0.6639, 1.7626) .. (0.6607, 1.5356) .. controls (0.7865, 1.7271) and (1.135, 1.695) .. (1.1626, 1.4589) .. controls (1.4996, 2.5771) and (-0.4356, 3.2631) .. (-0.7815, 1.9927) -- cycle;
+  \end{pgfinterruptboundingbox}
 \fi
 %
 % closed umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at umbrellaclosed
   \fill[gray] (0.5401, 0.7996) -- (0.4872, 0.8019) .. controls (0.484, 1.0395) and (0.4076, 0.9995) .. (0.293, 0.8264) -- (0.2929, 0.8262) -- (0.2928, 0.8261) .. controls (0.0555, 0.4739) and (0.1223, 0.5608) .. (0.1223, 0.5608) -- (0.0795, 0.592) .. controls (0.0795, 0.592) and (0.0131, 0.5057) .. (0.2488, 0.8554) -- (0.2489, 0.8556) .. controls (0.4022, 1.0963) and (0.5414, 1.0793) .. (0.5401, 0.7996) -- cycle;
- 	\fill[\thing at umbrellaclosed] (-0.1173, 0.2263) -- (0.0038, 0.7188) -- (0.1548, 0.7494) -- (0.152, 0.9231) -- (0.3945, 0.7529) -- (0.2218, 0.6885) -- (0.2465, 0.5566) -- cycle;
+   \fill[\thing at umbrellaclosed] (-0.1173, 0.2263) -- (0.0038, 0.7188) -- (0.1548, 0.7494) -- (0.152, 0.9231) -- (0.3945, 0.7529) -- (0.2218, 0.6885) -- (0.2465, 0.5566) -- cycle;
 \fi
 %
 % handbag %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifthing at handbag
-	\fill[\thing at handbag] (0.5189, 0.1751) -- (-0.1913, 0.3097) -- (-0.0315, 0.7086) -- (0.5168, 0.6152) -- cycle;
-	\fill[\thing at handbag!70!black] (0.4143, 0.4354) .. controls (0.5139, 0.9811) and (0.1204, 1.0719) .. (0.0134, 0.5155) -- (0.0957, 0.4996) .. controls (0.1753, 0.8952) and (0.3949, 0.8883) .. (0.3324, 0.4536) -- cycle;
+  \fill[\thing at handbag] (0.5189, 0.1751) -- (-0.1913, 0.3097) -- (-0.0315, 0.7086) -- (0.5168, 0.6152) -- cycle;
+  \fill[\thing at handbag!70!black] (0.4143, 0.4354) .. controls (0.5139, 0.9811) and (0.1204, 1.0719) .. (0.0134, 0.5155) -- (0.0957, 0.4996) .. controls (0.1753, 0.8952) and (0.3949, 0.8883) .. (0.3324, 0.4536) -- cycle;
 \fi
 %
-}
\ No newline at end of file
+}

Added: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -0,0 +1,168 @@
+% !TeX root = ./examples/anteater.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This package is part of 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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-anteaters}[2020/04/22 version v0.3 Drawing anteaters in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\anteater}[1][]{%
+  \begin{scope}%
+    \tikzset{/anteater/.cd,#1}%
+    \anteater at draw%
+  \end{scope}%
+  \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname anteaterhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+}
+
+\newif\ifanteater at threeD
+\newif\ifanteater at back
+
+\tikzset{
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % Pass unknown keys on to tikz
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  /anteater/.search also={/tikz,/pgf,/thing},
+  /anteater/.cd,
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % body
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  body/.code         = \def\anteater at body{#1},
+  body               = red!55!green!75!blue!66!white,
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % options
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  3D/.code           = \anteater at threeDtrue,  
+  back/.code         = \anteater at backtrue,  
+}
+
+\def\anteater at draw{%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% minimal bounding box size 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\path (-0.75,0.1) rectangle (1.12,2.26);
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% store the current scale factor
+% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
+\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
+\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 
+% switch between 2D and 3D, from
+% https://chat.stackexchange.com/transcript/message/45991801#45991801
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifanteater at threeD
+  \def\anteater at part@draw[##1]{\shade[ball color=##1]}
+\else
+  \def\anteater at part@draw[##1]{\fill[##1]}
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Body parts (center: x=0)
+% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname anteaterhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%  
+% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
+\anteater at part@draw[\anteater at body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+%
+% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifanteater at back\else
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle;
+\fi
+%
+% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\anteater at part@draw[\anteater at body!45!white!95!orange] (-0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=70] (0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70];
+%
+% 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;
+%
+% 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];  
+  \anteater at part@draw[\anteater at body]  (-0,1.73) ellipse [x radius=0.36, y radius=0.33];    
+  % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.5551, 2.2281) .. controls (0.4961, 2.2273) and (0.4390, 2.2093) .. (0.3831, 2.1919) .. controls (0.3282, 2.173) and (0.2725, 2.1539) .. (0.2231, 2.1228) .. controls (0.1875, 2.0984) and (0.1524, 2.0637) .. (0.1470, 2.0187) .. controls (0.1446, 2.0028) and (0.1518, 1.9881) .. (0.1584, 1.9744) .. controls (0.1706, 1.9343) and (0.2090, 1.9063) .. (0.25, 1.9017) .. controls (0.3079, 1.8943) and (0.3684, 1.9134) .. (0.4132, 1.9504) .. controls (0.4657, 1.9988) and (0.5111, 2.0545) .. (0.5513, 2.1133) .. controls (0.5692, 2.1404) and (0.5854, 2.1692) .. (0.5945, 2.2004) .. controls (0.5989, 2.2232) and (0.5717, 2.2282) .. (0.5551, 2.2281) -- cycle; 
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (-0.5551, 2.2281) .. controls (-0.4961, 2.2273) and (-0.4390, 2.2093) .. (-0.3831, 2.1919) .. controls (-0.3282, 2.173) and (-0.2725, 2.1539) .. (-0.2231, 2.1228) .. controls (-0.1875, 2.0984) and (-0.1524, 2.0637) .. (-0.1470, 2.0187) .. controls (-0.1446, 2.0028) and (-0.1518, 1.9881) .. (-0.1584, 1.9744) .. controls (-0.1706, 1.9343) and (-0.2090, 1.9063) .. (-0.25, 1.9017) .. controls (-0.3079, 1.8943) and (-0.3684, 1.9134) .. (-0.4132, 1.9504) .. controls (-0.4657, 1.9988) and (-0.5111, 2.0545) .. (-0.5513, 2.1133) .. controls (-0.5692, 2.1404) and (-0.5854, 2.1692) .. (-0.5945, 2.2004) .. controls (-0.5989, 2.2232) and (-0.5717, 2.2282) .. (-0.5551, 2.2281) -- cycle; 
+%  
+\else
+  % 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;
+  \anteater at part@draw[\anteater at body!45!white!95!orange] (0.4086, 1.9465) .. controls (0.4679, 1.9952) and (0.6205, 2.1813) .. (0.5862, 2.2146) .. controls (0.5517, 2.2477) and (0.3434, 2.1152) .. (0.2841, 2.0665) .. controls (0.2249, 2.0177) and (0.2048, 1.9515) .. (0.2391, 1.9184) .. controls (0.2736, 1.8853) and (0.3494, 1.8979) .. (0.40861, 1.9465) -- cycle
+  (-0.4086, 1.9465) .. controls (-0.4679, 1.9952) and (-0.6205, 2.1813) .. (-0.5862, 2.2146) .. controls (-0.5517, 2.2477) and (-0.3434, 2.1152) .. (-0.2841, 2.0665) .. controls (-0.2249, 2.0177) and (-0.2048, 1.9515) .. (-0.2391, 1.9184) .. controls (-0.2736, 1.8853) and (-0.3494, 1.8979) .. (-0.40861, 1.9465) -- cycle;
+  %
+  % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \anteater at part@draw[\anteater at body] 
+  (0.33, 1.71) .. controls (0.16, 1.52) and (0.1, 1.5) .. (0.08, 1.05) .. controls (0.07, 1) and (-0.07, 1) .. (-0.08, 1.05) .. controls (-0.1, 1.5) and (-0.16, 1.52) .. (-0.33, 1.7) .. controls (-0.45, 1.85) and (-0.22, 2.05) .. (0, 2.05) .. controls (0.22, 2.05) and (0.45, 1.85) .. (0.33, 1.7) -- cycle;
+  %
+  % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \anteater at part@draw[\anteater at body!45!white!95!orange] (0.3508, 1.739) .. controls (0.3508, 1.739) and (0.2861, 1.8489) .. (0.1571, 1.7664) .. controls (0.0279, 1.684) and (0.0627, 1.0524) .. (0.0627, 1.0524) .. controls (0.0627, 1.0524) and (0.131, 1.3772) .. (0.2314, 1.44) .. controls (0.3599, 1.5206) and (0.3508, 1.739) .. (0.3508, 1.739) -- cycle
+  (-0.3508, 1.739) .. controls (-0.3508, 1.739) and (-0.2861, 1.8489) .. (-0.1571, 1.7664) .. controls (-0.0279, 1.684) and (-0.0627, 1.0524) .. (-0.0627, 1.0524) .. controls (-0.0627, 1.0524) and (-0.131, 1.3772) .. (-0.2314, 1.44) .. controls (-0.3599, 1.5206) and (-0.3508, 1.739) .. (-0.3508, 1.739) -- cycle;
+  %  
+  % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0, 1.08) ellipse[x radius=0.08, y radius=0.05];
+  %
+  % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (0.23, 1.7) circle[radius=0.05];
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (-0.23, 1.7) circle[radius=0.05];  
+\fi
+%
+% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifanteater at back
+  \anteater at part@draw[\anteater at body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle;
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname anteaterhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%  
+}
+


Property changes on: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/bear.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-bears package (part of the tikzlings collection)
-% A package to bring little teddy bears into tikz 
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019  
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bears}
- [2019/04/07 v0.2 Draw teddy bears in TikZ]
+\ProvidesPackage{tikzlings-bears}[2020/04/22 version v0.3 Draw teddy bears in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,13 @@
     \bear at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname bearhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
 }
 
 \newif\ifbear at threeD
+\newif\ifbear at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -52,6 +52,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \bear at threeDtrue, 
+  back/.code         = \bear at backtrue,  
 }
 
 \def\bear at draw{%
@@ -69,7 +70,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -91,38 +92,67 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!70!black,rotate around={-50:(0.525,0.9)}] (0.525,0.9) ellipse (0.35 and 0.15);
-\bear at part@draw[\bear at body!70!black,rotate around={50:(-0.525,0.9)}] (-0.525,0.9) ellipse (0.35 and 0.15);
+\bear at part@draw[\bear at body!70!black] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50];
+\bear at part@draw[\bear at body!70!black] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50];
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbear at back
+  \bear at part@draw[\bear at body!70!black] (0.425, 0.3) circle[radius=0.28]; 
+  \bear at part@draw[\bear at body!70!black] (-0.425, 0.3) circle[radius=0.28];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!70!black] (0,0.75) ellipse (0.55 and 0.65); 
-\bear at part@draw[\bear at body!50!white] (0,0.7) ellipse (0.35 and 0.4); 
+\bear at part@draw[\bear at body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; 
+\ifbear at back\else
+  \bear at part@draw[\bear at body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
+\fi 
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!70!black] (0.425, 0.3) circle (0.28); 
-\bear at part@draw[\bear at body!70!black] (-0.425, 0.3) circle (0.28);
-\bear at part@draw[\bear at body!50!white] (0.425, 0.3) circle (0.17); 
-\bear at part@draw[\bear at body!50!white] (-0.425, 0.3) circle (0.17);
+\ifbear at back\else
+  \bear at part@draw[\bear at body!70!black] (0.425, 0.3) circle[radius=0.28]; 
+  \bear at part@draw[\bear at body!70!black] (-0.425, 0.3) circle[radius=0.28];
+  \bear at part@draw[\bear at body!50!white] (0.425, 0.3) circle[radius=0.17]; 
+  \bear at part@draw[\bear at body!50!white] (-0.425, 0.3) circle[radius=0.17];
+\fi
 %
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!70!black] (0.375, 1.95) circle (0.15);
-\bear at part@draw[\bear at body!70!black] (-0.375, 1.95) circle (0.15);
-\bear at part@draw[\bear at body!50!white] (0.375, 1.95) circle (0.1);
-\bear at part@draw[\bear at body!50!white] (-0.375, 1.95) circle (0.1);
+\bear at part@draw[\bear at body!70!black] (0.375, 1.95) circle[radius=0.15];
+\bear at part@draw[\bear at body!70!black] (-0.375, 1.95) circle[radius=0.15];
+\ifbear at back\else
+  \bear at part@draw[\bear at body!50!white] (0.375, 1.95) circle[radius=0.1];
+  \bear at part@draw[\bear at body!50!white] (-0.375, 1.95) circle[radius=0.1];
+\fi
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!70!black] (0, 1.55) circle (0.5); 
+\bear at part@draw[\bear at body!70!black] (0, 1.55) circle[radius=0.5]; 
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbear at back\else
+%
 % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!50!white] (0, 1.4) ellipse (0.28 and 0.2); 
-\bear at part@draw[\bear at body!70!white!80!red] (0, 1.5) ellipse (0.15 and 0.08); 
+\bear at part@draw[\bear at body!50!white] (0, 1.4) ellipse[x radius=0.28, y radius=0.2]; 
+\bear at part@draw[\bear at body!70!white!80!red] (0, 1.5) ellipse[x radius=0.15, y radius=0.08]; 
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\bear at part@draw[\bear at body!30!black] (-0.155, 1.7) circle (0.05); 
-\bear at part@draw[\bear at body!30!black] (0.155, 1.7) circle (0.05); 
+\bear at part@draw[\bear at body!30!black] (-0.155, 1.7) circle[radius=0.05]; 
+\bear at part@draw[\bear at body!30!black] (0.155, 1.7) circle[radius=0.05]; 
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \draw[\bear at body!30!black,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16];
 %
-}
\ No newline at end of file
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname bearhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Added: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -0,0 +1,169 @@
+% !TeX root = ./examples/bee.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This package is part of 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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-bees}[2020/04/22 version v0.3 Drawing bees in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\bee}[1][]{%
+  \begin{scope}%
+    \tikzset{/bee/.cd,#1}%
+    \bee at draw%
+  \end{scope}%
+  \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname beehookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %   
+}
+
+\newif\ifbee at threeD
+\newif\ifbee at back
+
+\tikzset{
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % Pass unknown keys on to tikz
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  /bee/.search also={/tikz,/pgf,/thing},
+  /bee/.cd,
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % body
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  body/.code         = \def\bee at body{#1},
+  body               = yellow!70!orange,
+  hands/.code        = \def\bee at hands{#1},
+  hands              = black,  
+  wings/.code        = \def\bee at wings{#1},
+  wings              = blue!20!cyan!30!white, 
+  stripes/.code      = \def\bee at stripes{#1},
+  stripes            = black,     
+  antennas/.code     = \def\bee at antennas{#1},
+  antennas           = black,     
+  eye/.code         = \def\bee at eye{#1},
+  eye               = black,   
+  mouth/.code        = \def\bee at mouth{#1},
+  mouth              = black,      
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % options
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  3D/.code           = \bee at threeDtrue,  
+  back/.code         = \bee at backtrue,       
+}
+
+\def\bee at draw{%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% minimal bounding box size 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\path (-0.88,0.1) rectangle (0.88, 2.4);
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% store the current scale factor
+% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
+\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
+\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 
+% switch between 2D and 3D, from
+% https://chat.stackexchange.com/transcript/message/45991801#45991801
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbee at threeD
+  \def\bee at part@draw[##1]{\shade[ball color=##1]}
+\else
+  \def\bee at part@draw[##1]{\fill[##1]}
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Body parts (center: x=0)
+% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname beeshookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
+\ifbee at back
+  % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\bee at antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3);
+  \fill[\bee at antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3);
+  \bee at part@draw[\bee at antennas] (-0.22,2.30) circle[radius=0.07];
+  \bee at part@draw[\bee at antennas] (0.22,2.30) circle[radius=0.07];
+\else
+  % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\bee at wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35];
+  \fill[\bee at wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35];
+\fi
+%
+% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\begin{scope}
+  \clip (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle;
+  \bee at part@draw[\bee at body] (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle;
+  % stripes
+  \bee at part@draw[\bee at stripes] (-0.475,1.3) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle
+  (-0.475,1.0) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle
+  (-0.475,0.65) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle
+  (-0.475,0.35) arc(180:360:0.5 and 0.1) -- ++ (0,-0.15) arc(360:180:0.5 and 0.1) -- cycle;
+\end{scope}
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname beeshookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifbee at back
+  %
+  % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\bee at wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35];
+  \fill[\bee at wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35];
+\else
+  %
+  % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \bee at part@draw[\bee at eye] (-0.15,1.8) circle[radius=0.05]; 
+  \bee at part@draw[\bee at eye] (0.15,1.8) circle[radius=0.05]; 
+  %
+  % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \bee at part@draw[\bee at hands] (-0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=25];
+  \bee at part@draw[\bee at hands] (0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=-25];
+  %
+  % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \draw[\bee at mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16];
+  % 
+  % Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\bee at antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3);
+  \fill[\bee at antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3);
+  \bee at part@draw[\bee at antennas] (-0.22,2.30) circle[radius=0.07];
+  \bee at part@draw[\bee at antennas] (0.22,2.30) circle[radius=0.07];
+  %
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname beeshookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}


Property changes on: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/cat.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-cats package (part of the tikzlings collection)
-% A package to bring little cats into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019     
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-cats}
- [2019/04/07 v0.2 Drawing cats in TikZ]
+\ProvidesPackage{tikzlings-cats}[2020/04/22 version v0.3 Drawing cats in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -41,19 +37,23 @@
       \pgfmathparse{int(random(0,1))}
       \let\cat at random=\pgfmathresult
       \ifnum\cat at random=1
-				\cat at tombstone%
+        \cat at tombstone%
        \else
-       	\cat at draw%
+         \cat at draw%
       \fi
     \else
-    	\cat at draw%
+      \cat at draw%
     \fi
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname cathookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
 }
 
 \newif\ifcat at threeD
 \newif\ifcat at schroedinger
+\newif\ifcat at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -94,6 +94,7 @@
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \cat at threeDtrue,
   schroedinger/.code = \cat at schroedingertrue,
+  back/.code         = \cat at backtrue,  
 }
 
 \def\cat at draw{%
@@ -112,7 +113,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -134,14 +135,28 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{pgfinterruptboundingbox}
   \cat at part@draw[\cat at body] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle;
 \end{pgfinterruptboundingbox}
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifcat at back
+  \cat at part@draw[\cat at paws] (-0.255,0.3) circle[radius=0.18];  
+  \cat at part@draw[\cat at paws] (0.255,0.3) circle[radius=0.18];
+\fi 
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \cat at part@draw[\cat at body] (0.5462, 0.7155) .. controls (0.5462, 0.1823) and (0.3259, 0.17) .. (0, 0.17) .. controls (-0.3259, 0.17) and (-0.5462, 0.1823) .. (-0.5462, 0.7155) .. controls (-0.5554, 1.2487) and (-0.3075, 1.6768) .. (0, 1.6768) .. controls (0.3075, 1.6768) and (0.5554, 1.2487) .. (0.5462, 0.7155) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \cat at part@draw[\cat at body] 
 (0.12, 2.0392) .. controls (0.16, 2.1584) and (0.37, 2.22) .. (0.37, 2.20) .. controls (0.37, 2.2) and (0.39, 1.9) .. (0.2721, 1.9) .. controls (0.1891, 1.88) and (0.12, 1.88) .. (0.12, 2.0392) -- cycle; 
@@ -149,8 +164,11 @@
 (-0.12, 2.0392) .. controls (-0.16, 2.1584) and (-0.37, 2.22) .. (-0.37, 2.20) .. controls (-0.37, 2.2) and (-0.39, 1.9) .. (-0.2721, 1.9) .. controls (-0.1891, 1.88) and (-0.12, 1.88) .. (-0.12, 2.0392) -- cycle;
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\cat at part@draw[\cat at body] (0,1.64) circle (0.44);
+\cat at part@draw[\cat at body] (0,1.64) circle[radius=0.44];
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifcat at back\else
+%
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \cat at part@draw[\cat at eyes] (-0.1014, 1.7491) .. controls (-0.1014, 1.7491) and (-0.1451, 1.7171) .. (-0.1841, 1.7284) .. controls (-0.2231, 1.7397) and (-0.2427, 1.79) .. (-0.2427, 1.79) .. controls (-0.2427, 1.79) and (-0.1992, 1.8221) .. (-0.1602, 1.8108) .. controls (-0.1212, 1.7995) and (-0.1014, 1.7491) .. (-0.1014, 1.7491) -- cycle;
 \cat at part@draw[\cat at eyes] (0.1014, 1.7491) .. controls (0.1014, 1.7491) and (0.1451, 1.7171) .. (0.1841, 1.7284) .. controls (0.2231, 1.7397) and (0.2427, 1.79) .. (0.2427, 1.79) .. controls (0.2427, 1.79) and (0.1992, 1.8221) .. (0.1602, 1.8108) .. controls (0.1212, 1.7995) and (0.1014, 1.7491) .. (0.1014, 1.7491) -- cycle;
@@ -182,9 +200,14 @@
 \fill[\cat at whiskers] (-0.0671, 1.6243) .. controls (-0.1414, 1.6725) and (-0.2182, 1.6964) .. (-0.2925, 1.6482) -- (-0.2925, 1.6582) .. controls (-0.2179, 1.7066) and (-0.1417, 1.6727) .. (-0.0671, 1.6243) -- cycle;
 %
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\cat at part@draw[\cat at paws] (-0.255,0.3) circle (0.18);  
-\cat at part@draw[\cat at paws] (0.255,0.3) circle (0.18); 
+\cat at part@draw[\cat at paws] (-0.255,0.3) circle[radius=0.18];  
+\cat at part@draw[\cat at paws] (0.255,0.3) circle[radius=0.18]; 
 %
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbody\endcsname
+\csname tikzlinghookbody\endcsname
 }
 
 \def\cat at tombstone{%
@@ -213,11 +236,19 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Stone %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fill[gray] (-0.55,0.4) rectangle (0.55,1.5);
-\fill[gray] (0,1.5) circle (0.55);
+\fill[gray] (0,1.5) circle[radius=0.55];
 \node[scale=\scalingfactor] at (0,1.3) {R.I.P.};
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % soil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fill[brown!65!black] (1,0.15) arc [start angle=50, end angle=130, radius=1.56] -- cycle;
 %
@@ -226,7 +257,11 @@
 \fill[green!50!brown] (-0.1377, 0.7384) .. controls (-0.1775, 0.5828) and (-0.1479, 0.4649) .. (0.0072, 0.4246) .. controls (0.0570, 0.5636) and (-0.1529, 0.6447) .. (-0.1377, 0.7384) -- cycle;
 \fill[green!50!brown] (0.1527, 0.7334) .. controls (0.1925, 0.5778) and (0.1629, 0.4599) .. (0.0178, 0.4196) .. controls (-0.0420, 0.5586) and (0.1679, 0.6397) .. (0.1527, 0.7334) -- cycle;
 \foreach \i in {0,51.42857,...,359}{
-	\fill[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle;
+  \fill[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle;
 }
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname cathookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
 }

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/coati.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-coatis package (part of the tikzlings collection)
-% A package to bring little coatis into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-coatis}
- [2019/04/07 v0.2 Drawing coatis in TikZ]
+\ProvidesPackage{tikzlings-coatis}[2020/04/22 version v0.3 Drawing coatis in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,10 +23,14 @@
     \coati at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname coatihookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
 }
 
 \newif\ifcoati at threeD
 \newif\ifcoati at sideward
+\newif\ifcoati at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -57,6 +57,7 @@
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \coati at threeDtrue,  
   sideward/.code     = \coati at sidewardtrue,
+  back/.code         = \coati at backtrue,  
 }
 
 \def\coati at draw{%
@@ -74,7 +75,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -96,29 +97,42 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname coatihookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%  
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\coati at part@draw[\coati at body!80!white] (0.255,0.2) ellipse (0.23 and 0.09); 
-\coati at part@draw[\coati at body!80!white] (-0.255,0.2) ellipse (0.23 and 0.09);
+\coati at part@draw[\coati at body!80!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
+\coati at part@draw[\coati at body!80!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
 %
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\coati at part@draw[\coati at body!50!darkgray] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle;
-\begin{scope}
-  \clip (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle;
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1);
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1);
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1);
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1);
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1);
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1);
-\end{scope}
+\ifcoati at back\else
+  \coati at part@draw[\coati at body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle;
+  \begin{scope}
+    \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle;
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1);
+     \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1);   
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1);   
+  \end{scope}
+\fi
 %
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\coati at part@draw[\coati at body!80!white,rotate around={70:(-0.625,1)}] (-0.625,1) ellipse (0.42 and 0.13);
-\coati at part@draw[\coati at body!80!white,rotate around={-70:(0.625,1)}] (0.625,1) ellipse (0.42 and 0.13);
+\coati at part@draw[\coati at body!80!white] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70];
+\coati at part@draw[\coati at body!80!white] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70];
 %
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \coati at part@draw[\coati at body!50!darkgray] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname coatihookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%  
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{scope}[rotate around={\coati at rotatehead:(0,1.68)}]
 %
@@ -126,51 +140,96 @@
 \ifcoati at sideward
   %  
   % Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-16:(-0.212, 2.135)}] (-0.212, 2.135) ellipse (0.09 and 0.12);
-  \coati at part@draw[\coati at body!80!white,rotate around={-16:(-0.212, 2.135)}] (-0.212, 2.135) ellipse (0.065 and 0.09);
+  \coati at part@draw[\coati at body!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16];
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16];
+  \fi
   %  
   % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!45!white!95!orange] (0.4808, 1.7911) .. controls (0.5682, 1.2837) and (-0.3468, 1.3575) .. (-0.6360, 1.3679) .. controls (-0.7582, 1.4729) and (-0.5198, 1.7911) .. (-0.5198, 1.7911) .. controls (-0.3597, 2.2914) and (0.3207, 2.2914) .. (0.4808, 1.7911) -- cycle;
+  \ifcoati at back
+    \coati at part@draw[\coati at body!45!white!95!orange] (0.4569, 1.5608) .. controls (0.3680, 1.3594) and (0.0005, 1.2699) .. (-0.1826, 1.3507) .. controls (-0.3657, 1.4315) and (-0.5475, 1.7632) .. (-0.4587, 1.9646) .. controls (-0.1103, 2.3578) and (0.5123, 2.0832) .. (0.4569, 1.5608) -- cycle;
+  \else
+     \coati at part@draw[\coati at body!45!white!95!orange] (0.4808, 1.7911) .. controls (0.5682, 1.2837) and (-0.3468, 1.3575) .. (-0.6360, 1.3679) .. controls (-0.7582, 1.4729) and (-0.5198, 1.7911) .. (-0.5198, 1.7911) .. controls (-0.3597, 2.2914) and (0.3207, 2.2914) .. (0.4808, 1.7911) -- cycle;
+  \fi
   %  
   % Cheek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!80!white] (0.30, 1.4552) .. controls (0.30, 1.4552) and (0.1016, 1.7565) .. (-0.0005, 1.7581) -- (-0.6360, 1.3679) .. controls (-0.3083, 1.3437) and (0.0283, 1.332) .. (0.30, 1.4552) -- cycle;
-  \coati at part@draw[\coati at body!80!white] (-0.4166, 1.9824) .. controls (-0.4166, 1.9824) and (-0.2413, 1.9758) .. (-0.2226, 1.9112) -- (-0.6875, 1.4906) .. controls (-0.6875, 1.4906) and (-0.5712, 1.7549) .. (-0.4166, 1.9824) -- cycle;
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!80!white] (0.30, 1.4552) .. controls (0.30, 1.4552) and (0.1016, 1.7565) .. (-0.0005, 1.7581) -- (-0.6360, 1.3679) .. controls (-0.3083, 1.3437) and (0.0283, 1.332) .. (0.30, 1.4552) -- cycle (-0.4166, 1.9824) .. controls (-0.4166, 1.9824) and (-0.2413, 1.9758) .. (-0.2226, 1.9112) -- (-0.6875, 1.4906) .. controls (-0.6875, 1.4906) and (-0.5712, 1.7549) .. (-0.4166, 1.9824) -- cycle;
+  \fi
   % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!50!black] (-0.605, 1.453) circle (0.09);
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!50!black] (-0.605, 1.453) circle[radius=0.09];
+  \fi
   %
   % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!50!black] (0.007, 1.624) ellipse (0.04 and 0.06);
-  \coati at part@draw[\coati at body!50!black] (-0.38, 1.865) ellipse (0.035 and 0.055);
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!50!black] (0.007, 1.624) ellipse[x radius=0.04, y radius=0.06];
+    \coati at part@draw[\coati at body!50!black] (-0.38, 1.865) ellipse[x radius=0.035, y radius=0.055];
+  \fi
   %
   % Right Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-16:(0.417, 1.875)}] (0.417, 1.875) ellipse (0.1 and 0.14);
-  \coati at part@draw[\coati at body!80!white,rotate around={-16:(0.417, 1.875)}] (0.417, 1.875) ellipse (0.07 and 0.10);
+  \coati at part@draw[\coati at body!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16];
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16];
+  \fi
 %
 % Normal Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else
   %  
   % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle;
+  \ifcoati at back
+    \coati at part@draw[\coati at body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle;
+  \else
+    \coati at part@draw[\coati at body!45!white!95!orange] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle;
+  \fi
   %
   % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!80!white] (-0.4935, 1.7443) .. controls (-0.4935, 1.7443) and (-0.1917, 1.7798) .. (-0.1371, 1.7333) .. controls (-0.07, 1.2) and (-0.07, 1.2) .. (-0.07, 1.2) .. controls (-0.259, 1.3169) and (-0.46, 1.5665) .. (-0.4935, 1.7443) -- cycle;
-  \coati at part@draw[\coati at body!80!white] (0.4935, 1.7443) .. controls (0.4935, 1.7443) and (0.1917, 1.7798) .. (0.1371, 1.7333) .. controls (0.07, 1.2) and (0.07, 1.2) .. (0.07, 1.2) .. controls (0.259, 1.3169) and (0.46, 1.5665) .. (0.4935, 1.7443) -- cycle;
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!80!white] (-0.4935, 1.7443) .. controls (-0.4935, 1.7443) and (-0.1917, 1.7798) .. (-0.1371, 1.7333) .. controls (-0.07, 1.2) and (-0.07, 1.2) .. (-0.07, 1.2) .. controls (-0.259, 1.3169) and (-0.46, 1.5665) .. (-0.4935, 1.7443) -- cycle  (0.4935, 1.7443) .. controls (0.4935, 1.7443) and (0.1917, 1.7798) .. (0.1371, 1.7333) .. controls (0.07, 1.2) and (0.07, 1.2) .. (0.07, 1.2) .. controls (0.259, 1.3169) and (0.46, 1.5665) .. (0.4935, 1.7443) -- cycle;
+  \fi
   %
   % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!50!black] (0, 1.248) circle (0.09);
+  \ifcoati at back\else  
+    \coati at part@draw[\coati at body!50!black] (0, 1.248) circle[radius=0.09];
+  \fi
   %
   % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!50!black] (0.23, 1.62) circle (0.05);
-  \coati at part@draw[\coati at body!50!black] (-0.23, 1.62) circle (0.05);
+  \ifcoati at back\else
+    \coati at part@draw[\coati at body!50!black] (0.23, 1.62) circle[radius=0.05];
+    \coati at part@draw[\coati at body!50!black] (-0.23, 1.62) circle[radius=0.05];
+  \fi
   %
   % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  \coati at part@draw[\coati at body!45!white!95!orange] (0.44, 2.02) circle (0.12);
-  \coati at part@draw[\coati at body!80!white] (0.44, 2.02) circle (0.09);
-  \coati at part@draw[\coati at body!45!white!95!orange] (-0.44, 2.02) circle (0.12);
-  \coati at part@draw[\coati at body!80!white] (-0.44, 2.02) circle (0.09);
+  \coati at part@draw[\coati at body!45!white!95!orange] (0.44, 2.02) circle[radius=0.12];
+  \coati at part@draw[\coati at body!45!white!95!orange] (-0.44, 2.02) circle[radius=0.12];
+  \ifcoati at back\else  
+    \coati at part@draw[\coati at body!80!white] (0.44, 2.02) circle[radius=0.09];  
+    \coati at part@draw[\coati at body!80!white] (-0.44, 2.02) circle[radius=0.09];
+  \fi
   %  
 \fi
 \end{scope}
 %
+% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifcoati at back
+  \coati at part@draw[\coati at body!50!darkgray] (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle;
+  \begin{scope}
+    \clip (0.2845, 0.5595) .. controls (0.6382, 0.8326) and (0.7302, 1.5138) .. (1.0504, 1.6639) .. controls (1.3206, 1.7840) and (1.7609, 1.3537) .. (1.5608, 1.3437) .. controls (0.9203, 2.0442) and (0.8642, 0.6247) .. (0.5001, 0.3831) .. controls (0.3214, 0.2645) and (-0.1764, 0.1117) .. (-0.1408, 0.3245) .. controls (-0.1082, 0.5191) and (0.0508, 0.3791) .. (0.2845, 0.5595) -- cycle;
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1);
+     \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1);
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1);   
+    \coati at part@draw[\coati at body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1);       
+  \end{scope}
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname coatihookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%  
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/hippo.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-hippos package (part of the tikzlings collection)
-% A package to bring little hippos into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019   
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-hippos}
- [2019/04/07 v0.2 Drawing hippos in TikZ]
+\ProvidesPackage{tikzlings-hippos}[2020/04/22 version v0.3 Drawing hippos in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,13 @@
     \hippo at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname hippohookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
 }
 
 \newif\ifhippo at threeD
+\newif\ifhippo at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -54,6 +54,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \hippo at threeDtrue, 
+  back/.code         = \hippo at backtrue,
 }
 
 \def\hippo at draw{%
@@ -71,7 +72,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -93,49 +94,82 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname hippohookbackground\endcsname
+\csname tikzlinghookbackground\endcsname 
+%
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hippo at part@draw[\hippo at body,rotate around={-30:(0.23,2.03)}] (0.23,2.03) ellipse (0.09 and 0.13);
-\hippo at part@draw[\hippo at body,rotate around={30:(-0.23,2.03)}] (-0.23,2.03) ellipse (0.09 and 0.13);
+\hippo at part@draw[\hippo at body] (0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=-30];
+\hippo at part@draw[\hippo at body] (-0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=30];
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifhippo at back
+  \begin{scope}
+    \clip (-0.5,0.4) rectangle (0.5,0.13);
+    \hippo at part@draw[\hippo at body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+    \hippo at part@draw[\hippo at body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+  \end{scope}
+\fi
+%
+% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifhippo at back
+  \hippo at part@draw[\hippo at body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \hippo at part@draw[\hippo at body!55!white] ( 0.6,  0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.19) .. ( 0.0,  0.19) .. controls (-0.35, 0.19) and (-0.6 , 0.4) .. (-0.6,  0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.65) .. ( 0.0,  1.65) .. controls ( 0.35, 1.65) and ( 0.6 , 1.3) .. ( 0.6,  0.8) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname hippohookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%    
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hippo at part@draw[\hippo at body,rotate around={90:(0.35,1.0)}] (0.35,1.0) ellipse (0.24 and 0.13);
-\hippo at part@draw[\hippo at body,rotate around={-90:(-0.35,1.0)}] (-0.35,1.0) ellipse (0.24 and 0.13);
+\ifhippo at back\else
+  \hippo at part@draw[\hippo at body] (0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
+  \hippo at part@draw[\hippo at body] (-0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
+\fi
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hippo at part@draw[\hippo at body!55!white] (0, 1.76) circle (0.36);
+\hippo at part@draw[\hippo at body!55!white] (0, 1.76) circle[radius=0.36];
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifhippo at back\else
+%
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fill[white] (-0.11, 1.83) ellipse (0.08 and 0.12);
-\fill[white] (0.11, 1.83) ellipse (0.08 and 0.12);
-\fill[black] (-0.105, 1.78) ellipse (0.04 and 0.07);
-\fill[black] (0.105, 1.78) ellipse (0.04 and 0.07);
+\fill[white] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12];
+\fill[white] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12];
+\fill[black] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07];
+\fill[black] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07];
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\hippo at part@draw[\hippo at body!80!white] (0, 1.55) ellipse (0.42 and 0.2);
-\hippo at part@draw[\hippo at body!70!black]  (-0.07, 1.63) circle (0.035);
-\hippo at part@draw[\hippo at body!70!black]  (0.07, 1.63) circle (0.035);
+\hippo at part@draw[\hippo at body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
+\hippo at part@draw[\hippo at body!70!black]  (-0.07, 1.63) circle[radius=0.035];
+\hippo at part@draw[\hippo at body!70!black]  (0.07, 1.63) circle[radius=0.035];
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifhippo at threeD
-	\draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
-	\else
-		\draw[\hippo at body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
-		\fi
-		%
+  \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
+\else
+  \draw[\hippo at body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2];
+\fi
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{scope}
-	\clip (-0.5,0.4) rectangle (0.5,0.13);
-	\hippo at part@draw[\hippo at body] (-0.25,0.15) ellipse (0.16 and 0.17);
-	\hippo at part@draw[\hippo at body] (0.25,0.15) ellipse (0.16 and 0.17);
-	\hippo at part@draw[\hippo at toes] (0.25,0.13) ellipse (0.05 and 0.1);
-	\hippo at part@draw[\hippo at toes] (0.13,0.11) ellipse (0.05 and 0.1);
-	\hippo at part@draw[\hippo at toes] (0.37,0.11) ellipse (0.05 and 0.1);
-	\hippo at part@draw[\hippo at toes] (-0.25,0.13) ellipse (0.05 and 0.1);
-	\hippo at part@draw[\hippo at toes] (-0.13,0.11) ellipse (0.05 and 0.1);
-	\hippo at part@draw[\hippo at toes] (-0.37,0.11) ellipse (0.05 and 0.1);	
+  \clip (-0.5,0.4) rectangle (0.5,0.13);
+  \hippo at part@draw[\hippo at body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+  \hippo at part@draw[\hippo at body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+  \hippo at part@draw[\hippo at toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
+  \hippo at part@draw[\hippo at toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \hippo at part@draw[\hippo at toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \hippo at part@draw[\hippo at toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
+  \hippo at part@draw[\hippo at toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \hippo at part@draw[\hippo at toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1];  
 \end{scope}
 %
-}
\ No newline at end of file
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname hippohookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,9 +1,8 @@
 % !TeX root = ./examples/koala.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-koalas package (part of the tikzlings collection)
-% A package to bring little koalas into tikz
-% Created by @marmot (https://tex.stackexchange.com/a/448397/36296)
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -12,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019   
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-koalas}
- [2019/04/07 v0.2 Drawing koalas in TikZ]
+\ProvidesPackage{tikzlings-koalas}[2020/04/22 version v0.3 Drawing koalas in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -32,11 +27,16 @@
     \koala at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname koalahookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %
 }
 
 \newif\ifkoala at blush
 \newif\ifkoala at sleeping
 \newif\ifkoala at threeD
+\newif\ifkoala at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -61,6 +61,7 @@
   blush/.code        = \koala at blushtrue,
   sleeping/.code     = \koala at sleepingtrue, 
   3D/.code           = \koala at threeDtrue,  
+  back/.code         = \koala at backtrue,  
 }
 
 \def\koala at draw{%
@@ -78,7 +79,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -100,31 +101,46 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname koalahookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\koala at part@draw[\koala at body!50!black] (0.255,0.2) ellipse (0.23 and 0.09); 
-\koala at part@draw[\koala at body!50!black] (-0.255,0.2) ellipse (0.23 and 0.09);
+\koala at part@draw[\koala at body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
+\koala at part@draw[\koala at body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
 %
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\koala at part@draw[\koala at body] (0.405, 2.1) ellipse (0.3 and 0.23);
-\koala at part@draw[\koala at body!40!white] (0.405, 2.1) ellipse (0.15 and 0.12);
-\koala at part@draw[\koala at body] (-0.405, 2.1) ellipse (0.3 and 0.23);
-\koala at part@draw[\koala at body!40!white] (-0.405, 2.1) ellipse (0.15 and 0.12);
+\koala at part@draw[\koala at body] (0.405, 2.1) ellipse[x radius=0.3, y radius=0.23];
+\koala at part@draw[\koala at body] (-0.405, 2.1) ellipse[x radius=0.3, y radius=0.23];
+\ifkoala at back\else
+  \koala at part@draw[\koala at body!40!white] (-0.405, 2.1) ellipse[x radius=0.15, y radius=0.12];
+  \koala at part@draw[\koala at body!40!white] (0.405, 2.1) ellipse[x radius=0.15, y radius=0.12];
+\fi
 %
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\koala at part@draw[\koala at body,rotate around={70:(-0.625,1)}] (-0.625,1) ellipse (0.42 and 0.13);
-\koala at part@draw[\koala at body!50!black,rotate around={-20:(-0.745,0.65)}] (-0.745,0.65) ellipse (0.12 and 0.08);
-\koala at part@draw[\koala at body,rotate around={-70:(0.625,1)}] (0.625,1) ellipse (0.42 and 0.13);
-\koala at part@draw[\koala at body!50!black,rotate around={20:(0.745,0.65)}] (0.745,0.65) ellipse (0.12 and 0.08);
+\koala at part@draw[\koala at body] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70];
+\koala at part@draw[\koala at body!50!black] (-0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=-20];
+\koala at part@draw[\koala at body] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70];
+\koala at part@draw[\koala at body!50!black] (0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=20];
 %
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \koala at part@draw[\koala at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
 % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\koala at part@draw[\koala at body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0    , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0    , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle;
+\ifkoala at back\else
+  \koala at part@draw[\koala at body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0    , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0    , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle;
+\fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname koalahookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\koala at part@draw[\koala at body] (0,1.67) ellipse (0.55 and 0.45);
+\koala at part@draw[\koala at body] (0,1.67) ellipse[x radius=0.55, y radius=0.45];
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifkoala at back\else
+%
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \koala at part@draw[\koala at body!40!black] (-0.1501, 1.5609) .. controls (-0.1784, 1.4833) and (-0.0827, 1.4108) .. ( 0.0000, 1.4108) .. controls ( 0.0827, 1.4108) and ( 0.1784, 1.4833) .. ( 0.1501, 1.5609) .. controls ( 0.1290, 1.6191) and ( 0.1187, 1.6573) .. ( 0.0750, 1.7010) .. controls ( 0.0336, 1.7424) and (-0.0336, 1.7424) .. (-0.0750, 1.7010) .. controls (-0.1187, 1.6573) and (-0.1290, 1.6191) .. (-0.1501, 1.5609) -- cycle;
 %
@@ -143,15 +159,15 @@
   \fill[\koala at body!50!black, even odd rule] (0.3331, 1.741) ..  controls (0.3331, 1.685) and (0.1737, 1.685) .. (0.1737, 1.741) .. controls (0.1737, 1.848) and (0.3331, 1.848) .. (0.3331, 1.741) -- cycle (0.328, 1.741) .. controls   (0.323, 1.705) and   (0.184, 1.705) .. (0.179, 1.741) .. controls   (0.184, 1.843) and   (0.323, 1.843) .. (0.328, 1.741) -- cycle;
   \fill[\koala at body!50!black, even odd rule] (-0.3331, 1.741) ..  controls (-0.3331, 1.685) and (-0.1737, 1.685) .. (-0.1737, 1.741) .. controls (-0.1737, 1.848) and (-0.3331, 1.848) .. (-0.3331, 1.741) -- cycle   (-0.328, 1.741) .. controls     (-0.323, 1.705) and     (-0.184, 1.705) ..     (-0.179, 1.741) .. controls (-0.184, 1.843) and (-0.323, 1.843) .. (-0.328, 1.741) -- cycle;
 \else
-  \koala at part@draw[black] (-0.255, 1.74) circle (0.08); 
-  \koala at part@draw[black] (0.255, 1.74) circle (0.08); 
-  \fill[white] (-0.27, 1.76) circle (0.015); 
-  \fill[white] (0.24, 1.76) circle (0.015); 
+  \koala at part@draw[black] (-0.255, 1.74) circle[radius=0.08]; 
+  \koala at part@draw[black] (0.255, 1.74) circle[radius=0.08]; 
+  \fill[white] (-0.27, 1.76) circle[radius=0.015]; 
+  \fill[white] (0.24, 1.76) circle[radius=0.015]; 
 \fi
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifkoala at threeD
-	\draw[black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
+  \draw[black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
 \else   
   \draw[\koala at body!40!black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
 \fi
@@ -164,9 +180,14 @@
 %
 % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifkoala at blush
-  \fill[red,path fading=koala at blush] (-0.3, 1.52) circle (0.1); 
-  \fill[red,path fading=koala at blush] (0.3, 1.52) circle (0.1);
+  \fill[red,path fading=koala at blush] (-0.3, 1.52) circle[radius=0.1]; 
+  \fill[red,path fading=koala at blush] (0.3, 1.52) circle[radius=0.1];
 \fi
 %
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname koalahookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/marmot.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-marmots package (part of the tikzlings collection)
-% A package to bring little marmots into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-marmots}
- [2019/04/07 v0.2 Drawing marmots in TikZ]
+\ProvidesPackage{tikzlings-marmots}[2020/04/22 version v0.3 Drawing marmots in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -44,6 +40,10 @@
     \marmot at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname marmothookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifmarmot at blush
@@ -54,6 +54,7 @@
 \newif\ifmarmot at askphil
 \newif\ifmarmot at leftstep
 \newif\ifmarmot at rightstep
+\newif\ifmarmot at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -90,6 +91,7 @@
   left step/.forward to = /marmot/leftstep,
   rightstep/.code    = \marmot at rightsteptrue,
   right step/.forward to = /marmot/rightstep,  
+  back/.code         = \marmot at backtrue,  
 }
 
 \def\marmot at draw{%
@@ -107,7 +109,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -129,6 +131,10 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname marmothookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 \ifmarmot at askphil
   \pgfmathparse{int(random(1,120))}
   \let\marmot at random=\pgfmathresult
@@ -138,7 +144,7 @@
 \fi
 %
 \ifmarmot at shadow
-  \fill[opacity=0,blur shadow,rotate around={-80:(0.3,0.5)}] (0.3,0.5) ellipse (0.28 and 0.8);
+  \fill[opacity=0,blur shadow,] (0.3,0.5) ellipse[x radius=0.28, y radius=0.8, rotate=-80];
 \fi
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -149,43 +155,59 @@
 %
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifmarmot at leftstep
-  \marmot at part@draw[\marmot at body!50!black] (-0.255,0.25) ellipse (0.23 and 0.09);  
+  \marmot at part@draw[\marmot at body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];  
 \else
-  \marmot at part@draw[\marmot at body!50!black] (-0.255,0.2) ellipse (0.23 and 0.09);  
+  \marmot at part@draw[\marmot at body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];  
 \fi
 
 \ifmarmot at rightstep
-  \marmot at part@draw[\marmot at body!50!black] (0.255,0.25) ellipse (0.23 and 0.09); 
+  \marmot at part@draw[\marmot at body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; 
 \else
-  \marmot at part@draw[\marmot at body!50!black] (0.255,0.2) ellipse (0.23 and 0.09); 
+  \marmot at part@draw[\marmot at body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
 \fi
 %
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!black] (0.255,2.03) ellipse (0.09 and 0.13);
-\marmot at part@draw[\marmot at body!50!black] (-0.255,2.03) ellipse (0.09 and 0.13);
+\marmot at part@draw[\marmot at body!50!black] (0.255,2.03) ellipse[x radius=0.09, y radius=0.13];
+\marmot at part@draw[\marmot at body!50!black] (-0.255,2.03) ellipse[x radius=0.09, y radius=0.13];
 %
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!black] (0.885, 0.67) .. controls (0.865, 0.4) and (0.345, 0.24) .. (0.335, 0.44) .. controls (0.315, 0.56) and (0.445, 0.51) .. (0.575, 0.53) .. controls (0.695, 0.54) and (0.885, 0.72) .. (0.885, 0.67) -- cycle;
+\ifmarmot at back\else
+  \marmot at part@draw[\marmot at body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504);
+\fi
 %
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \marmot at part@draw[\marmot at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
+% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmarmot at back
+  \marmot at part@draw[\marmot at body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504);
+\fi
+%
 % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle;
+\ifmarmot at back\else
+  \marmot at part@draw[\marmot at body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle;
+\fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname marmothookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmarmot at back\else
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!black,rotate around={70:(0.385,0.93)}] (0.385,0.93) ellipse (0.24 and 0.13);
-\marmot at part@draw[\marmot at body!50!black,rotate around={-70:(-0.385,0.93)}] (-0.385,0.93) ellipse (0.24 and 0.13);
+\marmot at part@draw[\marmot at body!50!black] (0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70];
+\marmot at part@draw[\marmot at body!50!black] (-0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70];
 %
 % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!white] (0,1.47) ellipse (0.23 and 0.13); 
+\marmot at part@draw[\marmot at body!50!white] (0,1.47) ellipse[x radius=0.23, y radius=0.13]; 
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!black] (0,1.6) circle (0.08);
+\marmot at part@draw[\marmot at body!50!black] (0,1.6) circle[radius=0.08];
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\marmot at part@draw[\marmot at body!50!black] (-0.155,1.77) circle (0.05); 
-\marmot at part@draw[\marmot at body!50!black] (0.155,1.77) circle (0.05); 
+\marmot at part@draw[\marmot at body!50!black] (-0.155,1.77) circle[radius=0.05]; 
+\marmot at part@draw[\marmot at body!50!black] (0.155,1.77) circle[radius=0.05]; 
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fill[\marmot at body!50!black] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14,1.51) -- (-0.14,1.51) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle ;
@@ -198,8 +220,8 @@
 %
 % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifmarmot at blush
-  \fill[red,path fading=marmot at blush] (-0.295,1.6) circle (0.1); 
-  \fill[red,path fading=marmot at blush] (0.295,1.6) circle (0.1); 
+  \fill[red,path fading=marmot at blush] (-0.295,1.6) circle[radius=0.1]; 
+  \fill[red,path fading=marmot at blush] (0.295,1.6) circle[radius=0.1]; 
 \fi
 %
 % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -219,5 +241,10 @@
   \fill[\marmot at teeth] (0.045,1.407) rectangle (0.004,1.376);  
 \fi
 %
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname marmothookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/mouse.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-mice package (part of the tikzlings collection)
-% A package to bring little mice into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-mice}
- [2019/04/07 v0.2 Drawing mice in TikZ]
+\ProvidesPackage{tikzlings-mice}[2020/04/22 version v0.3 Drawing mice in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,10 +23,17 @@
     \mouse at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname mousehookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifmouse at threeD
 \newif\ifmouse at rotatearms
+\newif\ifmouse at leftstep
+\newif\ifmouse at rightstep
+\newif\ifmouse at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -57,6 +60,11 @@
                        \def\mouse at rotatearms{#1},
   rotate arms/.forward to = /mouse/rotatearms,
   rotatearms         = 20,
+  leftstep/.code     = \mouse at leftsteptrue,
+  left step/.forward to = /mouse/leftstep,
+  rightstep/.code    = \mouse at rightsteptrue,
+  right step/.forward to = /mouse/rightstep,    
+  back/.code         = \mouse at backtrue,  
 }
 
 \def\mouse at draw{%
@@ -74,7 +82,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -96,28 +104,65 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname mousehookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+% 
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!65!white] (-0.255,0.2) ellipse (0.23 and 0.09);  
-\mouse at part@draw[\mouse at body!65!white] (0.255,0.2) ellipse (0.23 and 0.09); 
+\ifmouse at leftstep
+  \mouse at part@draw[\mouse at body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];  
+\else
+  \mouse at part@draw[\mouse at body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];  
+\fi
 %
+\ifmouse at rightstep
+  \mouse at part@draw[\mouse at body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; 
+\else
+  \mouse at part@draw[\mouse at body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
+\fi
+%
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!65!white] (0.36, 2.17) circle (0.28);
-\mouse at part@draw[\mouse at body] (0.36, 2.17) circle (0.15);
-\mouse at part@draw[\mouse at body!65!white] (-0.36, 2.17) circle (0.28);
-\mouse at part@draw[\mouse at body] (-0.36, 2.17) circle (0.15);
+\mouse at part@draw[\mouse at body!65!white] (0.36, 2.17) circle[radius=0.28];
+\mouse at part@draw[\mouse at body!65!white] (-0.36, 2.17) circle[radius=0.28];
+\ifmouse at back\else
+  \mouse at part@draw[\mouse at body] (0.36, 2.17) circle[radius=0.15];
+  \mouse at part@draw[\mouse at body] (-0.36, 2.17) circle[radius=0.15];
+\fi
 %
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!65!white] (0.348, 0.475) .. controls (0.598, 0.844) and (0.778, 1.475) .. (1.099, 1.625) .. controls (1.369, 1.745) and (1.677, 1.309) .. (1.609, 1.305) .. controls (0.933, 2.178) and (0.771, 0.676) .. (0.411, 0.446) -- cycle;
+\ifmouse at back\else
+  \mouse at part@draw[\mouse at body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle;
+\fi
 %
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mouse at part@draw[\mouse at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname mousehookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+% 
+% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmouse at back
+  \mouse at part@draw[\mouse at body!65!white] (1.0825, 1.6326) .. controls (1.3527, 1.7527) and (1.6609, 1.3164) .. (1.5928, 1.3124) .. controls (0.9164, 2.186) and (0.8338, 0.6325) .. (0.3708, 0.4451) .. controls (0.2529, 0.3974) and (-0.0064, 0.3874) .. (-0.0064, 0.3874) .. controls (-0.0776, 0.3765) and (-0.0862, 0.5026) .. (-0.0092, 0.5034) .. controls (-0.0092, 0.5034) and (0.0363, 0.4591) .. (0.3516, 0.54360) .. controls (0.6710, 0.6988) and (0.7613, 1.4825) .. (1.0825, 1.6326) -- cycle;
+\fi
+%
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!65!white] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle;
+\ifmouse at back
+    \mouse at part@draw[\mouse at body!65!white] 
+    (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.35) .. 
+    (0, 1.35) .. controls (-0.2, 1.35) and (-0.5, 1.58) .. 
+    (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. 
+    (0.5, 1.8) -- cycle;
+\else
+  \mouse at part@draw[\mouse at body!65!white] (0.5, 1.8) .. controls (0.5, 1.58) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.5, 1.58) .. (-0.5, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.5, 1.8) -- cycle;
+\fi
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmouse at back\else
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!65!white,rotate around={-\mouse at rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse (0.13 and 0.24);
-\mouse at part@draw[\mouse at body!65!white,rotate around={\mouse at rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse (0.13 and 0.24);
+\mouse at part@draw[\mouse at body!65!white,rotate around={-\mouse at rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse[x radius=0.13, y radius=0.24];
+\mouse at part@draw[\mouse at body!65!white,rotate around={\mouse at rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse[x radius=0.13, y radius=0.24];
 %
 % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fill[\mouse at body!50!black] (0.0788, 1.2046) .. controls (0.1658, 1.2199) and (0.2086, 1.1539) .. (0.2956, 1.1386) -- (0.2956, 1.1486) .. controls (0.2097, 1.1637) and (0.1648, 1.2197) .. (0.0788, 1.2046) -- cycle;
@@ -128,11 +173,16 @@
 \fill[\mouse at body!50!black] (-0.0671, 1.2343) .. controls (-0.1414, 1.2825) and (-0.2182, 1.3064) .. (-0.2925, 1.2582) -- (-0.2925, 1.2682) .. controls (-0.2179, 1.3166) and (-0.1417, 1.2827) .. (-0.0671, 1.2343) -- cycle;
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!50!black] (0, 1.248) circle (0.09);
+\mouse at part@draw[\mouse at body!50!black] (0, 1.248) circle[radius=0.09];
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mouse at part@draw[\mouse at body!50!black] (0.23, 1.68) circle (0.05);
-\mouse at part@draw[\mouse at body!50!black] (-0.23, 1.68) circle (0.05);
+\mouse at part@draw[\mouse at body!50!black] (0.23, 1.68) circle[radius=0.05];
+\mouse at part@draw[\mouse at body!50!black] (-0.23, 1.68) circle[radius=0.05];
 %
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname mousehookbody\endcsname
+\csname tikzlinghookbody\endcsname
+% 
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/mole.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-moles package (part of the tikzlings collection)
-% A package to bring little moles into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-moles}
- [2019/04/07 v0.2 Drawing moles in TikZ]
+\ProvidesPackage{tikzlings-moles}[2020/04/22 version v0.3 Drawing moles in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,14 @@
     \mole at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname moleshookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %   
 }
 
 \newif\ifmole at threeD
+\newif\ifmole at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -57,7 +58,8 @@
   % options
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  3D/.code           = \mole at threeDtrue,       
+  3D/.code           = \mole at threeDtrue,  
+  back/.code         = \mole at backtrue,       
 }
 
 \def\mole at draw{%
@@ -75,7 +77,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -97,12 +99,18 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname moleshookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mole at part@draw[\mole at feet] (-0.255,0.2) ellipse (0.23 and 0.09);  
-\mole at part@draw[\mole at feet] (0.255,0.2) ellipse (0.23 and 0.09); 
+\mole at part@draw[\mole at feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];  
+\mole at part@draw[\mole at feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
 %
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mole at part@draw[\mole at body] (0.885, 0.67) .. controls (0.865, 0.4) and (0.345, 0.24) .. (0.335, 0.44) .. controls (0.315, 0.56) and (0.445, 0.51) .. (0.575, 0.53) .. controls (0.695, 0.54) and (0.885, 0.72) .. (0.885, 0.67) -- cycle;
+\ifmole at back\else
+  \mole at part@draw[\mole at body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504);
+\fi
 %
 % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mole at part@draw[\mole at body] (-0.09, 2.06) .. controls (-0.09, 2.06) and (-0.13, 2.25) .. (-0.07, 2.27) .. controls (-0.09, 2.13) and (0.04, 2.08) .. (0.04, 2.08) .. controls (0.04, 2.08) and (0.02, 2.20) .. (0.06, 2.21) .. controls (0.06, 2.11) and (0.13, 2.08) .. (0.13, 2.08) -- cycle;
@@ -110,35 +118,54 @@
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mole at part@draw[\mole at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
+% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmole at back
+  \mole at part@draw[\mole at body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504) -- cycle;
+\fi
+%
 % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mole at part@draw[\mole at body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle;
+\ifmole at back\else
+  \mole at part@draw[\mole at body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle;
+\fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname moleshookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifmole at back\else
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mole at part@draw[\mole at body,rotate around={70:(0.37,0.86)}] (0.37,0.86) ellipse (0.27 and 0.13);
-\mole at part@draw[\mole at body,rotate around={-70:(-0.37,0.86)}] (-0.37,0.86) ellipse (0.27 and 0.13);
+\mole at part@draw[\mole at body] (0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=70];
+\mole at part@draw[\mole at body] (-0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=-70];
 %
 % Hands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fill[white] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle;
 \fill[white] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle;
-\mole at part@draw[\mole at hands,rotate around={70:(0.285,0.65)}] (0.285,0.65) ellipse (0.08 and 0.13);
-\mole at part@draw[\mole at hands,rotate around={-70:(-0.285,0.65)}] (-0.285,0.65) ellipse (0.08 and 0.13);
+\mole at part@draw[\mole at hands] (0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=70];
+\mole at part@draw[\mole at hands] (-0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=-70];
 %
 % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \mole at part@draw[\mole at muzzle] ( 0.22, 1.46) .. controls ( 0.22, 1.50) and ( 0.22, 1.53) .. ( 0.17, 1.56) .. controls ( 0.11, 1.58) and ( 0.05, 1.66) .. ( 0.00, 1.66) .. controls (-0.05, 1.66) and (-0.11, 1.58) .. (-0.17, 1.56) .. controls (-0.22, 1.53) and (-0.22, 1.50) .. (-0.22, 1.46) .. controls (-0.22, 1.39) and (-0.14, 1.33) .. ( 0.00, 1.33) .. controls ( 0.14, 1.33) and ( 0.22, 1.39) .. ( 0.22, 1.46) -- cycle;
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\mole at part@draw[\mole at body!60!black] (0,1.67) circle (0.055);
+\mole at part@draw[\mole at body!60!black] (0,1.67) circle[radius=0.055];
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifmole at threeD
-	\fill[\mole at body!60!black,rotate around={-15:(-0.165,1.79)}] (-0.165,1.79) ellipse (0.055 and 0.015); 
-	\fill[\mole at body!30!black,rotate around={15:(0.165,1.79)}] (0.165,1.79) ellipse (0.055 and 0.015); 
+  \fill[\mole at body!60!black] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; 
+  \fill[\mole at body!30!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; 
 \else   
-	\fill[\mole at body!60!black,rotate around={-15:(-0.165,1.79)}] (-0.165,1.79) ellipse (0.055 and 0.015); 
-	\fill[\mole at body!60!black,rotate around={15:(0.165,1.79)}] (0.165,1.79) ellipse (0.055 and 0.015); 
+  \fill[\mole at body!60!black] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; 
+  \fill[\mole at body!60!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; 
 \fi
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \draw[\mole at body!60!black, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ;
 %
-}
\ No newline at end of file
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname moleshookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/owl.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-owls package (part of the tikzlings collection)
-% A package to draw litlle owls with tikz 
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019   
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-owls}
- [2019/04/07 v0.2 Draw owls in TikZ]
+\ProvidesPackage{tikzlings-owls}[2020/04/22 version v0.3 Draw owls in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,14 @@
     \owl at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname owlhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifowl at threeD
+\newif\ifowl at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -60,6 +61,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \owl at threeDtrue,
+  back/.code         = \owl at backtrue,  
 }
 
 \def\owl at draw{%
@@ -77,7 +79,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -99,10 +101,24 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname owlhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\owl at part@draw[\owl at body,rotate around={-80:(0.575,0.8)}] (0.575,0.8) ellipse (0.38 and 0.1);
-\owl at part@draw[\owl at body,rotate around={80:(-0.575,0.8)}] (-0.575,0.8) ellipse (0.38 and 0.1); 
+\owl at part@draw[\owl at body] (0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=-80];
+\owl at part@draw[\owl at body] (-0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=80]; 
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifowl at back
+  \owl at part@draw[\owl at feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1];
+  \owl at part@draw[\owl at feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20];
+  \owl at part@draw[\owl at feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40];
+  \owl at part@draw[\owl at feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1];
+  \owl at part@draw[\owl at feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20];
+  \owl at part@draw[\owl at feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \owl at part@draw[\owl at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
@@ -110,27 +126,43 @@
 \owl at part@draw[\owl at body] (-0.6361, 1.777) .. controls   (-0.6361, 1.777) and   (-0.7586, 1.9603) ..   (-0.6759, 2.2145) .. controls   (-0.3248, 1.912) and   (0.3248, 1.912) ..   (0.6759, 2.2145) .. controls   (0.7586, 1.9603) and   (0.6361, 1.777) ..   (0.6361, 1.777);
 %
 % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\owl at part@draw[\owl at body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle;
+\ifowl at back\else
+  \owl at part@draw[\owl at body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle;
+\fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname owlhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\owl at part@draw[\owl at body] (0,1.55) ellipse (0.7 and 0.55);
+\owl at part@draw[\owl at body] (0,1.55) ellipse[x radius=0.7, y radius=0.55];
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fill[\owl at eye] (-0.28, 1.6) circle (0.22);
-\owl at part@draw[\owl at pupil]   (-0.28, 1.6) circle (0.15);
-\fill[\owl at eye] (0.28, 1.6) circle (0.22);
-\owl at part@draw[\owl at pupil]   (0.28, 1.6) circle (0.15);
-\owl at part@draw[white] (0.25, 1.64) circle (0.03);
-\owl at part@draw[white] (-0.31, 1.64) circle (0.03);
+\ifowl at back\else
+  \fill[\owl at eye] (-0.28, 1.6) circle[radius=0.22];
+  \owl at part@draw[\owl at pupil]   (-0.28, 1.6) circle[radius=0.15];
+  \fill[\owl at eye] (0.28, 1.6) circle[radius=0.22];
+  \owl at part@draw[\owl at pupil]   (0.28, 1.6) circle[radius=0.15];
+  \owl at part@draw[white] (0.25, 1.64) circle[radius=0.03];
+  \owl at part@draw[white] (-0.31, 1.64) circle[radius=0.03];
+\fi
 %
 % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\owl at part@draw[\owl at bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle;
+\ifowl at back\else
+  \owl at part@draw[\owl at bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle;
+\fi
 %
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\owl at part@draw[\owl at feet] (0.175,0.2) ellipse (0.03 and 0.1);
-\owl at part@draw[\owl at feet,rotate around={20:(0.225,0.21)}] (0.225,0.21) ellipse (0.03 and 0.1);
-\owl at part@draw[\owl at feet,rotate around={40:(0.275,0.23)}] (0.275,0.23) ellipse (0.03 and 0.1);
-\owl at part@draw[\owl at feet] (-0.175,0.2) ellipse (0.03 and 0.1);
-\owl at part@draw[\owl at feet,rotate around={-20:(-0.225,0.21)}] (-0.225,0.21) ellipse (0.03 and 0.1);
-\owl at part@draw[\owl at feet,rotate around={-40:(-0.275,0.23)}] (-0.275,0.23) ellipse (0.03 and 0.1);
-}
\ No newline at end of file
+\ifowl at back\else
+  \owl at part@draw[\owl at feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1];
+  \owl at part@draw[\owl at feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20];
+  \owl at part@draw[\owl at feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40];
+  \owl at part@draw[\owl at feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1];
+  \owl at part@draw[\owl at feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20];
+  \owl at part@draw[\owl at feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40];
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname owlhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/panda.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-pandas package (part of the tikzlings collection)
-% A package to bring little pandas into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019  
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pandas}
- [2019/04/07 v0.2 Drawing pandas in TikZ]
+\ProvidesPackage{tikzlings-pandas}[2020/04/22 version v0.3 Drawing pandas in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,14 @@
     \panda at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname pandahookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifpanda at threeD
+\newif\ifpanda at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -52,6 +53,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \panda at threeDtrue, 
+  back/.code         = \panda at backtrue,  
 }
 
 \def\panda at draw{%
@@ -69,7 +71,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -91,38 +93,64 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pandahookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpanda at back
+  \panda at part@draw[black] (0.32, 0.27) circle[radius=0.2]; 
+  \panda at part@draw[black] (-0.32, 0.27) circle[radius=0.2];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\panda at part@draw[\panda at body!55!white] (0,0.78) ellipse (0.57 and 0.65);
+\panda at part@draw[\panda at body!55!white] (0,0.78) ellipse[x radius=0.57, y radius=0.65];
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pandahookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{scope}[yshift=-0.08cm]
-\panda at part@draw[black,rotate around={70:(0.28,0.93)}] (0.28,0.93) ellipse (0.24 and 0.13);
-\panda at part@draw[black,rotate around={-70:(-0.28,0.93)}] (-0.28,0.93) ellipse (0.24 and 0.13);
-\end{scope}
+\ifpanda at back\else
+  \begin{scope}[yshift=-0.08cm]
+  \panda at part@draw[black] (0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70];
+  \panda at part@draw[black] (-0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70];
+  \end{scope}
+\fi
 %
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\panda at part@draw[black] (0.32, 0.27) circle (0.2); 
-\panda at part@draw[black] (-0.32, 0.27) circle (0.2);
+\ifpanda at back\else
+  \panda at part@draw[black] (0.32, 0.27) circle[radius=0.2]; 
+  \panda at part@draw[black] (-0.32, 0.27) circle[radius=0.2];
+\fi
 %
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\panda at part@draw[black] (0.32, 2) circle (0.15);
-\panda at part@draw[black] (-0.32, 2) circle (0.15);
+\panda at part@draw[black] (0.32, 2) circle[radius=0.15];
+\panda at part@draw[black] (-0.32, 2) circle[radius=0.15];
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \panda at part@draw[\panda at body!55!white] (0.4897, 1.5886) .. controls (0.4614, 1.8238) and (0.25, 2.1172) .. (0, 2.1134) .. controls (-0.25, 2.1172) and (-0.4614, 1.8238) .. (-0.4897, 1.5886) .. controls (-0.5261, 1.3269) and (-0.2748, 1.2377) .. (0, 1.2377) .. controls (0.2748, 1.2377) and (0.5261, 1.3269) .. (0.4897, 1.5886) -- cycle;
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpanda at back\else
+%
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \panda at part@draw[black] (0.3732, 1.6905) .. controls (0.3498, 1.767) and (0.2032, 1.8059) .. (0.0944, 1.7715) .. controls (-0.0145, 1.7371) and (0.173, 1.5479) .. (0.2508, 1.5443) .. controls (0.3286, 1.5407) and (0.3965, 1.614) .. (0.3732, 1.6905) -- cycle;
 \panda at part@draw[black] (-0.3732, 1.6905) .. controls (-0.3498, 1.767) and (-0.2032, 1.8059) .. (-0.0944, 1.7715) .. controls (0.0145, 1.7371) and (-0.173, 1.5479) .. (-0.2508, 1.5443) .. controls (-0.3286, 1.5407) and (-0.3965, 1.614) .. (-0.3732, 1.6905) -- cycle;
-\panda at part@draw[white] (-0.18, 1.7) circle (0.05);
-\panda at part@draw[white] (0.18, 1.7) circle (0.05);
-\panda at part@draw[black] (0.17, 1.695) circle (0.02);
-\panda at part@draw[black] (-0.17, 1.695) circle (0.02);
+\panda at part@draw[white] (-0.18, 1.7) circle[radius=0.05];
+\panda at part@draw[white] (0.18, 1.7) circle[radius=0.05];
+\panda at part@draw[black] (0.17, 1.695) circle[radius=0.02];
+\panda at part@draw[black] (-0.17, 1.695) circle[radius=0.02];
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \draw[black,line width=\scalingfactor*0.2pt] (-0.16, 1.477) .. controls (-0.16, 1.477) and (-0.062, 1.37) .. (0, 1.506)  .. controls (0.062, 1.37) and (0.16, 1.477) .. (0.16, 1.477);
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\panda at part@draw[black] (0,1.55) ellipse (0.07 and 0.04);
+\panda at part@draw[black] (0,1.55) ellipse[x radius=0.07, y radius=0.04];
 %
-}
\ No newline at end of file
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pandahookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/pingu.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-penguins package (part of the tikzlings collection)
-% A package to bring penguins into tikz 
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019     
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-penguins}
- [2019/04/07 v0.2 Draw penguins in TikZ]
+\ProvidesPackage{tikzlings-penguins}[2020/04/22 version v0.3 Draw penguins in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,14 @@
     \penguin at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname penguinhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifpenguin at threeD
+\newif\ifpenguin at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -62,6 +63,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \penguin at threeDtrue, 
+  back/.code         = \penguin at backtrue,  
 }
 
 \def\penguin at draw{%
@@ -79,7 +81,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -101,28 +103,56 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname penguinhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\penguin at part@draw[\penguin at body,rotate around={-50:(0.575,1.2)}] (0.575,1.2) ellipse (0.38 and 0.1);
-\penguin at part@draw[\penguin at body,rotate around={50:(-0.575,1.2)}] (-0.575,1.2) ellipse (0.38 and 0.1);  
+\penguin at part@draw[\penguin at body] (0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=-50];
+\penguin at part@draw[\penguin at body] (-0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=50];  
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpenguin at back
+  \penguin at part@draw[\penguin at feet] 
+  (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle;
+  \penguin at part@draw[\penguin at feet] 
+  (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle;
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \penguin at part@draw[\penguin at body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle;
 %
 % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\penguin at part@draw[\penguin at belly] (0, 0.6) ellipse (0.48 and 0.35);
+\ifpenguin at back\else
+  \penguin at part@draw[\penguin at belly] (0, 0.6) ellipse[x radius=0.48, y radius=0.35];
+\fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname penguinhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\penguin at part@draw[\penguin at feet] 
-(-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle;
-\penguin at part@draw[\penguin at feet] 
-(0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle;
+\ifpenguin at back\else
+  \penguin at part@draw[\penguin at feet] 
+  (-0.265, 0.3941) .. controls (-0.283, 0.4505) and (-0.373, 0.6014) .. (-0.470, 0.6533) .. controls (-0.571, 0.7075) and (-0.576, 0.6369) .. (-0.554, 0.596) .. controls (-0.526, 0.5416) and (-0.573, 0.5302) .. (-0.602, 0.5384) .. controls (-0.695, 0.5653) and (-0.767, 0.5169) .. (-0.684, 0.434) .. controls (-0.664, 0.4137) and (-0.587, 0.3557) .. (-0.699, 0.3492) .. controls (-0.772, 0.345) and (-0.779, 0.268) .. (-0.689, 0.2445) .. controls (-0.597, 0.2206) and (-0.476, 0.2043) .. (-0.34, 0.2096) .. controls (-0.252, 0.2131) and (-0.237, 0.3059) .. (-0.265, 0.3941) -- cycle;
+  \penguin at part@draw[\penguin at feet] 
+  (0.265, 0.3941) .. controls (0.283, 0.4505) and (0.3725, 0.6014) .. (0.469, 0.6533) .. controls (0.571, 0.7075) and (0.5756, 0.6369) .. (0.554, 0.596) .. controls (0.526, 0.5416) and (0.5733, 0.5302) .. (0.602, 0.5384) .. controls (0.695, 0.5653) and (0.7672, 0.5169) .. (0.684, 0.434) .. controls (0.663, 0.4137) and (0.587, 0.3557) .. (0.699, 0.3492) .. controls (0.772, 0.345) and (0.7789, 0.268) .. (0.689, 0.2445) .. controls (0.597, 0.2206) and (0.4764, 0.2043) .. (0.34, 0.2096) .. controls (0.252, 0.2131) and (0.2368, 0.3059) .. (0.265, 0.3941) -- cycle;
+\fi
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fill[\penguin at eye,rotate around={-10:(-0.175,1.64)}] (-0.175,1.64) ellipse (0.1 and 0.15);
-\fill[\penguin at pupil,rotate around={-3:(-0.145,1.625)}] (-0.145,1.625) ellipse (0.0357 and 0.0714);
-\fill[\penguin at eye,rotate around={10:(0.175,1.64)}] (0.175,1.64) ellipse (0.1 and 0.15);
-\fill[\penguin at pupil,rotate around={3:(0.145,1.625)}] (0.145,1.625) ellipse (0.0357 and 0.0714);
+\ifpenguin at back\else
+  \fill[\penguin at eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10];
+  \fill[\penguin at pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3];
+  \fill[\penguin at eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10];
+  \fill[\penguin at pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3];
+\fi
 %
 % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\penguin at part@draw[\penguin at bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle;
-}
\ No newline at end of file
+\ifpenguin at back\else
+  \penguin at part@draw[\penguin at bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle;
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname penguinhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/pig.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-pigs package (part of the tikzlings collection)
-% A package to bring little pigs into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pigs}
- [2019/04/07 v0.2 Drawing pigs in TikZ]
+\ProvidesPackage{tikzlings-pigs}[2020/04/22 version v0.3 Drawing pigs in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -28,9 +24,14 @@
     \pig at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname pighookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifpig at threeD
+\newif\ifpig at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -53,6 +54,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \pig at threeDtrue, 
+  back/.code         = \pig at backtrue,  
 }
 
 \def\pig at draw{%
@@ -70,7 +72,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -92,43 +94,73 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pighookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\draw[\pig at body,line width=\scalingfactor*0.8pt] (0.8471, 0.5927) .. controls (0.8549, 0.4832) and (0.8046, 0.4105) .. (0.7319, 0.4079) .. controls (0.6592, 0.4052) and (0.6142, 0.4365) .. (0.5964, 0.5024) .. controls (0.5786, 0.5682) and (0.6252, 0.6291) .. (0.6794, 0.6342) .. controls (0.7335, 0.6394) and (0.7561, 0.6114) .. (0.7663, 0.5661) .. controls (0.7765, 0.5208) and (0.746, 0.458) .. (0.7192, 0.4319) .. controls (0.6924, 0.4058) and (0.7073, 0.4182) .. (0.6604, 0.3859) .. controls (0.6134, 0.3536) and (0.4367, 0.3643) .. (0.3877, 0.5055);
+\ifpig at back\else
+  \draw[\pig at body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236);
+\fi
 %
+% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpig at back
+  \pig at part@draw[\pig at body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
+  \pig at part@draw[\pig at body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
+\fi%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pig at part@draw[\pig at body!55!white] ( 0.6,  0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.16) .. ( 0.0,  0.16) .. controls (-0.35, 0.16) and (-0.6 , 0.4) .. (-0.6,  0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.5) .. ( 0.0,  1.5) .. controls ( 0.35, 1.5) and ( 0.6 , 1.3) .. ( 0.6,  0.75) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pighookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pig at part@draw[\pig at body] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle;
-\pig at part@draw[\pig at body] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle;
+\ifpig at back\else
+  \pig at part@draw[\pig at body] (-0.2402, 0.9823) .. controls (-0.2994, 1.0582) and (-0.3721, 1.0651) .. (-0.4024, 0.9978) .. controls (-0.4327, 0.9305) and (-0.4092, 0.8145) .. (-0.35, 0.7386) .. controls (-0.3311, 0.7145) and (-0.3101, 0.6964) .. (-0.289, 0.6862) .. controls (-0.2755, 0.7023) and (-0.2498, 0.7563) .. (-0.2498, 0.7563) .. controls (-0.2498, 0.7563) and (-0.1790, 0.731) .. (-0.1611, 0.746) .. controls (-0.1611, 0.746) and (-0.1809, 0.9064) .. (-0.2402, 0.9823) -- cycle;
+  \pig at part@draw[\pig at body] (0.2402, 0.9823) .. controls (0.2994, 1.0582) and (0.3721, 1.0651) .. (0.4024, 0.9978) .. controls (0.4327, 0.9305) and (0.4092, 0.8145) .. (0.35, 0.7386) .. controls (0.3311, 0.7145) and (0.3101, 0.6964) .. (0.289, 0.6862) .. controls (0.2755, 0.7023) and (0.2498, 0.7563) .. (0.2498, 0.7563) .. controls (0.2498, 0.7563) and (0.1790, 0.731) .. (0.1611, 0.746) .. controls (0.1611, 0.746) and (0.1809, 0.9064) .. (0.2402, 0.9823) -- cycle;
+\fi
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pig at part@draw[\pig at body!55!white] (0,1.64) ellipse (.5 and .5);
+\pig at part@draw[\pig at body!55!white] (0,1.64) ellipse[x radius=.5, y radius=.5];
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpig at back\else
+%
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pig at part@draw[gray] (-0.09, 1.82) circle (0.02);
-\pig at part@draw[gray] ( 0.09, 1.82) circle (0.02);
+\pig at part@draw[gray] (-0.09, 1.82) circle[radius=0.02];
+\pig at part@draw[gray] ( 0.09, 1.82) circle[radius=0.02];
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pig at part@draw[\pig at body]  (0, 1.62) ellipse (0.18 and 0.14);
-\pig at part@draw[gray]  (-0.06, 1.62) circle (0.035);
-\pig at part@draw[gray]  ( 0.06, 1.62) circle (0.035);
+\pig at part@draw[\pig at body]  (0, 1.62) ellipse[x radius=0.18, y radius=0.14];
+\pig at part@draw[gray]  (-0.06, 1.62) circle[radius=0.035];
+\pig at part@draw[gray]  ( 0.06, 1.62) circle[radius=0.035];
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifpig at threeD
-	\draw[gray!70!black,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;
+  \draw[gray!70!black,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;
 \else
-	\draw[gray,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;
+  \draw[gray,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;
 \fi
 %
-% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pig at part@draw[\pig at body] (0.22, 2.0392) .. controls 	(0.22, 2.1584) and 	(0.49460, 2.255) .. 	(0.49460, 2.255) .. controls 	(0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and 	(0.22, 1.9201) .. (0.22, 2.0392) -- cycle;
-\pig at part@draw[\pig at body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle;	
-\pig at part@draw[\pig at body] (-0.22, 2.0392) .. controls 	(-0.22, 2.1584) and 	(-0.49460, 2.255) .. 	(-0.49460, 2.255) .. controls 	(-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and 	(-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle;
-\pig at part@draw[\pig at body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle;	
-%	
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pig at part@draw[\pig at body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
 \pig at part@draw[\pig at body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
 %
-}
\ No newline at end of file
+\fi
+%
+% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pig at part@draw[\pig at body] (0.22, 2.0392) .. controls   (0.22, 2.1584) and   (0.49460, 2.255) ..   (0.49460, 2.255) .. controls   (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and   (0.22, 1.9201) .. (0.22, 2.0392) -- cycle;
+\pig at part@draw[\pig at body!55!white] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle;  
+\pig at part@draw[\pig at body] (-0.22, 2.0392) .. controls   (-0.22, 2.1584) and   (-0.49460, 2.255) ..   (-0.49460, 2.255) .. controls   (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and   (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle;
+\pig at part@draw[\pig at body!55!white] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle;  
+%  
+% Tail  if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifpig at back
+  \draw[\pig at body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236);
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname pighookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/rhino.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-rhinos package (part of the tikzlings collection)
-% A package to bring little rhinos into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-rhinos}
- [2019/04/07 v0.2 Drawing rhinos in TikZ]
+\ProvidesPackage{tikzlings-rhinos}[2020/04/22 version v0.3 Drawing rhinos in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,14 @@
     \rhino at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname rhinohookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifrhino at threeD
+\newif\ifrhino at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -54,6 +55,7 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \rhino at threeDtrue, 
+  back/.code         = \rhino at backtrue,  
 }
 
 \def\rhino at draw{%
@@ -71,7 +73,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -93,28 +95,55 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname rhinohookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
 % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \rhino at part@draw[\rhino at body]  (-0.1772, 2.0686) .. controls (-0.2057, 2.1602) and (-0.3552, 2.2076) .. (-0.3552, 2.1922) .. controls (-0.3552, 2.1922) and (-0.3694, 1.9615) .. (-0.2855, 1.9615) .. controls (-0.2264, 1.9462) and (-0.1772, 1.9462) .. (-0.1772, 2.0686) -- cycle;
 \rhino at part@draw[\rhino at body]  (0.1772, 2.0686) .. controls (0.2057, 2.1602) and (0.3552, 2.2076) .. (0.3552, 2.1922) .. controls (0.3552, 2.1922) and (0.3694, 1.9615) .. (0.2855, 1.9615) .. controls (0.2264, 1.9462) and (0.1772, 1.9462) .. (0.1772, 2.0686) -- cycle;
 %
+% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifrhino at back
+  \begin{scope}
+    \clip (-0.5,0.4) rectangle (0.5,0.13);
+    \rhino at part@draw[\rhino at body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+    \rhino at part@draw[\rhino at body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];  
+  \end{scope}
+\fi
+%
+% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifrhino at back
+  \rhino at part@draw[\rhino at body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \rhino at part@draw[\rhino at body!55!white] ( 0.55,  0.8 ) .. controls ( 0.55 , 0.4) and ( 0.35, 0.19) .. ( 0.0,  0.19) .. controls (-0.35, 0.19) and (-0.55 , 0.4) .. (-0.55,  0.8 ) .. controls (-0.55 , 1.3) and (-0.35, 1.65) .. ( 0.0,  1.65) .. controls ( 0.35, 1.65) and ( 0.55 , 1.3) .. ( 0.55,  0.75) -- cycle;
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname rhinohookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\rhino at part@draw[\rhino at body,rotate around={90:(0.3,1.0)}] (0.3,1.0) ellipse (0.24 and 0.13);
-\rhino at part@draw[\rhino at body,rotate around={-90:(-0.3,1.0)}] (-0.3,1.0) ellipse (0.24 and 0.13);
+\ifrhino at back\else
+  \rhino at part@draw[\rhino at body] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
+  \rhino at part@draw[\rhino at body] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
+\fi
 %
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\rhino at part@draw[\rhino at body!55!white] (0, 1.76) circle (0.36);
+\rhino at part@draw[\rhino at body!55!white] (0, 1.76) circle[radius=0.36];
 %
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifrhino at back\else
+%
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fill[white] (-0.11, 1.83) ellipse (0.08 and 0.12);
-\fill[white] (0.11, 1.83) ellipse (0.08 and 0.12);
-\fill[black] (-0.105, 1.78) ellipse (0.04 and 0.07);
-\fill[black] (0.105, 1.78) ellipse (0.04 and 0.07);
+\fill[white] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12];
+\fill[white] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12];
+\fill[black] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07];
+\fill[black] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07];
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\rhino at part@draw[\rhino at body!80!white] (0, 1.55) ellipse (0.36 and 0.2);
+\rhino at part@draw[\rhino at body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
 %
 % Horn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \rhino at part@draw[white!95!yellow] (0, 1.7911) .. controls (-0.0231, 1.7372) and (-0.0463, 1.6832) .. (-0.0642, 1.6274) .. controls (-0.0687, 1.6132) and (-0.0724, 1.5981) .. (-0.0678, 1.5834) .. controls (-0.0603, 1.552) and (-0.0287, 1.5287) .. (0, 1.531) .. controls (0.0287, 1.5287) and (0.0603, 1.552) .. (0.0678, 1.5834) .. controls (0.0724, 1.5981) and (0.0687, 1.6132) .. (0.0642, 1.6274) .. controls (0.0463, 1.6832) and (0.0231, 1.7372) .. (0, 1.7911) -- cycle;
@@ -121,22 +150,27 @@
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifrhino at threeD
-	\draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
-	\else
-		\draw[\rhino at body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
-		\fi
-		%
+  \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
+\else
+  \draw[\rhino at body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
+\fi
+%
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{scope}
-	\clip (-0.5,0.4) rectangle (0.5,0.13);
-	\rhino at part@draw[\rhino at body] (-0.25,0.15) ellipse (0.16 and 0.17);
-	\rhino at part@draw[\rhino at body] (0.25,0.15) ellipse (0.16 and 0.17);
-	\rhino at part@draw[\rhino at toes] (0.25,0.13) ellipse (0.05 and 0.1);
-	\rhino at part@draw[\rhino at toes] (0.13,0.11) ellipse (0.05 and 0.1);
-	\rhino at part@draw[\rhino at toes] (0.37,0.11) ellipse (0.05 and 0.1);
-	\rhino at part@draw[\rhino at toes] (-0.25,0.13) ellipse (0.05 and 0.1);
-	\rhino at part@draw[\rhino at toes] (-0.13,0.11) ellipse (0.05 and 0.1);
-	\rhino at part@draw[\rhino at toes] (-0.37,0.11) ellipse (0.05 and 0.1);	
+  \clip (-0.5,0.4) rectangle (0.5,0.13);
+  \rhino at part@draw[\rhino at body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+  \rhino at part@draw[\rhino at body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
+  \rhino at part@draw[\rhino at toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
+  \rhino at part@draw[\rhino at toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \rhino at part@draw[\rhino at toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \rhino at part@draw[\rhino at toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
+  \rhino at part@draw[\rhino at toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
+  \rhino at part@draw[\rhino at toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1];  
 \end{scope}
 %
-}
\ No newline at end of file
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname rhinohookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
+}

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/sloth.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-sloths package (part of the tikzlings collection)
-% A package to bring little sloths into tikz
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-sloths}
- [2019/04/07 v0.2 Drawing sloths in TikZ]
+\ProvidesPackage{tikzlings-sloths}[2020/04/22 version v0.3 Drawing sloths in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -29,10 +25,15 @@
     \sloth at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname slothhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifsloth at sleeping
 \newif\ifsloth at threeD
+\newif\ifsloth at back
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -56,6 +57,7 @@
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   sleeping/.code     = \sloth at sleepingtrue, 
   3D/.code           = \sloth at threeDtrue,       
+  back/.code         = \sloth at backtrue,  
 }
 
 \def\sloth at draw{%
@@ -73,7 +75,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -95,10 +97,44 @@
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname slothhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%
+% Arms if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsloth at back
+  \sloth at part@draw[\sloth at body] (0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=10];
+  \sloth at part@draw[\sloth at body] (-0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=-10];  
+\fi
+%
+% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsloth at back
+  \fill[\sloth at body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019,rotate=-10];
+  \fill[\sloth at body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
+  \fill[\sloth at body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
+  \fill[\sloth at body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
+  \fill[\sloth at body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
+  \fill[\sloth at body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
+  \sloth at part@draw[\sloth at body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
+  \sloth at part@draw[\sloth at body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
+\fi
+%
 % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \sloth at part@draw[\sloth at body!85!black] (0.53,0.85) .. controls (0.53,0.29) and (0.32,0.22) .. (0,0.22) .. controls (-0.32,0.22) and (-0.53,0.29) .. 
 (-0.53,0.85) .. controls (-0.53,1.41) and (-0.32,1.87) .. (0,1.87) .. controls (0.33,1.87) and (0.53,1.41) .. (0.53,0.85) -- cycle;
 %
+% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsloth at back\else
+  \sloth at part@draw[\sloth at body!70!white] (0.36, 0.74) .. controls (0.36, 0.49) and (0.22, 0.41) .. (0, 0.41) .. controls (-0.22, 0.41) and (-0.36, 0.49) .. (-0.36, 0.74) .. controls (-0.36, 1) and (-0.22, 1.16) .. (0, 1.16) .. controls (0.22, 1.16) and (0.36, 1) .. (0.36, 0.74) -- cycle;
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname slothhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
+% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\sloth at part@draw[\sloth at body] (-0.1128,2.0724) .. controls (-0.1128,2.0724) and (-0.1499,2.2329) .. (-0.0972,2.2525) .. controls (-0.1082,2.1318) and (-0.0047,2.0839) .. (-0.0047,2.0839) .. controls (-0.0047,2.0839) and (-0.0219,2.1866) .. (0.0145,2.1933) .. controls (0.0142,2.1159) and (0.0770,2.0884) .. (0.0770,2.0884) -- cycle;
+%
 % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \sloth at part@draw[\sloth at body] 
 ( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.10) .. 
@@ -105,6 +141,10 @@
 ( 0.00,2.10) .. controls (-0.27,2.10) and (-0.50,1.91) .. (-0.50,1.67) .. controls (-0.50,1.43) and (-0.33,1.28) .. 
 ( 0.00,1.28) .. controls ( 0.33,1.28) and ( 0.50,1.43) .. 
 ( 0.50,1.67) -- cycle;
+%
+% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsloth at back\else
+%
 \sloth at part@draw[\sloth at body!50!white] ( 0.40,1.67) .. controls ( 0.40,1.90) and ( 0.12,2.09) .. ( 0.00,1.93) .. controls (-0.12,2.09) and (-0.40,1.90) .. (-0.40,1.67) .. controls (-0.40,1.45) and (-0.25,1.38) .. ( 0.00,1.38) .. controls ( 0.25,1.38) and ( 0.40,1.45) .. ( 0.40,1.67) -- cycle;
 %
 % behind the eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -113,59 +153,58 @@
 %
 % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifsloth at sleeping
-	\fill[\sloth at body!50!white] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle;
-	\fill[\sloth at body!50!white] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle;
-	%
-	\fill[\sloth at body!50!white] (0.195, 1.705) rectangle ++(0.005, 0.02);  
-	\fill[\sloth at body!50!white,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); 
-	\fill[\sloth at body!50!white,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); 	
-	\fill[\sloth at body!50!white,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); 
-	\fill[\sloth at body!50!white,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); 		
-	%
-	\fill[\sloth at body!50!white] (-0.195, 1.705) rectangle ++(0.005, 0.02);  
-	\fill[\sloth at body!50!white,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); 
-	\fill[\sloth at body!50!white,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); 	
-	\fill[\sloth at body!50!white,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); 
-	\fill[\sloth at body!50!white,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); 	
+  \fill[\sloth at body!50!white] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle;
+  \fill[\sloth at body!50!white] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle;
+  %
+  \fill[\sloth at body!50!white] (0.195, 1.705) rectangle ++(0.005, 0.02);  
+  \fill[\sloth at body!50!white,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); 
+  \fill[\sloth at body!50!white,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02);   
+  \fill[\sloth at body!50!white,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); 
+  \fill[\sloth at body!50!white,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);     
+  %
+  \fill[\sloth at body!50!white] (-0.195, 1.705) rectangle ++(0.005, 0.02);  
+  \fill[\sloth at body!50!white,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); 
+  \fill[\sloth at body!50!white,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);   
+  \fill[\sloth at body!50!white,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); 
+  \fill[\sloth at body!50!white,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02);   
 \else
-	\sloth at part@draw[black] (0.193,1.75) circle (0.04);
-	\sloth at part@draw[black] (-0.193,1.75) circle (0.04);
-	\fill[white] (-0.2  ,1.765) circle (0.006);
-	\fill[white] ( 0.186,1.765) circle (0.006);
+  \sloth at part@draw[black] (0.193,1.75) circle[radius=0.04];
+  \sloth at part@draw[black] (-0.193,1.75) circle[radius=0.04];
+  \fill[white] (-0.2  ,1.765) circle[radius=0.006];
+  \fill[white] ( 0.186,1.765) circle[radius=0.006];
 \fi
 %
 % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\sloth at part@draw[\sloth at body!40!black] (0,1.665) ellipse (0.078 and 0.048);
+\sloth at part@draw[\sloth at body!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048];
 %
 % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \draw[\sloth at body!40!black,line width=\scalingfactor*0.4pt]  (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16];
 %
-% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\sloth at part@draw[\sloth at body] (-0.1128,2.0724) .. controls (-0.1128,2.0724) and (-0.1499,2.2329) .. (-0.0972,2.2525) .. controls (-0.1082,2.1318) and (-0.0047,2.0839) .. (-0.0047,2.0839) .. controls (-0.0047,2.0839) and (-0.0219,2.1866) .. (0.0145,2.1933) .. controls (0.0142,2.1159) and (0.0770,2.0884) .. (0.0770,2.0884) -- cycle;
-%
-% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\sloth at part@draw[\sloth at body!70!white] (0.36, 0.74) .. controls (0.36, 0.49) and (0.22, 0.41) .. (0, 0.41) .. controls (-0.22, 0.41) and (-0.36, 0.49) .. (-0.36, 0.74) .. controls (-0.36, 1) and (-0.22, 1.16) .. (0, 1.16) .. controls (0.22, 1.16) and (0.36, 1) .. (0.36, 0.74) -- cycle;
-%
 % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \sloth at part@draw[\sloth at body] (-0.50, 1.24) .. controls (-0.54, 1.24) and (-0.55, 1.20) .. (-0.56, 1.17) .. controls (-0.61, 1.06) and (-0.63, 0.95) .. (-0.64, 0.83) .. controls (-0.64, 0.80) and (-0.64, 0.77) .. (-0.63, 0.74) .. controls (-0.57, 0.66) and (-0.47, 0.60) .. (-0.38, 0.56) .. controls (-0.31, 0.54) and (-0.23, 0.52) .. (-0.16, 0.54) .. controls (-0.12, 0.54) and (-0.10, 0.59) .. (-0.13, 0.61) .. controls (-0.17, 0.68) and (-0.24, 0.73) .. (-0.30, 0.77) .. controls (-0.34, 0.79) and (-0.38, 0.81) .. (-0.42, 0.83) .. controls (-0.41, 0.92) and (-0.41, 1.01) .. (-0.42, 1.09) .. controls (-0.43, 1.14) and (-0.44, 1.19) .. (-0.48, 1.23) .. controls (-0.48, 1.24) and (-0.49, 1.24) .. (-0.50, 1.24) -- cycle;
 \sloth at part@draw[\sloth at body] (0.50, 1.24) .. controls (0.54, 1.24) and (0.55, 1.20) .. (0.56, 1.17) .. controls (0.61, 1.06) and (0.63, 0.95) .. (0.64, 0.83) .. controls (0.64, 0.80) and (0.64, 0.77) .. (0.63, 0.74) .. controls (0.57, 0.66) and (0.47, 0.60) .. (0.38, 0.56) .. controls (0.31, 0.54) and (0.23, 0.52) .. (0.16, 0.54) .. controls (0.12, 0.54) and (0.10, 0.59) .. (0.13, 0.61) .. controls (0.17, 0.68) and (0.24, 0.73) .. (0.30, 0.77) .. controls (0.34, 0.79) and (0.38, 0.81) .. (0.42, 0.83) .. controls (0.41, 0.92) and (0.41, 1.01) .. (0.42, 1.09) .. controls (0.43, 1.14) and (0.44, 1.19) .. (0.48, 1.23) .. controls (0.48, 1.24) and (0.49, 1.24) .. (0.50, 1.24) -- cycle;
 %
-\fill[\sloth at body!50!black,rotate around={110:(0.15, 0.61)}] (0.15, 0.61) ellipse (0.017 and 0.07);
-\fill[\sloth at body!50!black,rotate around={117:(0.17, 0.57)}] (0.17, 0.57) ellipse (0.015 and 0.07);
-\fill[\sloth at body!50!black,rotate around={125:(0.19, 0.53)}] (0.19, 0.53) ellipse (0.012 and 0.062);
+\fill[\sloth at body!50!black] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110];
+\fill[\sloth at body!50!black] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117];
+\fill[\sloth at body!50!black] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125];
 %
-\fill[\sloth at body!50!black,rotate around={-110:(-0.15, 0.61)}] (-0.15, 0.61) ellipse (0.017 and 0.07);
-\fill[\sloth at body!50!black,rotate around={-117:(-0.17, 0.57)}] (-0.17, 0.57) ellipse (0.015 and 0.07);
-\fill[\sloth at body!50!black,rotate around={-125:(-0.19, 0.53)}] (-0.19, 0.53) ellipse (0.012 and 0.062);
+\fill[\sloth at body!50!black] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110];
+\fill[\sloth at body!50!black] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117];
+\fill[\sloth at body!50!black] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125];
 %
 % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\sloth at part@draw[\sloth at body,rotate around={25:(0.33,0.31)}] (0.33,0.31) ellipse (0.25 and 0.13);
-\sloth at part@draw[\sloth at body,rotate around={-25:(-0.33,0.31)}] (-0.33,0.31) ellipse (0.25 and 0.13);
-\fill[\sloth at body!50!black,rotate around={-10:(-0.125,0.265)}] (-0.125,0.265) ellipse (0.07 and 0.019);
-\fill[\sloth at body!50!black,rotate around={-16:(-0.14,0.21)}] (-0.14,0.21) ellipse (0.07 and 0.017);
-\fill[\sloth at body!50!black,rotate around={-22:(-0.16,0.165)}] (-0.16,0.165) ellipse (0.07 and 0.015);
-\fill[\sloth at body!50!black,rotate around={10:(0.125,0.265)}] (0.125,0.265) ellipse (0.07 and 0.019);
-\fill[\sloth at body!50!black,rotate around={16:(0.14,0.21)}] (0.14,0.21) ellipse (0.07 and 0.017);
-\fill[\sloth at body!50!black,rotate around={22:(0.16,0.165)}] (0.16,0.165) ellipse (0.07 and 0.015);
+\sloth at part@draw[\sloth at body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
+\sloth at part@draw[\sloth at body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
+\fill[\sloth at body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10];
+\fill[\sloth at body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
+\fill[\sloth at body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
+\fill[\sloth at body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
+\fill[\sloth at body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
+\fill[\sloth at body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
 %
+\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname slothhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%
 }

Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/snowman.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings-snowmans package (part of the tikzlings collection)
-% A package to bring snowmans into tikz 
+% This package is part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019    
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-snowmans}
- [2019/04/07 v0.2 Draw snowmans in TikZ]
+\ProvidesPackage{tikzlings-snowmans}[2020/04/22 version v0.3 Draw snowmans in TikZ]
 
 \RequirePackage{tikz}
 \RequirePackage{tikzlings-addons}
@@ -27,9 +23,15 @@
     \snowman at draw%
   \end{scope}%
   \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname snowmanhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+  %  
 }
 
 \newif\ifsnowman at threeD
+\newif\ifsnowman at back
+\newif\ifsnowman at globalwarming
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -60,6 +62,11 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   3D/.code           = \snowman at threeDtrue, 
+  back/.code         = \snowman at backtrue,
+  globalwarming/.code= \snowman at globalwarmingtrue
+                       \def\snowman at globalwarming{#1},
+  globalwarming/.default = blue!10!white,                       
+  global warming/.forward to = /snowman/globalwarming,
 }
 
 \def\snowman at draw{%
@@ -77,7 +84,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -95,38 +102,89 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% Body parts (center: x=0.925)
+% Body parts
 % 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\snowman at part@draw[\snowman at body,rotate around={-50:(0.5,1.1)}] (0.5,1.1) ellipse (0.3 and 0.12);
-\snowman at part@draw[\snowman at body,rotate around={50:(-0.5,1.1)}] (-0.5,1.1) ellipse (0.3 and 0.12);
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname snowmanhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
 %
-% Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\snowman at part@draw[\snowman at body] (0,0.5) ellipse (0.6 and 0.5);
-\snowman at part@draw[\snowman at body] (0,1.1) ellipse (0.5 and 0.4);
-\snowman at part@draw[\snowman at body] (0,1.7) circle (0.4);  
+% Global warming %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsnowman at globalwarming
+  %
+  % Puddle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\snowman at globalwarming] (0,1.15) ellipse[x radius=1.6,y radius=1.15];
+  %
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname snowmanhookbelly\endcsname
+  \csname tikzlinghookbelly\endcsname
+  %
+  % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\snowman at mouth] (0,1.23) circle[radius=0.025]; 
+  \fill[\snowman at mouth] (0.06,1.3) circle[radius=0.025];  
+  \fill[\snowman at mouth] (-0.06,1.27) circle[radius=0.025];  
+  \fill[\snowman at mouth] (0.09,1.37) circle[radius=0.025];  
+  \fill[\snowman at mouth] (-0.18,1.28) circle[radius=0.025];  
+  \fill[\snowman at mouth] (0.2,1.28) circle[radius=0.025];  
+  \fill[\snowman at mouth] (-0.25,1.2) circle[radius=0.025];
+  %
+  % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at eye] (-0.5,1.75) circle[radius=0.06]; 
+  \snowman at part@draw[\snowman at eye] (-0.1,1.55) circle[radius=0.06]; 
+  %
+  % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at nose] (-0.6,1.54) -- (-0.6,1.4) -- (-0.8,1.42) -- cycle;
+  \snowman at part@draw[\snowman at nose] (-0.6,1.47) circle[radius=0.07];
+  %
+  % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at buttons] (0.1,0.8) circle[radius=0.06];
+  \snowman at part@draw[\snowman at buttons] (-0.15,0.55) circle[radius=0.06];
+  \snowman at part@draw[\snowman at buttons] (0,0.25) circle[radius=0.06];   
 %
-% Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\fill[\snowman at mouth] (0,1.5) circle (0.016);
-\fill[\snowman at mouth] (0.04,1.507) circle (0.016);
-\fill[\snowman at mouth] (-0.04,1.507) circle (0.016);
-\fill[\snowman at mouth] (0.08,1.522) circle (0.016);
-\fill[\snowman at mouth] (-0.08,1.522) circle (0.016);
-\fill[\snowman at mouth] (0.12,1.543) circle (0.016);
-\fill[\snowman at mouth] (-0.12,1.543) circle (0.016);
+% normal snowman %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\else
+  %
+  % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at body] (0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=-50];
+  \snowman at part@draw[\snowman at body] (-0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=50];
+  %
+  % Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at body] (0,0.5) ellipse[x radius=0.6, y radius=0.5];
+  \snowman at part@draw[\snowman at body] (0,1.1) ellipse[x radius=0.5, y radius=0.4];
+  \snowman at part@draw[\snowman at body] (0,1.7) circle[radius=0.4];  
+  %
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname snowmanhookbelly\endcsname
+  \csname tikzlinghookbelly\endcsname
+  %
+  % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \ifsnowman at back\else
+  %
+  % Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \fill[\snowman at mouth] (0,1.5) circle[radius=0.016];
+  \fill[\snowman at mouth] (0.04,1.507) circle[radius=0.016];
+  \fill[\snowman at mouth] (-0.04,1.507) circle[radius=0.016];
+  \fill[\snowman at mouth] (0.08,1.522) circle[radius=0.016];
+  \fill[\snowman at mouth] (-0.08,1.522) circle[radius=0.016];
+  \fill[\snowman at mouth] (0.12,1.543) circle[radius=0.016];
+  \fill[\snowman at mouth] (-0.12,1.543) circle[radius=0.016];
+  %
+  % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at eye] (-0.155,1.8) circle[radius=0.04]; 
+  \snowman at part@draw[\snowman at eye] (0.155,1.8) circle[radius=0.04]; 
+  %
+  % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at nose] (0,1.67) circle[radius=0.05] (0,1.72) -- (0,1.62) -- (0.15,1.64) -- cycle;
+  %
+  % Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \snowman at part@draw[\snowman at buttons] (0,1.15) circle[radius=0.04]; 
+  \snowman at part@draw[\snowman at buttons] (0,0.95) circle[radius=0.04]; 
+  \snowman at part@draw[\snowman at buttons] (0,0.75) circle[radius=0.04]; 
+  %
+\fi\fi
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname snowmanhookbody\endcsname
+\csname tikzlinghookbody\endcsname
 %
-% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\snowman at part@draw[\snowman at eye] (-0.155,1.8) circle (0.04); 
-\snowman at part@draw[\snowman at eye] (0.155,1.8) circle (0.04); 
-%
-% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\snowman at part@draw[\snowman at nose] (0,1.67) circle (0.05) (0,1.72) -- (0,1.62) -- (0.15,1.64) -- cycle;
-%
-% buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\snowman at part@draw[\snowman at buttons] (0,1.15) circle (0.04); 
-\snowman at part@draw[\snowman at buttons] (0,0.95) circle (0.04); 
-\snowman at part@draw[\snowman at buttons] (0,0.75) circle (0.04); 
-%
 }

Added: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -0,0 +1,162 @@
+% !TeX root = ./examples/squirrel.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This package is part of 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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-squirrels}[2020/04/22 version v0.3 Drawing squirrels in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\squirrel}[1][]{%
+  \begin{scope}%
+    \tikzset{/squirrel/.cd,#1}%
+    \squirrel at draw%
+  \end{scope}%
+  \thing[#1]%
+  % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \csname squirrelhookforeground\endcsname
+  \csname tikzlinghookforeground\endcsname
+}
+
+\newif\ifsquirrel at threeD
+\newif\ifsquirrel at back
+
+\tikzset{
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % Pass unknown keys on to tikz
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  /squirrel/.search also={/tikz,/pgf,/thing},
+  /squirrel/.cd,
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % body
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  body/.code         = \def\squirrel at body{#1},
+  body               = brown!40!gray!90!red,
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  %
+  % options
+  %
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  3D/.code           = \squirrel at threeDtrue,  
+  back/.code         = \squirrel at backtrue,  
+}
+
+\def\squirrel at draw{%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% minimal bounding box size 
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\path (-0.53,0.1) rectangle (1.12,2.15);
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% store the current scale factor
+% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
+\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
+\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% 
+% switch between 2D and 3D, from
+% https://chat.stackexchange.com/transcript/message/45991801#45991801
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsquirrel at threeD
+  \def\squirrel at part@draw[##1]{\shade[ball color=##1]}
+\else
+  \def\squirrel at part@draw[##1]{\fill[##1]}
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Body parts (center: x=0)
+% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname squirrelhookbackground\endcsname
+\csname tikzlinghookbackground\endcsname
+%  
+% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; 
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+%
+% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsquirrel at back\else
+  \squirrel at part@draw[\squirrel at body!70!brown!50!darkgray]
+   (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle;
+\fi
+%
+% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body] 
+ (0.5,0.5) .. controls (0.5,0.09) and (-0.5,0.09) .. (-0.5,0.5) .. controls (-0.5,0.85) and (-0.25,1.6) .. (0,1.7) .. controls (0.25,1.6) and (0.5,0.85) .. (0.5,0.5) -- cycle;
+%
+% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifsquirrel at back\else
+  \squirrel at part@draw[\squirrel at body!85!white] (0.35,0.5) .. controls (0.35,0.22) and (-0.35,0.22) .. (-0.35,0.5) .. controls (-0.35,0.7) and (-0.17,1.2) .. (0,1.2) .. controls (0.17,1.2) and (0.35,0.7) .. (0.35,0.5) -- cycle;
+\fi 
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname squirrelhookbelly\endcsname
+\csname tikzlinghookbelly\endcsname
+%
+% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray]   (0.1920,1.9906) .. controls (0.1657,2.0780) and (0.1839,2.1332) .. (0.1839,2.1332) .. controls (0.1839,2.1332) and (0.1123,2.1773) .. (0.0941,2.0720) .. controls (0.0716,2.0156) and (0.0753,1.9519) .. (0.1023,1.9293) .. controls (0.1293,1.9068) and (0.1696,1.9342) .. (0.1920,1.9906) -- cycle;
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray]  
+(-0.1920,1.9906) .. controls (-0.1657,2.0780) and (-0.1839,2.1332) .. (-0.1839,2.1332) .. controls (-0.1839,2.1332) and (-0.1123,2.1773) .. (-0.0941,2.0720) .. controls (-0.0716,2.0156) and (-0.0753,1.9519) .. (-0.1023,1.9293) .. controls (-0.1293,1.9068) and (-0.1696,1.9342) .. (-0.1920,1.9906) -- cycle;
+%
+% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body] (0,1.75) circle[radius=0.3]  (0.2,1.6) circle[radius=0.15]  (-0.2,1.6) circle[radius=0.15];
+%
+\ifsquirrel at back
+  % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \squirrel at part@draw[\squirrel at body!70!brown!50!darkgray]
+   (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle;
+\else
+%
+% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body!70!brown!60!black] (0,1.66) ellipse[x radius=0.06, y radius=0.03];
+% 
+% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[white] (0.07,1.78) ellipse[x radius=0.05, y radius=0.07];
+\squirrel at part@draw[white] (-0.07,1.78) ellipse[x radius=0.05, y radius=0.07];
+\squirrel at part@draw[black] (0.07,1.76) ellipse[x radius=0.017, y radius=0.027];
+\squirrel at part@draw[black] (-0.07,1.76) ellipse[x radius=0.017, y radius=0.027];
+%
+% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fill[white] (-0.025,1.567) rectangle ++(0.02,0.03);
+\fill[white] (0.025,1.567) rectangle ++(-0.02,0.03);
+\draw[\squirrel at body!70!brown!60!black,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61);
+% 
+% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray] (0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=70];
+\squirrel at part@draw[\squirrel at body!70!brown!50!darkgray] (-0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=-70];
+%
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname squirrelhookbody\endcsname
+\csname tikzlinghookbody\endcsname
+%  
+}
+


Property changes on: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty	2020-04-22 20:49:51 UTC (rev 54837)
+++ trunk/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty	2020-04-22 20:50:07 UTC (rev 54838)
@@ -1,8 +1,8 @@
 % !TeX root = ./examples/tikzlings.tex
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
-% The tikzlings
-% A collection of packages to draw animals in tikz
+% This is the main part of the TikZlings package
+% A package to bring cute little animals and other beings into tikz
 % Maintained by samcarter
 %
 % Project repository and bug tracker:
@@ -11,12 +11,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.2
-% April 7, 2019   
-%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings}
- [2019/04/07 v0.2 Collection of packages to draw animals and other beings in TikZ]
+\ProvidesPackage{tikzlings}[2020/04/22 version v0.3 Collection of packages to draw animals and other beings in TikZ]
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -39,6 +35,9 @@
 \RequirePackage{tikzlings-hippos}
 \RequirePackage{tikzlings-rhinos}
 \RequirePackage{tikzlings-pandas}
+\RequirePackage{tikzlings-bees}
+\RequirePackage{tikzlings-anteaters}
+\RequirePackage{tikzlings-squirrels}
 \RequirePackage{tikzlings-addons}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,9 +58,9 @@
   \pgfmathsetseed{\number\pdfrandomseed}
 \fi
 
-\pgfmathdeclarerandomlist{tikzlings}{{\bear}{\penguin}{\marmot}{\owl}{\koala}{\coati}{\snowman}{\mouse}{\moles}{\sloth}{\pig}{\cat}{\hippo}{\rhino}}
+\pgfmathdeclarerandomlist{tikzlings}{{\bear}{\penguin}{\marmot}{\owl}{\koala}{\coati}{\snowman}{\mouse}{\moles}{\sloth}{\pig}{\cat}{\hippo}{\rhino}{\bee}{\anteater}}
 
 \newcommand{\tikzling}[1][]{%
-	\pgfmathrandomitem{\tikzling at random}{tikzlings}%
-	\tikzling at random[#1]
+  \pgfmathrandomitem{\tikzling at random}{tikzlings}%
+  \tikzling at random[#1]
 }



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