summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tikzlings
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikzlings')
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty395
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty93
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-apes.sty401
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty92
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty122
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty101
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty130
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty100
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty106
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty193
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty103
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty123
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty84
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty4
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty112
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-meerkats.sty340
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty72
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty110
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty52
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty78
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty70
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty112
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty123
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty117
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty181
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty101
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty110
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty74
-rw-r--r--Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty8
30 files changed, 2437 insertions, 1276 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex b/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex
index 449b2ce5b13..7fcc0e83971 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlibrarytikzlings.code.tex
@@ -8,7 +8,7 @@
% https://github.com/samcarter/tikzlings
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikzlings}
@@ -29,6 +29,6 @@
\tikzset{
tikzling/.pic={\tikzling},
- tikzling/.search also={,/tikz,/pgf,/thing},
- thing/.search also={,/tikz,/pgf},
+ tikzling/.search also={,/tikz,/pgf,/thing},
+ thing/.search also={,/tikz,/pgf},
} \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
index 9c41b7cfdef..ef2fb63bebf 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty
@@ -9,13 +9,15 @@
% https://github.com/samcarter/tikzlings
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-addons}[2022/06/17 version v1.0 Draw additional items for the tikzlings]
+\ProvidesPackage{tikzlings-addons}[2025/01/05 version v2.2 Draw additional items for the tikzlings]
\RequirePackage{tikz}
\usetikzlibrary{patterns} % for the wizard hat
+\usetikzlibrary{decorations.shapes} % for sombrero
+\usetikzlibrary{decorations.pathmorphing}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -56,60 +58,81 @@
\end{scope}%
}
+\def\thing@listhead{}
+\def\thing@listacces{}
+\def\thing@headtext{head}
+\def\thing@accesstext{acess}
+
+\ExplSyntaxOn
+\NewDocumentCommand{\thing@ini}{om}{
+ \expandafter\newif\csname ifthing@#2\endcsname
+ \def\thing@tmp{#1}
+ \ifx\thing@headtext\thing@tmp
+ \tl_put_right:Nn \thing@listhead { {#2} }
+ \fi
+ \ifx\thing@accesstext\thing@tmp
+ \tl_put_right:Nn \thing@listacces { {#2} }
+ \fi
+}
+\ExplSyntaxOff
+
% Hats %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifthing@hat
-\newif\ifthing@tophat
-\newif\ifthing@beret
-\newif\ifthing@strawhat
-\newif\ifthing@harlequin
-\newif\ifthing@witch
-\newif\ifthing@magichat
-\newif\ifthing@crown
-\newif\ifthing@queencrown
-\newif\ifthing@kingcrown
-\newif\ifthing@santa
-\newif\ifthing@chef
-\newif\ifthing@graduate
-\newif\ifthing@alien
+\thing@ini[head]{hat}
+\thing@ini[head]{tophat}
+\thing@ini[head]{beret}
+\thing@ini[head]{strawhat}
+\thing@ini[head]{harlequin}
+\thing@ini[head]{witch}
+\thing@ini[head]{magichat}
+\thing@ini[head]{crown}
+\thing@ini[head]{queencrown}
+\thing@ini[head]{kingcrown}
+\thing@ini[head]{santa}
+\thing@ini[head]{chef}
+\thing@ini[head]{graduate}
+\thing@ini[head]{sombrero}
+\thing@ini[head]{alien}
% Communication %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifthing@book
-\newif\ifthing@signpost
+\thing@ini[acess]{book}
+\thing@ini[acess]{signpost}
\newif\ifthing@speech
\newif\ifthing@think
% Food %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifthing@pizza
+\thing@ini[acess]{pizza}
\newif\ifthing@davidlikespineapplepizza
-\newif\ifthing@cheese
-\newif\ifthing@baguette
-\newif\ifthing@cake
-\newif\ifthing@icecream
-\newif\ifthing@milkshake
-\newif\ifthing@wine
-\newif\ifthing@cocktail
+\thing@ini[acess]{cheese}
+\thing@ini[acess]{baguette}
+\thing@ini[acess]{cake}
+\thing@ini[acess]{icecream}
+\thing@ini[acess]{milkshake}
+\thing@ini[acess]{wine}
+\thing@ini[acess]{cocktail}
+\thing@ini[acess]{banana}
% Sport %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifthing@cricket
-\newif\ifthing@hockey
-\newif\ifthing@football
+\thing@ini[acess]{cricket}
+\thing@ini[acess]{hockey}
+\thing@ini[acess]{football}
% Other %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newif\ifthing@crystalball
-\newif\ifthing@magicwand
-\newif\ifthing@rollingpin
-\newif\ifthing@lightsaber
-\newif\ifthing@torch
-\newif\ifthing@basket
-\newif\ifthing@easter
-\newif\ifthing@crozier
-\newif\ifthing@shovel
-\newif\ifthing@pickaxe
-\newif\ifthing@strawbroom
-\newif\ifthing@broom
-\newif\ifthing@umbrella
-\newif\ifthing@umbrellaclosed
-\newif\ifthing@handbag
+\thing@ini[acess]{crystalball}
+\thing@ini[acess]{magicwand}
+\thing@ini[acess]{rollingpin}
+\thing@ini[acess]{lightsaber}
+\thing@ini[acess]{torch}
+\thing@ini[acess]{basket}
+\thing@ini[acess]{easter}
+\thing@ini[acess]{crozier}
+\thing@ini[acess]{shovel}
+\thing@ini[acess]{pickaxe}
+\thing@ini[acess]{strawbroom}
+\thing@ini[acess]{broom}
+\thing@ini[acess]{umbrella}
+\thing@ini[acess]{umbrellaclosed}
+\thing@ini[acess]{handbag}
+\thing@ini[acess]{stick}
\tikzset{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% General
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -121,62 +144,71 @@
% Hats
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- hat/.code = \thing@hattrue
+ hat/.code = \thing@hattrue
\def\thing@hat{#1},
- hat/.default = blue!40!black,
- tophat/.code = \thing@tophattrue
+ hat/.default = blue!40!black,
+ tophat/.code = \thing@tophattrue
\def\thing@tophat{#1},
top hat/.forward to = /thing/tophat,
tophat/.default = black!90!white,
- beret/.code = \thing@berettrue
+ beret/.code = \thing@berettrue
\def\thing@beret{#1},
- beret/.default = black,
+ beret/.default = black,
strawhat/.code = \thing@strawhattrue
\def\thing@strawhat{#1},
straw hat/.forward to = /thing/strawhat,
strawhat/.default = gray!30!white,
ribbon/.code = \def\thing@ribbon{#1},
ribbon = black,
- harlequin/.code = \thing@harlequintrue
+ harlequin/.code = \thing@harlequintrue
\def\thing@harlequin{#1},
harlequin/.default = blue,
- niuqelrah/.code = \def\thing@niuqelrah{#1},
- niuqelrah = red,
- witch/.code = \thing@witchtrue
- \def\thing@witch{#1},
- witch/.default = black,
- magichat/.code = \thing@magichattrue
+ niuqelrah/.code = \def\thing@niuqelrah{#1},
+ niuqelrah = red,
+ witch/.code = \thing@witchtrue
+ \def\thing@witch{#1},
+ witch/.default = black,
+ magichat/.code = \thing@magichattrue
\def\thing@magichat{#1},
magic hat/.forward to = /thing/magichat,
magichat/.default = violet,
magicstars/.code = \def\thing@magicstars{#1},
- magic stars/.forward to = /thing/magicstars,
- magicstars = yellow!80!brown,
- crown/.code = \thing@crowntrue
+ magic stars/.forward to = /thing/magicstars,
+ magicstars = yellow!80!brown,
+ crown/.code = \thing@crowntrue
\def\thing@crown{#1},
- crown/.default = yellow!90!orange,
- queencrown/.code = \thing@queencrowntrue
+ crown/.default = yellow!90!orange,
+ queencrown/.code = \thing@queencrowntrue
\def\thing@queencrown{#1},
queen crown/.forward to = /thing/queencrown,
queencrown/.default = yellow,
- kingcrown/.code = \thing@kingcrowntrue
+ kingcrown/.code = \thing@kingcrowntrue
\def\thing@kingcrown{#1},
king crown/.forward to = /thing/kingcrown,
kingcrown/.default = gray,
- santa/.code = \thing@santatrue
+ santa/.code = \thing@santatrue
\def\thing@santa{#1},
santa/.default = red!80!black,
- chef/.code = \thing@cheftrue
- \def\thing@chef{#1},
- chef/.default = gray!20!white,
- graduate/.code = \thing@graduatetrue
+ chef/.code = \thing@cheftrue
+ \def\thing@chef{#1},
+ chef/.default = gray!20!white,
+ graduate/.code = \thing@graduatetrue
\def\thing@graduate{#1},
graduate/.default = black,
- tassel/.code = \def\thing@tassel{#1},
+ tassel/.code = \def\thing@tassel{#1},
tassel = red,
- alien/.code = \thing@alientrue
+ sombrero/.code = \thing@sombrerotrue
+ \def\thing@sombrero{#1},
+ sombrero/.default = orange!70!yellow,
+ sombreroa/.code = \def\thing@sombreroa{#1},
+ sombreroa = green!70!blue,
+ sombrerob/.code = \def\thing@sombrerob{#1},
+ sombrerob = red,
+ sombreroc/.code = \def\thing@sombreroc{#1},
+ sombreroc = blue,
+ alien/.code = \thing@alientrue
\def\thing@alien{#1},
- alien/.default = green,
+ alien/.default = green,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Communication
@@ -189,17 +221,17 @@
book color/.forward to = /thing/bookcolour,
bookcolor/.forward to = /thing/bookcolour,
bookcolour = brown,
- signpost/.code = \thing@signposttrue
+ signpost/.code = \thing@signposttrue
\def\thing@signpost{#1},
sign post/.forward to = /thing/signpost,
signcolour/.code = \def\thing@signcolour{#1},
sign colour/.forward to = /thing/signcolour,
sign color/.forward to = /thing/signcolour,
- signcolor/.forward to = /thing/signcolour,
- signcolour = brown!50!black,
+ signcolor/.forward to = /thing/signcolour,
+ signcolour = brown!50!black,
signback/.code = \def\thing@signback{#1},
sign back/.forward to = /thing/signback,
- signback = green!40!black,
+ signback = green!40!black,
speech/.code = \thing@speechtrue
\def\thing@speech{#1},
think/.code = \thing@thinktrue
@@ -207,7 +239,7 @@
bubblecolour/.code = \def\thing@bubblecolour{#1},
bubble colour/.forward to = /thing/bubblecolour,
bubble color/.forward to = /thing/bubblecolour,
- bubblecolor/.forward to = /thing/bubblecolour,
+ bubblecolor/.forward to = /thing/bubblecolour,
bubblecolour = gray!30!white,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -216,12 +248,12 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
pizza/.code = \thing@pizzatrue,
davidlikespineapplepizza/.code = \thing@davidlikespineapplepizzatrue
- \thing@speechtrue
+ \thing@speechtrue
\def\thing@speech{\scalebox{\scalingfactor}{\scalebox{0.9}{\tiny ih, che schifo!}}},
david likes pineapple pizza/.forward to = /thing/davidlikespineapplepizza,
cheese/.code = \thing@cheesetrue
\def\thing@cheese{#1},
- cheese/.default = yellow!30!orange!60!white,
+ cheese/.default = yellow!30!orange!60!white,
baguette/.code = \thing@baguettetrue
\def\thing@baguette{#1},
baguette/.default = brown,
@@ -240,14 +272,17 @@
flavourb = white!70!brown,
flavourc/.code = \def\thing@flavourc{#1},
flavour c/.forward to = /thing/flavourc,
- flavourc = red!50!white,
+ flavourc = red!50!white,
milkshake/.code = \thing@milkshaketrue
- \def\thing@milkshake{#1},
- milkshake/.default = red!20!white,
+ \def\thing@milkshake{#1},
+ milkshake/.default = red!20!white,
wine/.code = \thing@winetrue
- \def\thing@wine{#1},
- wine/.default = red!70!black,
- cocktail/.code = \thing@cocktailtrue,
+ \def\thing@wine{#1},
+ wine/.default = red!70!black,
+ cocktail/.code = \thing@cocktailtrue,
+ banana/.code = \thing@bananatrue
+ \def\thing@banana{#1},
+ banana/.default = yellow!80!orange,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Sport
@@ -269,11 +304,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
crystalball/.code = \thing@crystalballtrue
\def\thing@crystalball{#1},
- crystal ball/.forward to = /thing/crystalball,
- crystalball/.default = cyan,
+ crystal ball/.forward to = /thing/crystalball,
+ crystalball/.default = cyan,
magicwand/.code = \thing@magicwandtrue,
magic want/.forward to = /thing/magicwand,
- rollingpin/.code = \thing@rollingpintrue
+ rollingpin/.code = \thing@rollingpintrue
\def\thing@rollingpin{#1},
rolling pin/.forward to = /thing/rollingpin,
rollingpin/.default = brown,
@@ -330,7 +365,12 @@
umbrella closed/.forward to = /thing/umbrellaclosed,
handbag/.code = \thing@handbagtrue
\def\thing@handbag{#1},
- handbag/.default = red!70!black,
+ handbag/.default = red!70!black,
+ stick/.code = \thing@sticktrue
+ \def\thing@stick{#1},
+ stick/.default = brown!50!black,
+ leaf/.store in = \thing@leaf,
+ leaf = green!70!red,
}
\def\thing@draw{%
@@ -345,6 +385,7 @@
\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}%
\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+\pgfmathsetmacro{\decoscalefactor}{sign(\tmpscaleA)*sign(\tmpscaleD)*\scalingfactor}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -355,15 +396,15 @@
% Hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@hat
\fill[\thing@hat,rotate around={-15:(-0.3,2.01)}] (-0.3,2.01) rectangle (0.46,2.31);
- \fill[\thing@hat] (0.05,1.92) ellipse[x radius=0.6, y radius=0.1, rotate=-15];
- \fill[\thing@hat] (0.14,2.2) ellipse[x radius=0.37, y radius=0.08, rotate=-15];
+ \fill[\thing@hat] (0.05,1.92) ellipse[x radius=0.6, y radius=0.1, rotate=-15];
+ \fill[\thing@hat] (0.14,2.2) ellipse[x radius=0.37, y radius=0.08, rotate=-15];
\fi
%
% Tophat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@tophat
\fill[\thing@tophat] (0.1,1.94) ellipse[x radius=0.48, y radius=0.1, rotate=-15];
\fill[\thing@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@tophat] (0.21,2.385) ellipse[x radius=0.37, y radius=0.08, rotate=-15];
+ \fill[\thing@tophat] (0.21,2.385) ellipse[x radius=0.37, y radius=0.08, rotate=-15];
\fi
%
% Beret %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -378,13 +419,13 @@
% Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@strawhat
\begin{scope}[xshift=-16,rotate=12,yshift=-1]
- \fill[\thing@strawhat,rotate=-15] (0.44,2.0) ellipse[x radius=0.75, y radius=0.1];
+ \fill[\thing@strawhat,rotate=-15] (0.44,2.0) ellipse[x radius=0.75, y radius=0.1];
\fill[\thing@strawhat,rotate=-15] (0.1,2.05) rectangle (0.78,2.5);
- \fill[\thing@strawhat,rotate=-15] (0.44,2.5) ellipse[x radius=0.34, y radius=0.08];
+ \fill[\thing@strawhat,rotate=-15] (0.44,2.5) ellipse[x radius=0.34, y radius=0.08];
\fill[\thing@strawhat,rotate=-15] (-0.3,2.02) -- (1.18,2.02) -- (0.78,2.2) -- (0.1,2.2) -- cycle;
- \fill[\thing@ribbon,rotate=-15] (0.44,2.2) ellipse[x radius=0.34, y radius=0.08];
+ \fill[\thing@ribbon,rotate=-15] (0.44,2.2) ellipse[x radius=0.34, y radius=0.08];
\fill[\thing@ribbon,rotate=-15] (0.1,2.2) rectangle (0.78,2.3);
- \fill[\thing@strawhat,rotate=-15] (0.44,2.3) ellipse[x radius=0.34, y radius=0.08];
+ \fill[\thing@strawhat,rotate=-15] (0.44,2.3) ellipse[x radius=0.34, y radius=0.08];
\end{scope}
\fi
%
@@ -401,8 +442,8 @@
%
% witch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@witch
- \begin{scope}[xshift=-26]
- \fill[\thing@witch,rotate=-15] (0.44,2.13) ellipse[x radius=0.75, y radius=0.17];
+ \begin{scope}[xshift=-26]
+ \fill[\thing@witch,rotate=-15] (0.44,2.13) ellipse[x radius=0.75, y radius=0.17];
\fill[\thing@witch,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2);
\end{scope}
\fi
@@ -410,9 +451,7 @@
% magic hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@magichat
\begin{scope}[xshift=-26]
- \path[preaction={fill, \thing@magichat!100},rotate=-5,
- pattern=fivepointed stars, pattern color=\thing@magicstars!100]
- (0.36,1.95)--(0.86,2.95)--(1.20,1.85);
+ \path[preaction={fill, \thing@magichat!100},rotate=-5,pattern=fivepointed stars, pattern color=\thing@magicstars!100] (0.36,1.95)--(0.86,2.95)--(1.20,1.85);
\end{scope}
\fi
%
@@ -479,17 +518,8 @@
% Santa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@santa
\begin{scope}[xshift=-26]
- \fill[\thing@santa]
- (0.430,1.803) .. controls (0.590,2.174) and (0.837,2.065) ..
- (1.118,1.954) .. controls (1.679,1.731) and (1.328,1.193) ..
- (1.647,1.057) .. controls (1.638,1.255) and (1.745,2.104) ..
- (1.168,2.270) .. controls (0.867,2.356) and (0.536,2.280) ..
- (0.430,1.803) -- cycle;
- \fill[white!80!brown]
- (0.44,1.733) .. controls (0.211,2.299) and (1.082,2.188) ..
- (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[\thing@santa] (0.430,1.803) .. controls (0.590,2.174) and (0.837,2.065) .. (1.118,1.954) .. controls (1.679,1.731) and (1.328,1.193) .. (1.647,1.057) .. controls (1.638,1.255) and (1.745,2.104) .. (1.168,2.270) .. controls (0.867,2.356) and (0.536,2.280) .. (0.430,1.803) -- cycle;
+ \fill[white!80!brown] (0.44,1.733) .. controls (0.211,2.299) and (1.082,2.188) .. (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[radius=0.17];
\end{scope}
\fi
@@ -497,7 +527,7 @@
% Chef hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@chef
\begin{scope}[xshift=-26]
- \fill[\thing@chef,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.08];
+ \fill[\thing@chef,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.08];
\fill[\thing@chef,rotate=-15] (0.07,2.1) rectangle (0.81,2.55);
\fill[\thing@chef] (1.01,2.47) circle[radius=0.17];
\fill[\thing@chef] (1.24,2.35) circle[radius=0.15];
@@ -509,7 +539,7 @@
% graduate hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@graduate
\begin{scope}[xshift=-26]
- \fill[\thing@graduate,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.1];
+ \fill[\thing@graduate,rotate=-15] (0.44,2.1) ellipse[x radius=0.37, y radius=0.1];
\fill[\thing@graduate,rotate=-15] (0.07,2.1) rectangle (0.81,2.3);
\fill[\thing@graduate] (0.3,2.25) -- (1.05,2.35) -- (1.7,1.95) -- (0.92,1.85) -- cycle;
\fill[\thing@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;
@@ -517,6 +547,20 @@
\end{scope}
\fi
%
+% sombrero %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifthing@sombrero
+ \fill[\thing@sombrero] (-.45,2) to[in=200] (0,2.8) to[out=-20] (.45,2) -- cycle;
+ \fill[\thing@sombrero] (-0.65, 1.75) .. controls (-0.85, 1.7) and (-0.85, 1.9) .. (-0.85, 1.9) .. controls (-0.30, 2.2) and (0.30, 2.2) .. ( 0.85, 1.9) .. controls ( 0.85, 1.9) and (0.85, 1.7) .. ( 0.65, 1.75) .. controls ( 0.30, 1.95) and (-0.30, 1.95) .. (-0.65, 1.75) -- cycle;
+ \draw[\thing@sombrerob,line width=\scalingfactor*0.8pt] (-0.85, 1.9) .. controls (-0.30, 2.2) and (0.30, 2.2) .. ( 0.85, 1.9);
+ \draw[decorate,decoration={zigzag, amplitude=\decoscalefactor*1pt, segment length=\scalingfactor*6pt},\thing@sombreroa, line width=\scalingfactor*1pt] (-0.81, 1.8) .. controls (-0.30, 2.1) and (0.30, 2.1) .. ( 0.82, 1.8);
+ \begin{scope}
+ \clip (-.45,2) to[in=200] (0,2.8) to[out=-20] (.45,2) -- cycle;
+ \draw[decorate,decoration={zigzag, amplitude=\decoscalefactor*1pt, segment length=\scalingfactor*3pt},\thing@sombreroa, line width=\scalingfactor*1pt] (-.4,2.4) to[bend left] (.4,2.4);
+ \fill[decorate,decoration={shape backgrounds,shape=circle, shape size=\scalingfactor*2pt, shape evenly spread=7}, \thing@sombreroc] (-.3,2.6) to[bend left] (.3,2.6);
+ \fill[decorate,decoration={shape backgrounds,shape=circle,shape size=\scalingfactor*2pt,shape evenly spread=9},\thing@sombreroc] (-.4,2.18) to[bend left] (.4,2.18);
+ \end{scope}
+\fi
+%
% alien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@alien
\fill[\thing@alien,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3);
@@ -534,8 +578,7 @@
% book %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@book
\begin{scope}[xshift=-25,yshift=1]
- \fill[\thing@bookcolour,rotate=-20]
- (0.40,1.20) rectangle (0.80,0.60);
+ \fill[\thing@bookcolour,rotate=-20] (0.40,1.20) rectangle (0.80,0.60);
\node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (0.88,0.70) {\thing@book};%
\end{scope}
\fi
@@ -562,7 +605,7 @@
% think bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@think
\begin{scope}[xshift=-26]
- \fill[\thing@bubblecolour] (2,2.4) ellipse[x radius=0.7, y radius=0.35];
+ \fill[\thing@bubblecolour] (2,2.4) ellipse[x radius=0.7, y radius=0.35];
\fill[\thing@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@think};
\end{scope}
@@ -579,9 +622,9 @@
\begin{scope}[xshift=-28,yshift=2]
\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.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];
@@ -589,23 +632,23 @@
\fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06];
\end{scope}
\fi
-% no pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% not pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@davidlikespineapplepizza
\begin{scope}[xshift=-28,yshift=2]
\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.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[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];
+ \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06];
\end{scope}
\fi
%
@@ -645,7 +688,7 @@
\fill[\thing@cone,rotate=-20] (0.35,1.20)--(0.50,0.60)--(0.75,1.20);
\fill[\thing@flavoura] (0.85,1.03) circle[radius=0.12];
\fill[\thing@flavourb] (1.05,0.95) circle[radius=0.12];
- \fill[\thing@flavourc] (0.95,1.1) circle[radius=0.12];
+ \fill[\thing@flavourc] (0.95,1.1) circle[radius=0.12];
\end{scope}
\fi
%
@@ -655,7 +698,7 @@
\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);
+ \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03);
\fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse[x radius=0.18, y radius=0.4];
\fill[\thing@milkshake, rotate=-10] (0.8,0.94) ellipse[x radius=0.15, y radius=0.36];
\end{scope}
@@ -663,7 +706,7 @@
\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);
+ \fill[red!90!black,rotate=20] (1.2,0.58) rectangle (1.22,0.85);
\end{scope}
\fi
%
@@ -674,11 +717,11 @@
\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);
+ \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03);
\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);
+ \clip[rotate=-10] (0.58,0.5) rectangle (1.02,0.87);
\fill[\thing@wine, rotate=-10] (0.8,1.1) ellipse[x radius=0.15, y radius=0.36];
\end{scope}
\end{scope}
@@ -697,6 +740,19 @@
\end{scope}
\fi
%
+% banana %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifthing@banana
+ \begin{scope}[yshift=27, xshift=7,rotate=25]
+ \fill[\thing@banana!30!] (0.02,0) .. controls (0.21,0.20) and (0.21,0.40) .. (0.02,0.6) arc [start angle=60,end angle=120, radius =0.04] .. controls (0.07,0.40) and (0.07,0.20) .. (-0.02,0) --cycle ;
+ %peel
+ \begin{scope}
+ \clip (-0.04,-0.01) rectangle (0.20,0.3);
+ \fill[\thing@banana] (0.03,0) .. controls (0.22,0.20) and (0.22,0.40) .. (0.03,0.6) arc [start angle=60,end angle=120, radius =0.06] .. controls (0.06,0.40) and (0.06,0.20) .. (-0.03,0);
+ \end{scope}
+ \fill[\thing@banana!60!] (0.12,0.3) arc [start angle=140, end angle=-100, y radius=0.20, x radius=0.06] arc [start angle=-90, end angle=90, y radius=0.15, x radius=0.02] (0.12,0.3) arc [start angle=60, end angle=270, y radius=0.15, x radius=0.1] arc [start angle=270, end angle=90, y radius=0.13, x radius=0.04];
+ \end{scope}
+\fi
+%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Sport
@@ -740,7 +796,7 @@
\ifthing@crystalball
\shade[ball color=\thing@crystalball,opacity=0.7] (0,0.8) circle[radius=0.33];
\fi
-%
+%
% magic wand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@magicwand
\begin{scope}[xshift=-16,yshift=2]
@@ -768,51 +824,36 @@
% torch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@torch
\begin{scope}[xshift=-26]
- \fill[red!50!yellow]
- (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) ..
- (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) ..
- (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) ..
- (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) ..
- (1.4338,1.025) -- cycle;
- \fill[red!25!yellow, scale=0.67, xshift=17, yshift=15]
- (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) ..
- (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) ..
- (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) ..
- (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) ..
- (1.4338,1.025) -- cycle;
- \fill[white!50!yellow, scale=0.4, xshift=53.5, yshift=45.3]
- (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) ..
- (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) ..
- (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) ..
- (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) ..
- (1.4338,1.025) -- cycle;
+ \fill[red!50!yellow] (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. (1.4338,1.025) -- cycle;
+ \fill[red!25!yellow, scale=0.67, xshift=17, yshift=15] (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. (1.4338,1.025) -- cycle;
+ \fill[white!50!yellow, scale=0.4, xshift=53.5, yshift=45.3] (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. (1.4338,1.025) -- cycle;
\fill[\thing@torch,rounded corners=\scalingfactor*1]
(1.1,0.96) -- (0.77,0.25) -- (0.83,0.25) -- (1.3,0.86) -- cycle;
\fill[\thing@torch,rotate=-28] (0.62,1.32) ellipse[x radius=0.2, y radius=0.08];
\end{scope}
\fi%
-%
+%
% basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@basket
\begin{scope}[xshift=-28.5]
\fill[\thing@basket, start angle=180, end angle=360, x radius=0.35, y radius=0.35] (0.65,0.61) arc -- cycle;
\fill[\thing@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@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@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@basket!75!black] (1,0.6) ellipse[x radius=0.3, y radius=0.07];
- \end{scope}
-\fi%
+ \end{scope}
+\fi%
%
% easter basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@easter
\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;
+ \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@eggb, rotate=-5] (0.95,0.72) ellipse[x radius=0.09, y radius=0.13];
\fill[\thing@egga, rotate=10] (0.94,0.42) ellipse[x radius=0.09, y radius=0.13];
\fill[\thing@eggc, rotate=-30] (0.7,1.08) ellipse[x radius=0.09, y radius=0.13];
\end{scope}
- \end{scope}
-\fi%
+ \end{scope}
+\fi%
%
% crozier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifthing@crozier
@@ -821,7 +862,7 @@
\clip [rotate=-20] (0.6,2.3) rectangle (1.1,1.999);
\fill[even odd rule,\thing@crozier] (1.5,1.6) circle[radius=0.2] (1.5,1.6) circle[radius=0.1];
\end{scope}
- \fill[\thing@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);
+ \fill[\thing@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);
\end{scope}
\fi
%
@@ -877,4 +918,38 @@
\fill[\thing@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
%
+% stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifthing@stick
+ \begin{scope}[rotate=-30,yshift=26,xshift=-7]
+ %leaf
+ \begin{scope}[rotate=60, xshift=8.2,yshift=8.1]
+ \fill[\thing@leaf] (-0.01,0) .. controls (-0.1,0) and (-0.02, 0.2) .. (0,0.2) .. controls (0.02, 0.2) and (0.1,0) .. (0.01,0.0);
+ \path[clip] (-0.04,-0.04)-- (-0.01,0) .. controls (-0.1,0) and (-0.02, 0.2) .. (0,0.2) .. controls (0.02, 0.2) and (0.1,0) .. (0.01,0)-- (0.04,-0.04) --cycle;
+ \draw[\thing@leaf!80!, line width=0.1] (0,-0.04) -- (0,0.2) \foreach \i in {0.02,0.04,...,0.2} {(0,\i) -- ++(0.1,\i) (0,\i) -- ++(-0.1,\i)} ;
+ \end{scope}
+ %stick itself
+ \fill[\thing@stick!90!red] (-0.04,0.8) -- (-0.04,0.4) arc[start angle=345,end angle=270,radius=0.03] -- ++(0,-0.01) arc[start angle=90,end angle=15,radius=0.03] -- (-0.04,0) arc [start angle=180, end angle=360 ,x radius=0.04, y radius=0.02] -- (0.04, 0.4) arc [start angle=180, end angle=120, radius=0.08] arc [start angle=-90, end angle=90, x radius=0.02, y radius=0.04] arc [start angle=240, end angle=180, radius=0.08] -- (0.04,0.75) arc [start angle=0, end angle=120 ,x radius=0.04, y radius=0.02] --cycle;
+ \fill[\thing@stick!90!] (0.08, 0.51) ellipse [x radius=0.02, y radius=0.04] (0,0.75) ellipse [x radius=0.04, y radius=0.02] ;
+ \draw[\thing@stick!90!red, line width=0.06] (0.08, 0.51) ellipse [x radius=0.016, y radius=0.032]
+ ellipse [x radius=0.012, y radius=0.024] ellipse [x radius=0.008, y radius=0.016] (0,0.75) ellipse [y radius=0.016, x radius=0.032] ellipse [y radius=0.012, x radius=0.024] ellipse [y radius=0.008, x radius=0.016] ;
+ \fill[\thing@stick!90!red] (0.08, 0.51) ellipse [x radius=0.004, y radius=0.008] (0,0.75) ellipse [x radius=0.008, y radius=0.004];
+ \end{scope}
+\fi
+%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Random items
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\pgfmathdeclarerandomlist{head}{\thing@listhead}
+\pgfmathdeclarerandomlist{accessories}{\thing@listacces}
+
+\def\shufflethings{%
+ \pgfmathrandomitem{\head}{head}%
+ \edef\randomhead{\head}%
+ \pgfmathrandomitem{\accessories}{accessories}%
+ \edef\randomaccessories{\accessories}%
}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
index 6e2b75b30e2..a8dfafb0b69 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-anteaters}[2022/06/17 version v1.0 Drawing anteaters in TikZ]
+\ProvidesPackage{tikzlings-anteaters}[2025/01/05 version v2.2 Drawing anteaters in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -31,6 +31,8 @@
\newif\ifanteater@threeD
\newif\ifanteater@back
\newif\ifanteater@contour
+\newif\ifanteater@leftstep
+\newif\ifanteater@rightstep
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -48,24 +50,28 @@
body/.store in = \anteater@body,
body = red!55!green!75!blue!66!white,
eye/.store in = \anteater@eye,
- eye = \anteater@body!70!brown!50!darkgray,
+ eye = \anteater@body!70!brown!50!darkgray,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \anteater@threeDtrue,
- back/.code = \anteater@backtrue,
+ 3D/.code = \anteater@threeDtrue,
+ leftstep/.code = \anteater@leftsteptrue,
+ left step/.forward to = /anteater/leftstep,
+ rightstep/.code = \anteater@rightsteptrue,
+ right step/.forward to = /anteater/rightstep,
+ back/.code = \anteater@backtrue,
contour/.code = \anteater@contourtrue
\def\anteater@contour{#1},
- contour/.default = black,
- outline/.forward to = /anteater/contour,
+ contour/.default = black,
+ outline/.forward to = /anteater/contour,
}
\def\anteater@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.75,0.1) rectangle (1.12,2.26);
@@ -83,7 +89,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -101,16 +107,25 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname anteaterhookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
- \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \ifanteater@leftstep
+ \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
+ %
+ \ifanteater@rightstep
+ \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
%
% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifanteater@back
@@ -125,9 +140,8 @@
%
% Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifanteater@back
- \anteater@part@draw[\anteater@body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28];
- \anteater@part@draw[\anteater@body!70!brown!50!darkgray]
- (-0,1.47) ellipse [x radius=0.35, y radius=0.23];
+ \anteater@part@draw[\anteater@body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28];
+ \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0,1.47) ellipse [x radius=0.35, y radius=0.23];
\else% back
\anteater@part@draw[\anteater@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@part@draw[\anteater@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;
@@ -136,15 +150,15 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname anteaterhookbelly\endcsname
\csname tikzlinghookbelly\endcsname
- %
+ %
\ifanteater@back
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\anteater@part@draw[\anteater@body] (-0,1.73) ellipse [x radius=0.36, y radius=0.33];
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \anteater@part@draw[\anteater@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@part@draw[\anteater@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@part@draw[\anteater@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@part@draw[\anteater@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% back
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -154,19 +168,18 @@
(-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@part@draw[\anteater@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;
+ \anteater@part@draw[\anteater@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@part@draw[\anteater@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@part@draw[\anteater@body!70!brown!50!darkgray] (0, 1.08) ellipse[x radius=0.08, y radius=0.05];
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\anteater@part@draw[\anteater@eye] (0.23, 1.7) circle[radius=0.05];
- \anteater@part@draw[\anteater@eye] (-0.23, 1.7) circle[radius=0.05];
+ \anteater@part@draw[\anteater@eye] (-0.23, 1.7) circle[radius=0.05];
\fi% back
%
% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -177,7 +190,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname anteaterhookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -190,41 +203,47 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-anteaters}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-anteaters}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic anteater}}
%\anteater
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic anteater can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\anteater[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of the eyes can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\anteater[eye=red]
%\end{tcblisting}
%
+%And the anteater can lift its legs:
+%\begin{tcblisting}{title={Walking}}
+%\anteater[leftstep]
+%\anteater[rightstep,xshift=2cm]
+%\end{tcblisting}
+%
%To view the anteater from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\anteater[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the anteater 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the anteater 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\anteater[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\anteater[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-apes.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-apes.sty
new file mode 100644
index 00000000000..58edf5c636a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-apes.sty
@@ -0,0 +1,401 @@
+ % !TeX root = ./examples/ape.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 https://www.latex-project.org/lppl.txt
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-apes}[2025/01/05 version v2.2 Drawing apes in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\ape}[1][]{%
+ \begin{scope}%
+ \tikzset{/ape/.cd,#1}%
+ \ape@draw%
+ \end{scope}%
+ \thing[#1]%
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname apehookforeground\endcsname
+ \csname tikzlinghookforeground\endcsname
+}
+
+\newif\ifape@threeD
+\newif\ifape@handposition@hearnoevil
+\newif\ifape@handposition@seenoevil
+\newif\ifape@handposition@speaknoevil
+\newif\ifape@handposition@clap
+\newif\ifape@handposition@waving
+\newif\ifape@back
+\newif\ifape@contour
+\newif\ifape@openmouth
+
+\tikzset{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Pass unknown keys on to tikz
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ /ape/.search also={/tikz,/pgf,/thing},
+ /ape/.cd,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % body
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ body/.store in = \ape@body,
+ body = red!15!brown!80!black,
+ eye/.store in = \ape@eye,
+ eye = \ape@body!40!black,
+ eyes/.forward to = /ape/eye,
+ skin/.store in = \ape@skin,
+ skin = \ape@body!50!gray,
+ nose/.store in = \ape@nose,
+ nose = \ape@skin!60!black,
+ mouth/.store in = \ape@mouth,
+ mouth = \ape@skin!50!black,
+ muzzle/.store in = \ape@muzzle,
+ muzzle = \ape@skin!80!white,
+ legs/.store in = \ape@legs,
+ legs = \ape@body!90!black,
+ arms/.store in = \ape@arms,
+ arms = \ape@body!95!black,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % options
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ 3D/.code = \ape@threeDtrue,
+ handposition/.code = \csname ape@handposition@#1true\endcsname,
+ kikazaru/.code = \ape@handposition@hearnoeviltrue,
+ mizaru/.code = \ape@handposition@seenoeviltrue,
+ iwazaru/.code = \ape@handposition@speaknoeviltrue,
+ %clap/.code = \ape@handposition@claptrue, %%% should we support this too?
+ %waving/.code = \ape@handposition@wavingtrue, %%% should we support this too?
+ hearnoevil/.code = \ape@handposition@hearnoeviltrue,
+ seenoevil/.code = \ape@handposition@seenoeviltrue,
+ speaknoevil/.code = \ape@handposition@speaknoeviltrue,
+ back/.code = \ape@backtrue,
+ openmouth/.code = \ape@openmouthtrue,
+ open mouth/.forward to = /ape/openmouth,
+ contour/.code = \ape@contourtrue
+ \def\ape@contour{#1}
+ \def\ape@mouth{#1},
+ contour/.default = black,
+ outline/.forward to = /ape/contour,
+}
+
+\def\ape@draw{%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % minimal bounding box size
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \path (-1.435,0.1) rectangle (1.435, 2.27);
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % 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@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}%
+ \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
+ \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % switch between 2D, 3D and contours, from
+ % https://chat.stackexchange.com/transcript/message/45991801#45991801
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifape@threeD
+ \def\ape@part@draw[##1]{\shade[ball color=##1]}
+ \else% 3D
+ \ifape@contour
+ \def\ape@part@draw[##1]{\draw[##1,\ape@contour,fill=white,line width=\scalingfactor*0.4pt]}
+ \else% contour
+ \def\ape@part@draw[##1]{\fill[##1]}
+ \fi% contour
+ \fi% 3D
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Body parts
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname apehookbackground\endcsname
+ \csname tikzlinghookbackground\endcsname
+ %
+ % Draw backside partially in reversed order %%%%%%%%%%%%%%%%%%%%%%%%
+ \ifape@back
+ % arms / hand for hear-no-evil pose backside %%%%%%%%%%%%%%%%%%%%%
+ \ifape@handposition@hearnoevil%
+ \ape@part@draw[\ape@skin!90!white] (-0.45,1.9) ellipse [x radius=0.3, y radius=0.1,rotate=80];
+ \ape@part@draw[\ape@arms] (-0.55,1.73) {[rotate=-20] arc [start angle=35, end angle=350,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (-0.9,1.61) ellipse[x radius=0.15, y radius=0.6, rotate=-125];
+ \ape@part@draw[\ape@skin!90!white] (0.45,1.9) ellipse [x radius=0.3, y radius=0.1,rotate=100];
+ \ape@part@draw[\ape@arms] (0.55,1.73) {[rotate=20] arc [start angle=145, end angle=-170,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.9,1.61) ellipse[x radius=0.15, y radius=0.6, rotate=125];
+ % see-no-evil pose backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@seenoevil%
+ \ape@part@draw[\ape@skin!90!white] (-0.325,1.91) ++(390:0.3 and 0.1) arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (-0.59,1.97) arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15] --cycle;
+ \ape@part@draw[\ape@arms] (-0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=70];
+ \ape@part@draw[\ape@skin!90!white] (0.325,1.91) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.59,1.97) arc [start angle=155, end angle=-155,x radius=0.475, y radius=0.15] --cycle;
+ \ape@part@draw[\ape@arms] (0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=110];
+ % speak-no-evil pose backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@speaknoevil%
+ \ape@part@draw[\ape@arms] (-0.85,1.55) ellipse[x radius=0.15, y radius=0.6, rotate=-100];
+ \ape@part@draw[\ape@skin!90!white] (-0.275,1.46) ++(390:0.3 and 0.1) arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (-0.53,1.52) {[rotate=-10] arc [start angle=15, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.85,1.55) ellipse[x radius=0.15, y radius=0.6, rotate=100];
+ \ape@part@draw[\ape@skin!90!white] (0.275,1.46) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.53,1.52) {[rotate=10] arc [start angle=165, end angle=-155,x radius=0.475, y radius=0.15]} --cycle;
+ % clapping hand pose backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@clap%
+ \ape@part@draw[\ape@skin!90!white] (-0.115,2.85) ellipse [x radius=0.3, y radius=0.1,rotate=80];
+ \ape@part@draw[\ape@arms] (-0.23,2.65) {[rotate=10] arc [start angle=35, end angle=350,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (-0.75,1.95) ellipse[x radius=0.15, y radius=0.6, rotate=30];
+ \ape@part@draw[\ape@skin!90!white] (0.115,2.85) ellipse [x radius=0.3, y radius=0.1,rotate=100];
+ \ape@part@draw[\ape@arms] (0.23,2.65) {[rotate=-10] arc [start angle=145, end angle=-170,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.75,1.95) ellipse[x radius=0.15, y radius=0.6, rotate=150];
+ % waving left hand pose backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@waving%
+ \ape@part@draw[\ape@arms] (-0.53,1.115) {[rotate=5] arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (-0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=-60];
+ \ape@part@draw[\ape@skin!90!white] (0.97,3.2) ++(390:0.3 and 0.1) {[rotate=90] arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle};
+ \ape@part@draw[\ape@arms] (1.35,2.74) {[rotate=100] arc [start angle=335, end angle=25,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=-70];
+ % default pose backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else
+ \ape@part@draw[\ape@arms] (-0.53,1.115) {[rotate=5] arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (-0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=-60];
+ \ape@part@draw[\ape@arms] (0.53,1.115) {[rotate=-5] arc [start angle=155, end angle=-155,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=60];
+ \fi\fi\fi\fi\fi
+ %
+ % legs / feet backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@skin] (1.2,0.27) ++(210:0.3 and 0.1) {[rotate=180] arc [start angle=210, end angle=-30,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=-30, end angle=-240,x radius=0.15, y radius=0.03]}-- cycle};
+ \ape@part@draw[\ape@legs] (0.7,0.67) ellipse[x radius=0.15, y radius=0.6, rotate=-30];
+ \ape@part@draw[\ape@legs] (0.52,0.68) ellipse[x radius=0.15, y radius=0.7, rotate=-45];
+ \ape@part@draw[\ape@skin] (-1.2,0.27) ++(-30:0.3 and 0.1) {[rotate=180] arc [start angle=-30, end angle=210,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=210, end angle=420,x radius=0.15, y radius=0.03]}-- cycle};
+ \ape@part@draw[\ape@legs] (-0.7,0.67) ellipse[x radius=0.15, y radius=0.6, rotate=30];
+ \ape@part@draw[\ape@legs] (-0.52,0.68) ellipse[x radius=0.15, y radius=0.7, rotate=45];
+ %
+ % head backside %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@body] (0, 1.76) circle[x radius=0.4,y radius=0.5];
+ \fi% back
+ %
+ % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@body] ( 0.5, 0.8 ) .. controls ( 0.5 , 0.4) and ( 0.35, 0.17) .. ( 0.0, 0.17) .. controls (-0.35, 0.17) and (-0.5 , 0.4) .. (-0.5, 0.8 ) .. controls (-0.9 , 1.6) and (-0.4, 1.65) .. ( 0.0, 1.65) .. controls ( 0.4, 1.65) and ( 0.9 , 1.6) .. ( 0.5, 0.8) -- cycle;
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname apehookbelly\endcsname
+ \csname tikzlinghookbelly\endcsname
+ %
+ % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \unless\ifape@back
+ % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@body] (0, 1.76) circle[x radius=0.4,y radius=0.5];
+ \ape@part@draw[\ape@skin] (0, 1.76) circle[x radius=0.32,y radius=0.40];
+ %
+ % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@eye] (-0.08, 1.9) ellipse[x radius=0.04, y radius=0.04];
+ \ape@part@draw[\ape@eye] (0.08, 1.9) ellipse[x radius=0.04, y radius=0.04];
+ %
+ % muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@muzzle] (0, 1.55) ellipse[x radius=0.28, y radius=0.2];
+ %
+ % mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifape@openmouth
+ \ifape@threeD
+ \fill[\ape@mouth] (0,1.5) ellipse[x radius=0.05,y radius=0.07];
+ \else
+ \ape@part@draw[\ape@mouth] (0,1.5) ellipse[x radius=0.05,y radius=0.07];
+ \fi
+ \else
+ \draw[\ape@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
+ \fi
+ %
+ % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifape@threeD
+ \fill[\ape@nose] (-0.03, 1.63) ellipse[x radius=0.025, y radius=0.035, rotate=30 ];
+ \fill[\ape@nose] (0.03, 1.63) ellipse[x radius=0.025, y radius=0.035, rotate=-30 ];
+ \else
+ \ape@part@draw[\ape@nose] (-0.03, 1.63) ellipse[x radius=0.025, y radius=0.035, rotate=30 ];
+ \ape@part@draw[\ape@nose] (0.03, 1.63) ellipse[x radius=0.025, y radius=0.035, rotate=-30 ];
+ \fi
+ %
+ % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@skin] (0.675,0.2) ++(-30:0.3 and 0.1) arc [start angle=-30, end angle=210,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=210, end angle=420,x radius=0.15, y radius=0.03]}-- cycle;
+ \ape@part@draw[\ape@skin] (-0.675,0.2) ++(210:0.3 and 0.1) arc [start angle=210, end angle=-30,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=-30, end angle=-240,x radius=0.15, y radius=0.03]}-- cycle;
+ %
+ % Legs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ape@part@draw[\ape@legs] (0.52,0.68) ellipse[x radius=0.15, y radius=0.7, rotate=-45];
+ \ape@part@draw[\ape@legs] (0.7,0.67) ellipse[x radius=0.15, y radius=0.6, rotate=-30];
+ \ape@part@draw[\ape@legs] (-0.52,0.68) ellipse[x radius=0.15, y radius=0.7, rotate=45];
+ \ape@part@draw[\ape@legs] (-0.7,0.67) ellipse[x radius=0.15, y radius=0.6, rotate=30];
+ %
+ % hear-no-evil pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifape@handposition@hearnoevil
+ \ape@part@draw[\ape@arms] (-0.9,1.61) ellipse[x radius=0.15, y radius=0.6, rotate=-125];
+ \ape@part@draw[\ape@skin!90!white] (-0.45,1.9) ellipse [x radius=0.3, y radius=0.1,rotate=80];
+ \ape@part@draw[\ape@arms] (-0.55,1.73) {[rotate=-20] arc [start angle=35, end angle=350,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.9,1.61) ellipse[x radius=0.15, y radius=0.6, rotate=125];
+ \ape@part@draw[\ape@skin!90!white] (0.45,1.9) ellipse [x radius=0.3, y radius=0.1,rotate=100];
+ \ape@part@draw[\ape@arms] (0.55,1.73) {[rotate=20] arc [start angle=145, end angle=-170,x radius=0.475, y radius=0.15]} --cycle;
+ % see-no-evil pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@seenoevil
+ \ape@part@draw[\ape@arms] (-0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=70];
+ \ape@part@draw[\ape@skin!90!white] (-0.325,1.91) ++(390:0.3 and 0.1) arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (-0.59,1.97) arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15] --cycle;
+ \ape@part@draw[\ape@arms] (0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=110];
+ \ape@part@draw[\ape@skin!90!white] (0.325,1.91) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.59,1.97) arc [start angle=155, end angle=-155,x radius=0.475, y radius=0.15] --cycle;
+ % speak-no-evil pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@speaknoevil%
+ \ape@part@draw[\ape@arms] (-0.85,1.55) ellipse[x radius=0.15, y radius=0.6, rotate=-100];
+ \ape@part@draw[\ape@skin!90!white] (-0.275,1.46) ++(390:0.3 and 0.1) arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (-0.53,1.52) {[rotate=-10] arc [start angle=15, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.85,1.55) ellipse[x radius=0.15, y radius=0.6, rotate=100];
+ \ape@part@draw[\ape@skin!90!white] (0.275,1.46) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.53,1.52) {[rotate=10] arc [start angle=165, end angle=-155,x radius=0.475, y radius=0.15]} --cycle;
+ % clapping pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@clap%
+ \ape@part@draw[\ape@arms] (-0.75,1.95) ellipse[x radius=0.15, y radius=0.6, rotate=30];
+ \ape@part@draw[\ape@skin!90!white] (-0.115,2.85) ellipse [x radius=0.3, y radius=0.1,rotate=80];
+ \ape@part@draw[\ape@arms] (-0.23,2.65) {[rotate=10] arc [start angle=35, end angle=350,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.75,1.95) ellipse[x radius=0.15, y radius=0.6, rotate=150];
+ \ape@part@draw[\ape@skin!90!white] (0.115,2.85) ellipse [x radius=0.3, y radius=0.1,rotate=100];
+ \ape@part@draw[\ape@arms] (0.23,2.65) {[rotate=-10] arc [start angle=145, end angle=-170,x radius=0.475, y radius=0.15]} --cycle;
+ % waving hand pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else\ifape@handposition@waving%
+ \ape@part@draw[\ape@arms] (-0.93,1.70) ellipse[x radius=0.15, y radius=0.6, rotate=70];
+ \ape@part@draw[\ape@skin!90!white] (-0.97,3.2) ++(150:0.3 and 0.1) {[rotate=-90] arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle};
+ \ape@part@draw[\ape@arms] (-1.35,2.74) {[rotate=80] arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=60];
+ \ape@part@draw[\ape@skin!90!white] (0.325,1.05) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.53,1.115) {[rotate=-5] arc [start angle=155, end angle=-155,x radius=0.475, y radius=0.15]} --cycle;
+ % normal pose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \else
+ \ape@part@draw[\ape@arms] (-0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=-60];
+ \ape@part@draw[\ape@skin!90!white] (-0.325,1.05) ++(390:0.3 and 0.1) arc [start angle=390, end angle=150,x radius=0.3, y radius=0.1] {[rotate=10] arc [start angle=150, end angle=-60,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (-0.53,1.115) {[rotate=5] arc [start angle=25, end angle=335,x radius=0.475, y radius=0.15]} --cycle;
+ \ape@part@draw[\ape@arms] (0.9,1.25) ellipse[x radius=0.15, y radius=0.6, rotate=60];
+ \ape@part@draw[\ape@skin!90!white] (0.325,1.05) ++(150:0.3 and 0.1) arc [start angle=150, end angle=390,x radius=0.3, y radius=0.1] {[rotate=-10] arc [start angle=30, end angle=240,x radius=0.15, y radius=0.03] } -- cycle;
+ \ape@part@draw[\ape@arms] (0.53,1.115) {[rotate=-5] arc [start angle=155, end angle=-155,x radius=0.475, y radius=0.15]} --cycle;
+ \fi\fi\fi\fi\fi%
+ \fi%
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname apehookbody\endcsname
+ \csname tikzlinghookbody\endcsname
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Documentation
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\clearpage
+%\section[Ape]{Sandra, the orangutan}
+%
+%\emph{The ape was kindly contributed by @NuzzleTOO. It is named after an orangutan who was freed from living alone in a zoo in Bueonos Aires and taken to a sanctuary for great apes after temporarily becoming legally a non-human person.}
+%
+%\subsection{Package name}
+%
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-apes}
+%\end{samcode}
+%\end{tcolorbox}
+%
+%\subsection{Basic Usage}
+%
+%\begin{tcblisting}{title={Basic ape}}
+%\ape
+%\end{tcblisting}
+%
+%\subsection{Options}
+%
+%The basic ape can be modified by changing its colour:
+%\begin{tcblisting}{title={Body colour}}
+%\ape[body=blue]
+%\end{tcblisting}
+%
+%In addition to the colour of the body, the colour of various body parts can be adjusted:
+%\begin{tcblisting}{title={Eye colour}}
+%\ape[eye=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Nose colour}}
+%\ape[nose=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Mouth colour}}
+%\ape[mouth=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Muzzle colour}}
+%\ape[muzzle=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Skin colour}}
+%\ape[skin=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Arm colour}}
+%\ape[arms=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Leg colour}}
+%\ape[legs=red]
+%\end{tcblisting}
+%
+%The ape make can make use of it hands in different ways:
+%\begin{tcblisting}{title={Clapping ape}}
+%\ape[handposition=clap]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Waving ape}}
+%\ape[handposition=waving]
+%\end{tcblisting}
+%
+%Including the gestures of the three mystic apes \textbf{Mizaru} (see no evil), \textbf{Kikazaru} (hear no evil) and \textbf{Iwazaru} (speak no evil):
+%\begin{tcblisting}{title={See no evil}}
+%\ape[handposition=seenoevil]
+%\end{tcblisting}
+%\begin{tcblisting}{title={hear no evil}}
+%\ape[handposition=hearnoevil]
+%\end{tcblisting}
+%\begin{tcblisting}{title={speak no evil}}
+%\ape[handposition=speaknoevil]
+%\end{tcblisting}
+% As shortcuts, these three apes are also available via
+%\saminline|\ape[seenoevil]|, \saminline|\ape[hearnoevil]|, \saminline|\ape[speaknoevil]| and \saminline|\ape[mizaru]|, \saminline|\ape[kikazaru]|, \saminline|\ape[iwazaru]|.
+%
+%To see a hooting ape:
+%\begin{tcblisting}{title={Hooting ape}}
+%\ape[openmouth]
+%\end{tcblisting}
+%
+%To view the ape from behind:
+%\begin{tcblisting}{title={Back view}}
+%\ape[back]
+%\end{tcblisting}
+%
+%The key \saminline|3D| will make the ape 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
+%\ape[3D]
+%\end{tcblisting}
+%
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
+%\ape[contour=black]
+%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty
index 3d1bbb27fd6..3c0880f950c 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bats.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bats}[2022/06/17 version v1.0 Drawing bats in TikZ]
+\ProvidesPackage{tikzlings-bats}[2025/01/05 version v2.2 Drawing bats in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,13 +26,14 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname bathookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifbat@threeD
\newif\ifbat@back
\newif\ifbat@contour
\newif\ifbat@teeth
+\newif\ifbat@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -50,39 +51,41 @@
body/.store in = \bat@body,
body = black!75!white,
ears/.store in = \bat@ears,
- ears = \bat@body,
+ ears = \bat@body,
eye/.store in = \bat@eye,
eye = white,
pupil/.store in = \bat@pupil,
pupil = black,
mouth/.store in = \bat@mouth,
- mouth = black,
+ mouth = black,
feet/.store in = \bat@feet,
- feet = orange,
+ feet = orange,
wings/.store in = \bat@wings,
- wings = 1,
+ wings = 1,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- teeth/.code = \bat@teethtrue
- \def\bat@teeth{#1},
+ teeth/.code = \bat@teethtrue
+ \def\bat@teeth{#1},
teeth/.default = white,
- 3D/.code = \bat@threeDtrue,
- back/.code = \bat@backtrue,
+ openmouth/.code = \bat@openmouthtrue,
+ open mouth/.forward to = /bat/openmouth,
+ 3D/.code = \bat@threeDtrue,
+ back/.code = \bat@backtrue,
contour/.code = \bat@contourtrue
\def\bat@contour{#1}
\def\bat@antennas{#1}
\def\bat@mouth{#1},
- contour/.default = black,
- outline/.forward to = /bat/contour,
+ contour/.default = black,
+ outline/.forward to = /bat/contour,
}
\def\bat@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.44,0.0) rectangle (0.44, 2.2);
@@ -99,7 +102,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -117,7 +120,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -171,13 +174,17 @@
%
% Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifbat@teeth
- \bat@part@draw[\bat@teeth] (-0.1,1.36) -- (-0.12,1.3) -- (-0.14,1.38) -- cycle;
- \bat@part@draw[\bat@teeth] (0.1,1.36) -- (0.12,1.3) -- (0.14,1.38) -- cycle;
+ \bat@part@draw[\bat@teeth] (-0.1,1.36) -- (-0.12,1.3) -- (-0.14,1.38) -- cycle;
+ \bat@part@draw[\bat@teeth] (0.1,1.36) -- (0.12,1.3) -- (0.14,1.38) -- cycle;
\fi
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\bat@mouth,line width=\scalingfactor*0.4pt] (0.18, 1.42) arc [start angle=-40, end angle=-140, radius=0.23];
- %
+ \ifbat@openmouth
+ \filldraw[\bat@mouth,line width=\scalingfactor*0.4pt] (0.18, 1.42) arc [start angle=-40, end angle=-140, radius=0.23];
+ \else
+ \draw[\bat@mouth,line width=\scalingfactor*0.4pt] (0.18, 1.42) arc [start angle=-40, end angle=-140, radius=0.23];
+ \fi
+ %
%
\fi% back
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -198,63 +205,68 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-bats}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-bats}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic bat}}
%\bat
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic bat can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\bat[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\bat[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\bat[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\bat[mouth=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Ear colour}}
%\bat[ears=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\bat[feet=red]
%\end{tcblisting}
%
-%The spread of the wings can be adjusted by passing values between 0 and 1 to the \lstinline|wings| option:
-%\begin{tcblisting}{}
+% The bat can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\bat[openmouth]
+%\end{tcblisting}
+%
+%With the \saminline|wings| option, one can adjust the spread of the wings. It accepts values between~0 and~1:
+%\begin{tcblisting}{title={Wing span}}
%\bat[wings=0.5]
%\end{tcblisting}
%
-%To turn the bat into a vampire bat, the \lstinline|teeth| option can be used:
-%\begin{tcblisting}{}
+%To turn the bat into a vampire bat, the \saminline|teeth| option can be used:
+%\begin{tcblisting}{title={Vampire}}
%\bat[teeth=white]
%\end{tcblisting}
%
%To view the bat from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\bat[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the bat 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the bat 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\bat[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\bat[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
index 22fbe6c3f32..a85104c34ef 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bears}[2022/06/17 version v1.0 Draw teddy bears in TikZ]
+\ProvidesPackage{tikzlings-bears}[2025/01/05 version v2.2 Draw teddy bears in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -31,6 +31,7 @@
\newif\ifbear@threeD
\newif\ifbear@back
\newif\ifbear@contour
+\newif\ifbear@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -46,29 +47,31 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \bear@body,
- body = brown,
+ body = brown!70!black,
eye/.store in = \bear@eye,
- eye = \bear@body!30!black,
+ eye = \bear@body!42!black,
mouth/.store in = \bear@mouth,
- mouth = \bear@body!30!black,
+ mouth = \bear@body!42!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \bear@threeDtrue,
- back/.code = \bear@backtrue,
+ openmouth/.code = \bear@openmouthtrue,
+ open mouth/.forward to = /bear/openmouth,
+ 3D/.code = \bear@threeDtrue,
+ back/.code = \bear@backtrue,
contour/.code = \bear@contourtrue
\def\bear@contour{#1}
\def\bear@mouth{#1},
- contour/.default = black,
- outline/.forward to = /bear/contour,
+ contour/.default = black,
+ outline/.forward to = /bear/contour,
}
\def\bear@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.8, 0.0) rectangle (0.8, 2.13);
@@ -85,7 +88,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -102,8 +105,20 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+ % generating saturated/brighter version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\bear@body}{\bear@model}{\bear@colorspec}
+ \convertcolorspec{\bear@model}{\bear@colorspec}{hsb}{\bear@hsbcolorspec}
+ \pgfmathsetmacro{\bear@hue}{(array({\bear@hsbcolorspec},0))}
+ \pgfmathsetmacro{\bear@sat}{(array({\bear@hsbcolorspec},1))-0.38}
+ \pgfmathsetmacro{\bear@bright}{(array({\bear@hsbcolorspec},2))+0.35}
+ \definecolor{bear@bright}{hsb}{\bear@hue,\bear@sat,\bear@bright}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -111,19 +126,19 @@
\csname tikzlinghookbackground\endcsname
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@body!70!black] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50];
- \bear@part@draw[\bear@body!70!black] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50];
+ \bear@part@draw[\bear@body] (0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=-50];
+ \bear@part@draw[\bear@body] (-0.525,0.9) ellipse[x radius=0.35, y radius=0.15, rotate=50];
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifbear@back
- \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28];
- \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body] (0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body] (-0.425, 0.3) circle[radius=0.28];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65];
+ \bear@part@draw[\bear@body] (0,0.75) ellipse[x radius=0.55, y radius=0.65];
\unless\ifbear@back
- \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
+ \bear@part@draw[bear@bright] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -132,36 +147,40 @@
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifbear@back
- \bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle[radius=0.28];
- \bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle[radius=0.28];
- \bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle[radius=0.17];
- \bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle[radius=0.17];
+ \bear@part@draw[\bear@body] (0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[\bear@body] (-0.425, 0.3) circle[radius=0.28];
+ \bear@part@draw[bear@bright] (0.425, 0.3) circle[radius=0.17];
+ \bear@part@draw[bear@bright] (-0.425, 0.3) circle[radius=0.17];
\fi% back
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle[radius=0.15];
- \bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle[radius=0.15];
+ \bear@part@draw[\bear@body] (0.375, 1.95) circle[radius=0.15];
+ \bear@part@draw[\bear@body] (-0.375, 1.95) circle[radius=0.15];
\unless\ifbear@back
- \bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle[radius=0.1];
- \bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle[radius=0.1];
+ \bear@part@draw[bear@bright] (0.375, 1.95) circle[radius=0.1];
+ \bear@part@draw[bear@bright] (-0.375, 1.95) circle[radius=0.1];
\fi% back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@body!70!black] (0, 1.55) circle[radius=0.5];
+ \bear@part@draw[\bear@body] (0, 1.55) circle[radius=0.5];
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifbear@back
%
% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse[x radius=0.28, y radius=0.2];
- \bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse[x radius=0.15, y radius=0.08];
+ \bear@part@draw[bear@bright] (0, 1.4) ellipse[x radius=0.28, y radius=0.2];
+ \bear@part@draw[bear@bright!60!red] (0, 1.5) ellipse[x radius=0.15, y radius=0.08];
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bear@part@draw[\bear@eye] (-0.155, 1.7) circle[radius=0.05];
- \bear@part@draw[\bear@eye] (0.155, 1.7) circle[radius=0.05];
+ \bear@part@draw[\bear@eye] (-0.155, 1.7) circle[radius=0.05];
+ \bear@part@draw[\bear@eye] (0.155, 1.7) circle[radius=0.05];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\bear@mouth,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16];
+ \ifbear@openmouth
+ \filldraw[\bear@mouth,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16];
+ \else
+ \draw[\bear@mouth,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16];
+ \fi
%
\fi% back
%
@@ -183,61 +202,66 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-bears}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-bears}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic bear}}
%\bear
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic teddy bear can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\bear[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\bear[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\bear[mouth=red]
%\end{tcblisting}
%
+% The bear can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\bear[openmouth]
+%\end{tcblisting}
+%
%To view the teddy bear from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\bear[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the teddy bear 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the teddy bear 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\bear[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\bear[contour=black]
%\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!
+%The B\"ar and Ulrike Fischer wrote the fantastic \saminline|bearwear| package, that provides many different clothing options for the \saminline|TikZbears|. All the other \tikzlings admire them for the nice clothing!
%
%A short example:
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Bearwear example}}
%%\usepackage{bearwear}
%\bear
%\bearwear[
-% long sleeves,
+% 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}.
+%Many more options and examples can be found in the package documentation \url{https://ctan.org/pkg/bearwear}.
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
index 9fec259bdbd..18d8ff9bcde 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bees}[2022/06/17 version v1.0 Drawing bees in TikZ]
+\ProvidesPackage{tikzlings-bees}[2025/01/05 version v2.2 Drawing bees in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,12 +26,13 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname beehookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifbee@threeD
\newif\ifbee@back
\newif\ifbee@contour
+\newif\ifbee@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -49,36 +50,38 @@
body/.store in = \bee@body,
body = yellow!70!orange,
hands/.store in = \bee@hands,
- hands = black,
+ hands = black,
wings/.store in = \bee@wings,
- wings = blue!20!cyan!30!white,
+ wings = blue!20!cyan!30!white,
stripes/.store in = \bee@stripes,
- stripes = black,
+ stripes = black,
antennas/.store in = \bee@antennas,
- antennas = black,
+ antennas = black,
eye/.store in = \bee@eye,
- eye = black,
+ eye = black,
mouth/.store in = \bee@mouth,
- mouth = black,
+ mouth = black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \bee@threeDtrue,
- back/.code = \bee@backtrue,
+ openmouth/.code = \bee@openmouthtrue,
+ open mouth/.forward to = /bee/openmouth,
+ 3D/.code = \bee@threeDtrue,
+ back/.code = \bee@backtrue,
contour/.code = \bee@contourtrue
\def\bee@contour{#1}
\def\bee@antennas{#1}
\def\bee@mouth{#1},
- contour/.default = black,
- outline/.forward to = /bee/contour,
+ contour/.default = black,
+ outline/.forward to = /bee/contour,
}
\def\bee@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.88,0.1) rectangle (0.88, 2.4);
@@ -95,7 +98,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -113,11 +116,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname beeshookbackground\endcsname
+ \csname beehookbackground\endcsname
\csname tikzlinghookbackground\endcsname
%
\ifbee@back
@@ -141,18 +144,11 @@
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{scope}
- \bee@part@draw[\bee@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;
- \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;
- % stripes
- \bee@part@draw[\bee@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}
+ \bee@part@draw[\bee@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;
+ \bee@part@draw[\bee@stripes] (-0.3845, 1.2427).. controls (-0.3978, 1.1967) and (-0.4102, 1.1508) .. (-0.4213, 1.1051).. controls (-0.339, 1.0724) and (-0.1703, 1.05) .. (0.025, 1.05).. controls (0.2024, 1.05) and (0.3578, 1.0685) .. (0.4466, 1.0964).. controls (0.4345, 1.1426) and (0.4206, 1.1889) .. (0.4053, 1.2351).. controls (0.3136, 1.2136) and (0.1774, 1.2) .. (0.025, 1.2).. controls (-0.1445, 1.2) and (-0.2941, 1.2169) .. (-0.3845, 1.2427) -- cycle(-0.4505, 0.9692).. controls (-0.4588, 0.9242) and (-0.4654, 0.88) .. (-0.4704, 0.8366).. controls (-0.4375, 0.7877) and (-0.2284, 0.75) .. (0.025, 0.75).. controls (0.2433, 0.75) and (0.4285, 0.778) .. (0.4966, 0.817).. controls (0.4925, 0.8629) and (0.4858, 0.9099) .. (0.4772, 0.9575).. controls (0.3973, 0.9236) and (0.2251, 0.9) .. (0.025, 0.9).. controls (-0.1973, 0.9) and (-0.3855, 0.929) .. (-0.4505, 0.9692) -- cycle(-0.475, 0.65) -- (-0.475, 0.5798).. controls (-0.4712, 0.5424) and (-0.465, 0.5067) .. (-0.4563, 0.4729).. controls (-0.3973, 0.4309) and (-0.2042, 0.4) .. (0.025, 0.4).. controls (0.2141, 0.4) and (0.3785, 0.421) .. (0.4635, 0.452).. controls (0.4809, 0.5028) and (0.4921, 0.5583) .. (0.4975, 0.6175).. controls (0.43, 0.5782) and (0.2442, 0.55) .. (0.025, 0.55).. controls (-0.2511, 0.55) and (-0.475, 0.5947) .. (-0.475, 0.65) -- cycle(-0.3628, 0.2869).. controls (-0.2871, 0.2009) and (-0.1703, 0.15) .. (-0.0, 0.15).. controls (0.1603, 0.15) and (0.2765, 0.1965) .. (0.3564, 0.2753).. controls (0.2681, 0.2596) and (0.1523, 0.25) .. (0.025, 0.25).. controls (-0.1315, 0.25) and (-0.2711, 0.2644) .. (-0.3628, 0.2869) -- cycle;
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname beeshookbelly\endcsname
+ \csname beehookbelly\endcsname
\csname tikzlinghookbelly\endcsname
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -171,16 +167,20 @@
\else% back
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bee@part@draw[\bee@eye] (-0.15,1.8) circle[radius=0.05];
- \bee@part@draw[\bee@eye] (0.15,1.8) circle[radius=0.05];
+ \bee@part@draw[\bee@eye] (-0.15,1.8) circle[radius=0.05];
+ \bee@part@draw[\bee@eye] (0.15,1.8) circle[radius=0.05];
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bee@part@draw[\bee@hands] (-0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=25];
\bee@part@draw[\bee@hands] (0.25,0.88) circle[x radius=0.07,y radius=0.2, rotate=-25];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\bee@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16];
- %
+ \ifbee@openmouth
+ \filldraw[\bee@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16];
+ \else
+ \draw[\bee@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.6) arc [start angle=-40, end angle=-140, radius=0.16];
+ \fi
+ %
% Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[\bee@antennas,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3);
\fill[\bee@antennas,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3);
@@ -190,7 +190,7 @@
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname beeshookbody\endcsname
+ \csname beehookbody\endcsname
\csname tikzlinghookbody\endcsname
%
}
@@ -207,15 +207,15 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-bees}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-bees}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic bee}}
%\bee
%\end{tcblisting}
%
@@ -227,36 +227,41 @@
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Antenna colour}}
%\bee[antennas=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\bee[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\bee[mouth=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Wing colour}}
%\bee[wings=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Hand colour}}
%\bee[hands=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Stripe colour}}
%\bee[stripes=red]
%\end{tcblisting}
%
+% The bee can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\bee[openmouth]
+%\end{tcblisting}
+%
%To view the bee from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={back view}}
%\bee[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the bee 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the bee 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\bee[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\bee[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty
index 65febf3bbc2..8f618899f58 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bugs.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-bugs}[2022/06/17 version v1.0 Drawing bugs in TikZ]
+\ProvidesPackage{tikzlings-bugs}[2025/01/05 version v2.2 Drawing bugs in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,12 +26,15 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname bughookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifbug@threeD
+\newif\ifbug@leftstep
+\newif\ifbug@rightstep
\newif\ifbug@back
\newif\ifbug@contour
+\newif\ifbug@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -49,40 +52,46 @@
body/.store in = \bug@body,
body = black!90!white,
arms/.store in = \bug@arms,
- arms = red!80!black,
+ arms = red!80!black,
wings/.store in = \bug@wings,
- wings = red!80!black,
+ wings = red!80!black,
dots/.store in = \bug@dots,
- dots = black!90!white,
+ dots = black!90!white,
antennas/.store in = \bug@antennas,
- antennas = red!80!black,
+ antennas = red!80!black,
eye/.store in = \bug@eye,
eye = white,
pupil/.store in = \bug@pupil,
pupil = black,
mouth/.store in = \bug@mouth,
- mouth = red,
+ mouth = red,
feet/.store in = \bug@feet,
- feet = red!80!black,
+ feet = red!80!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \bug@threeDtrue,
- back/.code = \bug@backtrue,
+ 3D/.code = \bug@threeDtrue,
+ leftstep/.code = \bug@leftsteptrue,
+ left step/.forward to = /bug/leftstep,
+ rightstep/.code = \bug@rightsteptrue,
+ right step/.forward to = /bug/rightstep,
+ openmouth/.code = \bug@openmouthtrue,
+ open mouth/.forward to = /bug/openmouth,
+ back/.code = \bug@backtrue,
contour/.code = \bug@contourtrue
\def\bug@contour{#1}
\def\bug@antennas{#1}
\def\bug@mouth{#1},
- contour/.default = black,
- outline/.forward to = /bug/contour,
+ contour/.default = black,
+ outline/.forward to = /bug/contour,
}
\def\bug@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.92,0.02) rectangle (0.92, 2.36);
@@ -99,7 +108,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -117,33 +126,41 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname bugshookbackground\endcsname
+ \csname bughookbackground\endcsname
\csname tikzlinghookbackground\endcsname
%
\ifbug@back
- %
+ %
% Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[\bug@antennas,line width=\scalingfactor*0.8pt] (0.1134, 1.911) .. controls (0.0917, 2.0537) and (0.0986, 2.1999) .. (0.1608, 2.2816) .. controls (0.245, 2.3919) and (0.3278, 2.3011) .. (0.3272, 2.2192) .. controls (0.3266, 2.1341) and (0.2237, 2.0423) .. (0.1978, 2.1538);
\draw[\bug@antennas,line width=\scalingfactor*0.8pt] (-0.1134, 1.911) .. controls (-0.0917, 2.0537) and (-0.0986, 2.1999) .. (-0.1608, 2.2816) .. controls (-0.245, 2.3919) and (-0.3278, 2.3011) .. (-0.3272, 2.2192) .. controls (-0.3266, 2.1341) and (-0.2237, 2.0423) .. (-0.1978, 2.1538);
\else% back
%
% Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle;
+ \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle;
\bug@part@draw[\bug@wings] (0.0955, 1.4222) .. controls (0.2086, 1.6765) and (0.692, 1.2508) .. (0.8174, 1.0023) .. controls (0.9304, 0.7786) and (0.9533, 0.379) .. (0.7355, 0.2548) .. controls (0.5988, 0.1768) and (0.4043, 0.3269) .. (0.3054, 0.4494) .. controls (0.097, 0.7075) and (-0.0589, 1.0749) .. (0.0955, 1.4222) -- cycle;
\ifbug@contour
- \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
- \else% contour
- \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
+ \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
+ \else% contour
+ \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
\fi% contour
\fi% back
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bug@part@draw[\bug@feet] (0.2,0.1) ellipse[x radius=0.18, y radius=0.06];
- \bug@part@draw[\bug@feet] (-0.2,0.1) ellipse[x radius=0.18, y radius=0.06];
+ \ifbug@leftstep
+ \bug@part@draw[\bug@feet] (-0.2,0.12) ellipse[x radius=0.18, y radius=0.06];
+ \else% step
+ \bug@part@draw[\bug@feet] (-0.2,0.1) ellipse[x radius=0.18, y radius=0.06];
+ \fi% step
+ \ifbug@rightstep
+ \bug@part@draw[\bug@feet] (0.2,0.12) ellipse[x radius=0.18, y radius=0.06];
+ \else% step
+ \bug@part@draw[\bug@feet] (0.2,0.1) ellipse[x radius=0.18, y radius=0.06];
+ \fi% step
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\bug@part@draw[\bug@body] ( 0.55, 0.75) .. controls ( 0.55, 0.40) and ( 0.55, 0.08) .. ( 0.00, 0.08) .. controls (-0.55, 0.08) and (-0.55, 0.40) .. (-0.55, 0.75) .. controls (-0.55, 1.13) and (-0.30, 1.44) .. ( 0.00, 1.44) .. controls ( 0.30, 1.44) and ( 0.55, 1.13) .. ( 0.55, 0.75) -- cycle;
@@ -152,19 +169,19 @@
\bug@part@draw[\bug@body] (0,1.7) circle [radius=0.37];
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname bugshookbelly\endcsname
+ \csname bughookbelly\endcsname
\csname tikzlinghookbelly\endcsname
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifbug@back
%
% Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle;
+ \bug@part@draw[\bug@wings] (-0.0955, 1.4222) .. controls (-0.2086, 1.6765) and (-0.692, 1.2508) .. (-0.8174, 1.0023) .. controls (-0.9304, 0.7786) and (-0.9533, 0.379) .. (-0.7355, 0.2548) .. controls (-0.5988, 0.1768) and (-0.4043, 0.3269) .. (-0.3054, 0.4494) .. controls (-0.097, 0.7075) and (0.0589, 1.0749) .. (-0.0955, 1.4222) -- cycle;
\bug@part@draw[\bug@wings] (0.0955, 1.4222) .. controls (0.2086, 1.6765) and (0.692, 1.2508) .. (0.8174, 1.0023) .. controls (0.9304, 0.7786) and (0.9533, 0.379) .. (0.7355, 0.2548) .. controls (0.5988, 0.1768) and (0.4043, 0.3269) .. (0.3054, 0.4494) .. controls (0.097, 0.7075) and (-0.0589, 1.0749) .. (0.0955, 1.4222) -- cycle;
\ifbug@contour
- \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
+ \bug@part@draw[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
\else% contour
- \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
+ \fill[\bug@dots] (-0.2,0.85) circle [radius=0.08] (-0.5,0.8) circle [radius=0.08] (-0.8,0.75) circle [radius=0.08] (-0.35,0.6) circle [radius=0.08] (-0.65,0.5) circle [radius=0.08] (-0.3,1.05) circle [radius=0.08] (-0.6,1.1) circle [radius=0.08] (-0.35,1.35) circle [radius=0.08] (0.2,0.85) circle [radius=0.08] (0.5,0.8) circle [radius=0.08] (0.8,0.75) circle [radius=0.08] (0.35,0.6) circle [radius=0.08] (0.65,0.5) circle [radius=0.08] (0.3,1.05) circle [radius=0.08] (0.6,1.1) circle [radius=0.08] (0.35,1.35) circle [radius=0.08];
\fi% contour
\else% back
%
@@ -179,8 +196,12 @@
\bug@part@draw[\bug@arms] (0.25,0.88) circle[x radius=0.07,y radius=0.18, rotate=-35];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\bug@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.56) arc [start angle=-40, end angle=-140, radius=0.16];
- %
+ \ifbug@openmouth
+ \filldraw[\bug@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.56) arc [start angle=-40, end angle=-140, radius=0.16];
+ \else
+ \draw[\bug@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.56) arc [start angle=-40, end angle=-140, radius=0.16];
+ \fi
+ %
% Antenna %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[\bug@antennas,line width=\scalingfactor*0.8pt] (0.1134, 1.911) .. controls (0.0917, 2.0537) and (0.0986, 2.1999) .. (0.1608, 2.2816) .. controls (0.245, 2.3919) and (0.3278, 2.3011) .. (0.3272, 2.2192) .. controls (0.3266, 2.1341) and (0.2237, 2.0423) .. (0.1978, 2.1538);
\draw[\bug@antennas,line width=\scalingfactor*0.8pt] (-0.1134, 1.911) .. controls (-0.0917, 2.0537) and (-0.0986, 2.1999) .. (-0.1608, 2.2816) .. controls (-0.245, 2.3919) and (-0.3278, 2.3011) .. (-0.3272, 2.2192) .. controls (-0.3266, 2.1341) and (-0.2237, 2.0423) .. (-0.1978, 2.1538);
@@ -188,7 +209,7 @@
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \csname bugshookbody\endcsname
+ \csname bughookbody\endcsname
\csname tikzlinghookbody\endcsname
%
}
@@ -205,59 +226,70 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-bugs}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-bugs}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic bug}}
%\bug
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic bug can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\bug[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Antenna Colour}}
%\bug[antennas=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\bug[eye=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\bug[pupil=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\bug[mouth=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Arm colour}}
%\bug[arms=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Wing colour}}
%\bug[wings=blue]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\bug[feet=blue]
%\end{tcblisting}
%
+% The bug can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\bug[openmouth]
+%\end{tcblisting}
+%
+%And the bug can lift its legs:
+%\begin{tcblisting}{title={Walking}}
+%\bug[leftstep]
+%\bug[rightstep,xshift=2cm]
+%\end{tcblisting}
+%
%To view the bug from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\bug[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the bug 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the bug 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\bug[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\bug[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
index d34599cd7aa..41dc7521ad7 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-cats}[2022/06/17 version v1.0 Drawing cats in TikZ]
+\ProvidesPackage{tikzlings-cats}[2025/01/05 version v2.2 Drawing cats in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -24,13 +24,13 @@
\else
\ifdefined\pdfrandomseed % pdflatex
\else
- \ifdefined\randomseed
+ \ifdefined\randomseed
\let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
\else
\let\pdfrandomseed\time % pre TL19 xelatex
\fi
\fi
- \pgfmathsetseed{\number\pdfrandomseed}
+ \pgfmathsetseed{\number\pdfrandomseed}
\fi
\ExplSyntaxOff
@@ -59,6 +59,7 @@
\newif\ifcat@schroedinger
\newif\ifcat@back
\newif\ifcat@contour
+\newif\ifcat@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -103,21 +104,23 @@
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \cat@threeDtrue,
schroedinger/.code = \cat@schroedingertrue,
- back/.code = \cat@backtrue,
+ openmouth/.code = \cat@openmouthtrue,
+ open mouth/.forward to = /cat/openmouth,
+ 3D/.code = \cat@threeDtrue,
+ back/.code = \cat@backtrue,
contour/.code = \cat@contourtrue
\def\cat@contour{#1}
\def\cat@whiskers{#1},
- contour/.default = black,
- outline/.forward to = /cat/contour,
+ contour/.default = black,
+ outline/.forward to = /cat/contour,
}
\def\cat@draw{%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.56,0.1) rectangle (1.63, 2.22);
@@ -134,7 +137,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -152,7 +155,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -164,7 +167,7 @@
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcat@back
- \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18];
+ \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18];
\cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18];
\fi% back
%
@@ -176,10 +179,8 @@
\csname tikzlinghookbelly\endcsname
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \cat@part@draw[\cat@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;
- \cat@part@draw[\cat@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;
+ \cat@part@draw[\cat@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;
+ \cat@part@draw[\cat@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;
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cat@part@draw[\cat@body] (0,1.64) circle[radius=0.44];
@@ -196,7 +197,11 @@
\cat@part@draw[\cat@pupil] ( 0.1720, 1.8071) .. controls ( 0.1720+\cat@pupil@width, 1.7827+\cat@pupil@offset) and ( 0.1720+\cat@pupil@width, 1.7584-\cat@pupil@offset) .. ( 0.1720, 1.7341) .. controls ( 0.1720-\cat@pupil@width, 1.7584-\cat@pupil@offset) and ( 0.1720-\cat@pupil@width, 1.7827+\cat@pupil@offset) .. ( 0.1720, 1.8071) -- cycle;
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\cat@whiskers,line width=\scalingfactor*0.2pt] (-0.16, 1.527) .. controls (-0.16, 1.527) and (-0.062, 1.420) .. ( 0.000, 1.556) .. controls ( 0.062, 1.420) and ( 0.16, 1.527) .. ( 0.16, 1.527);
+ \ifcat@openmouth
+ \filldraw[\cat@whiskers,line width=\scalingfactor*0.2pt] (-0.16, 1.527) .. controls (-0.16, 1.527) and (-0.062, 1.420) .. ( 0.000, 1.556) .. controls ( 0.062, 1.420) and ( 0.16, 1.527) .. ( 0.16, 1.527) (0.16,1.527) arc [start angle=-20, end angle=-160, radius=0.17];
+ \else
+ \draw[\cat@whiskers,line width=\scalingfactor*0.2pt] (-0.16, 1.527) .. controls (-0.16, 1.527) and (-0.062, 1.420) .. ( 0.000, 1.556) .. controls ( 0.062, 1.420) and ( 0.16, 1.527) .. ( 0.16, 1.527);
+ \fi
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cat@part@draw[\cat@nose] (-0.069, 1.6452) .. controls (-0.0524, 1.6613) and (0.0524, 1.6613) .. (0.069, 1.6452) .. controls (0.08, 1.625) and (0.0206, 1.55) .. (0, 1.55) .. controls (-0.0206, 1.55) and (-0.08, 1.625) .. (-0.069, 1.6452) -- cycle;
@@ -210,8 +215,8 @@
\fill[\cat@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@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18];
- \cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18];
+ \cat@part@draw[\cat@paws] (-0.255,0.3) circle[radius=0.18];
+ \cat@part@draw[\cat@paws] (0.255,0.3) circle[radius=0.18];
%
\fi% back
%
@@ -224,7 +229,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.55,0.39) rectangle (0.55, 2.06);
@@ -241,7 +246,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -257,7 +262,7 @@
\fi% 3D
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% Drawing the tomebstone
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -307,50 +312,55 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-cats}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-cats}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic cat}}
%\cat
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic cat can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\cat[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\cat[eye=green]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\cat[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Nose colour}}
%\cat[nose=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Whiskers colour}}
%\cat[whiskers=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Paw colour}}
%\cat[paws=red]
%\end{tcblisting}
%
-%The shape of the \lstinline|pupil| can be changed with the \lstinline|pupilwidth| option:
-%\begin{tcblisting}{}
+% The cat can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\cat[openmouth]
+%\end{tcblisting}
+%
+%The shape of the \saminline|pupil| can be changed with the \saminline|pupilwidth| option:
+%\begin{tcblisting}{title={Width of pupils}}
%\cat[pupilwidth=0.015]
%\end{tcblisting}
%
%Additionally several predefined widths exist:
-%\begin{tcolorbox}
-%\begin{lstlisting}[morekeywords={narrow,medium,wide,very,pupils}]
+%\begin{tcolorbox}[title={Predefined pupil widths}]
+%\begin{samcode}
%\cat[narrow pupils]
%
%\cat[medium pupils]
@@ -358,7 +368,7 @@
%\cat[wide pupils]
%
%\cat[very wide pupils]
-%\end{lstlisting}
+%\end{samcode}
%
%\tcblower
%\begin{tikzpicture}[yshift=2.4cm,xshift=1.8cm]
@@ -369,7 +379,7 @@
%\end{tikzpicture}
%\end{tcolorbox}
%
-%There is also the special option \lstinline|schroedinger|. This cat is both alive and dead as long as you did not compile your document.
+%There is also the special option \saminline|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
@@ -379,22 +389,22 @@
%}
%\renewcommand{\cathookbackground}{}
%\makeatother
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Schrödingers cat}}
%\cat[schroedinger]
%\end{tcblisting}
%\endgroup
%
%To view the cat from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\cat[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the cat 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the cat 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\cat[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\cat[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty
index 1d96fc9d662..ff770860fda 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-chickens.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-chickens}[2022/06/17 version v1.0 Draw chickens in TikZ]
+\ProvidesPackage{tikzlings-chickens}[2025/01/05 version v2.2 Draw chickens in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -31,7 +31,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname chickenhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifchicken@threeD
@@ -53,7 +53,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \chicken@body,
- body = brown!50!orange!70!yellow!80!white,
+ body = brown!90!orange!70!yellow!40!white,
eye/.store in = \chicken@eye,
eye = white!90!gray,
pupil/.store in = \chicken@pupil,
@@ -61,24 +61,24 @@
bill/.store in = \chicken@bill,
bill = yellow,
feet/.store in = \chicken@feet,
- feet = orange!90!yellow,
+ feet = orange!90!yellow,
comb/.store in = \chicken@comb,
- comb = red,
+ comb = red,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3D/.code = \chicken@threeDtrue,
- back/.code = \chicken@backtrue,
+ back/.code = \chicken@backtrue,
contour/.code = \chicken@contourtrue
\def\chicken@contour{#1},
- contour/.default = black,
- outline/.forward to = /chicken/contour,
+ contour/.default = black,
+ outline/.forward to = /chicken/contour,
baby/.code = \chicken@babytrue
\def\chicken@baby{#1}
\def\chicken@bill{\chicken@feet},
- baby/.default = yellow!80!orange,
+ baby/.default = yellow!80!orange,
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -89,7 +89,7 @@
\def\chicken@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.96, 0.08) rectangle (0.96, 2.35);
@@ -106,7 +106,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -123,8 +123,20 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+ % generating saturated version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\chicken@body}{\chicken@model}{\chicken@colorspec}
+ \convertcolorspec{\chicken@model}{\chicken@colorspec}{hsb}{\chicken@hsbcolorspec}
+ \pgfmathsetmacro{\chicken@hue}{(array({\chicken@hsbcolorspec},0))}
+ \pgfmathsetmacro{\chicken@sat}{(array({\chicken@hsbcolorspec},1)+0.5)}
+ \pgfmathsetmacro{\chicken@bright}{(array({\chicken@hsbcolorspec},2))}
+ \definecolor{chicken@bodysat50}{hsb}{\chicken@hue,\chicken@sat,\chicken@bright}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -132,12 +144,12 @@
\csname tikzlinghookbackground\endcsname
%
% Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \chicken@part@draw[\chicken@body] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65];
- \chicken@part@draw[\chicken@body] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43];
- \chicken@part@draw[\chicken@body] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18];
- \chicken@part@draw[\chicken@body] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65];
- \chicken@part@draw[\chicken@body] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43];
- \chicken@part@draw[\chicken@body] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18];
+ \chicken@part@draw[chicken@bodysat50] (0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=-65];
+ \chicken@part@draw[chicken@bodysat50] (0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=-43];
+ \chicken@part@draw[chicken@bodysat50] (0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=-18];
+ \chicken@part@draw[chicken@bodysat50] (-0.57,0.95) ellipse[x radius=0.3, y radius=0.08, rotate=65];
+ \chicken@part@draw[chicken@bodysat50] (-0.64,1.07) ellipse[x radius=0.3, y radius=0.08, rotate=43];
+ \chicken@part@draw[chicken@bodysat50] (-0.66,1.18) ellipse[x radius=0.3, y radius=0.08, rotate=18];
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifchicken@back
@@ -152,8 +164,8 @@
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \chicken@part@draw[\chicken@body!50!white] ( 0.00, 0.33) .. controls (-0.60, 0.33) and (-0.55, 0.65) .. (-0.55, 0.90) .. controls (-0.55, 1.10) and (-0.48, 1.20) .. (-0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) .. controls ( 0.48, 1.20) and ( 0.55, 1.10) .. ( 0.55, 0.90) .. controls ( 0.55, 0.65) and ( 0.60, 0.33) .. ( 0, 0.33) -- cycle;
- \chicken@part@draw[\chicken@body,decoration={snake,amplitude=\scalingfactor*1.5pt,segment length=\scalingfactor*6.1pt}] ( -0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) decorate {arc [start angle=-60,end angle=-120,radius=0.77]} -- cycle;
+ \chicken@part@draw[\chicken@body] ( 0.00, 0.33) .. controls (-0.60, 0.33) and (-0.55, 0.65) .. (-0.55, 0.90) .. controls (-0.55, 1.10) and (-0.48, 1.20) .. (-0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) .. controls ( 0.48, 1.20) and ( 0.55, 1.10) .. ( 0.55, 0.90) .. controls ( 0.55, 0.65) and ( 0.60, 0.33) .. ( 0, 0.33) -- cycle;
+ \chicken@part@draw[chicken@bodysat50,decoration={snake,amplitude=\scalingfactor*1.5pt,segment length=\scalingfactor*6.1pt}] ( -0.39, 1.40) .. controls (-0.32, 1.58) and (-0.32, 2.09) .. ( 0.00, 2.09) .. controls ( 0.32, 2.09) and ( 0.32, 1.58) .. ( 0.39, 1.40) decorate {arc [start angle=-60,end angle=-120,radius=0.77]} -- cycle;
%
% Comb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chicken@part@draw[\chicken@comb] (0.04,2.132) ellipse[x radius=0.22, y radius=0.06, rotate=70];
@@ -175,7 +187,7 @@
% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifchicken@back
\chicken@part@draw[\chicken@comb] (-0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=-20];
- \chicken@part@draw[\chicken@comb] (0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=20];
+ \chicken@part@draw[\chicken@comb] (0.04, 1.57) ellipse[x radius=0.04, y radius=0.08, rotate=20];
\chicken@part@draw[\chicken@bill] (-0.09, 1.7) -- (0, 1.58) -- (0.09, 1.7) arc [start angle=50, end angle=130, radius=0.14] -- cycle;
\fi% back
%
@@ -193,10 +205,10 @@
%
% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifchicken@back
- \chicken@part@draw[\chicken@body] (0.12, 0.795) ellipse[x radius=0.20, y radius=0.06, rotate=58];
- \chicken@part@draw[\chicken@body] (0.04, 0.87) ellipse[x radius=0.25, y radius=0.06, rotate=80];
- \chicken@part@draw[\chicken@body] (-0.03, 0.83) ellipse[x radius=0.20, y radius=0.06, rotate=102];
- \chicken@part@draw[\chicken@body] (-0.082, 0.76) ellipse[x radius=0.17, y radius=0.06, rotate=130];
+ \chicken@part@draw[chicken@bodysat50] (0.12, 0.795) ellipse[x radius=0.20, y radius=0.06, rotate=58];
+ \chicken@part@draw[chicken@bodysat50] (0.04, 0.87) ellipse[x radius=0.25, y radius=0.06, rotate=80];
+ \chicken@part@draw[chicken@bodysat50] (-0.03, 0.83) ellipse[x radius=0.20, y radius=0.06, rotate=102];
+ \chicken@part@draw[chicken@bodysat50] (-0.082, 0.76) ellipse[x radius=0.17, y radius=0.06, rotate=130];
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -213,7 +225,7 @@
\def\chicken@drawbaby{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.53, 0.1) rectangle (0.53, 1.22);
@@ -230,7 +242,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -248,7 +260,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts (center: x=0.925)
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -341,62 +353,62 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-chickens}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-chickens}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic chicken}}
%\chicken
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic chicken can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\chicken[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Comb colour}}
%\chicken[comb=green]
%\end{tcblisting}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\chicken[eye=red]
%\end{tcblisting}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil color}}
%\chicken[pupil=red]
%\end{tcblisting}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Bill colour}}
%\chicken[bill=red]
%\end{tcblisting}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\chicken[feet=red]
%\end{tcblisting}
%
-%There is also the special option \lstinline|baby| which will draw a baby chicken called \emph{Pio}:
-%\begin{tcblisting}{}
+%There is also the special option \saminline|baby| which will draw a baby chicken called \emph{Pio}:
+%\begin{tcblisting}{title={Baby chicken}}
%\chicken[baby=yellow]
%\end{tcblisting}
%
%To view the chicken from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\chicken[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the chicken 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the chicken 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\chicken[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\chicken[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
index d98c1398f26..1e5bba28a7b 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-coatis}[2022/06/17 version v1.0 Drawing coatis in TikZ]
+\ProvidesPackage{tikzlings-coatis}[2025/01/05 version v2.2 Drawing coatis in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -30,6 +30,8 @@
\newif\ifcoati@threeD
\newif\ifcoati@sideward
+\newif\ifcoati@leftstep
+\newif\ifcoati@rightstep
\newif\ifcoati@back
\newif\ifcoati@contour
@@ -47,9 +49,9 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \coati@body,
- body = brown!50!darkgray!97!yellow,
+ body = brown!50!darkgray!97!yellow!50!darkgray,
eye/.store in = \coati@eye,
- eye = \coati@body!50!black,
+ eye = coati@bodybright!50!black,
rotatehead/.store in = \coati@rotatehead,
rotate head/.forward to = /coati/rotatehead,
rotatehead = 0,
@@ -58,19 +60,23 @@
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \coati@threeDtrue,
+ 3D/.code = \coati@threeDtrue,
sideward/.code = \coati@sidewardtrue,
- back/.code = \coati@backtrue,
+ leftstep/.code = \coati@leftsteptrue,
+ left step/.forward to = /coati/leftstep,
+ rightstep/.code = \coati@rightsteptrue,
+ right step/.forward to = /coati/rightstep,
+ back/.code = \coati@backtrue,
contour/.code = \coati@contourtrue
\def\coati@contour{#1},
- contour/.default = black,
- outline/.forward to = /coati/contour,
+ contour/.default = black,
+ outline/.forward to = /coati/contour,
}
\def\coati@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.84,0.1) rectangle (1.63,2.26);
@@ -87,7 +93,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -102,75 +108,93 @@
\fi% contour
\fi% 3D
%
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % generating saturated version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\coati@body}{\coati@model}{\coati@colorspec}
+ \convertcolorspec{\coati@model}{\coati@colorspec}{hsb}{\coati@hsbcolorspec}
+ \pgfmathsetmacro{\coati@hue}{(array({\coati@hsbcolorspec},0))}
+ \pgfmathsetmacro{\coati@sat}{(array({\coati@hsbcolorspec},1)+0.1)}
+ \pgfmathsetmacro{\coati@bright}{(array({\coati@hsbcolorspec},2))+0.13}
+ \definecolor{coati@bodybright}{hsb}{\coati@hue,\coati@sat,\coati@bright}
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname coatihookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@body!80!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
- \coati@part@draw[\coati@body!80!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \ifcoati@leftstep
+ \coati@part@draw[coati@bodybright!80!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \coati@part@draw[coati@bodybright!80!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
+ \ifcoati@rightstep
+ \coati@part@draw[coati@bodybright!80!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \coati@part@draw[coati@bodybright!80!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
%
% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifcoati@back
- \coati@part@draw[\coati@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@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1);
- \end{scope}
+ \coati@part@draw[\coati@body] (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@part@draw[coati@bodybright!45!white!95!orange] (1.48, 1.554) -- (1.4139, 1.4752).. controls (1.4389, 1.4583) and (1.4649, 1.4375) .. (1.492, 1.4127) -- (1.5537, 1.4862).. controls (1.5333, 1.5087) and (1.5084, 1.5318) .. (1.48, 1.554) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (1.2166, 1.6794) -- (1.2121, 1.5329).. controls (1.2432, 1.5385) and (1.2764, 1.5364) .. (1.3119, 1.5258) -- (1.3158, 1.6501).. controls (1.2832, 1.6633) and (1.2498, 1.6736) .. (1.2166, 1.6794) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (1.0093, 1.6405).. controls (0.9821, 1.6229) and (0.9566, 1.6014) .. (0.9325, 1.5765) -- (1.0545, 1.4296).. controls (1.0777, 1.4572) and (1.1021, 1.4801) .. (1.1281, 1.4976) -- (1.0093, 1.6405) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange](0.8327, 1.4466).. controls (0.8154, 1.4193) and (0.7988, 1.3901) .. (0.7823, 1.3602) -- (0.9497, 1.2635).. controls (0.9655, 1.2946) and (0.9818, 1.3236) .. (0.9987, 1.3507) -- (0.8327, 1.4466) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.7253, 1.2508).. controls (0.7107, 1.2213) and (0.6961, 1.1912) .. (0.6814, 1.1607) -- (0.859, 1.0582).. controls (0.8717, 1.0897) and (0.8844, 1.1212) .. (0.8975, 1.1514) -- (0.7253, 1.2508) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.5972, 0.9882).. controls (0.5821, 0.9583) and (0.5665, 0.9288) .. (0.5505, 0.8997) -- (0.7501, 0.7845).. controls (0.7627, 0.8154) and (0.7754, 0.8463) .. (0.7878, 0.8781) -- (0.5972, 0.9882) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.464, 0.7574).. controls (0.4448, 0.7293) and (0.4248, 0.7022) .. (0.4037, 0.6767) -- (0.6357, 0.5427).. controls (0.6519, 0.5703) and (0.6676, 0.5997) .. (0.6828, 0.6311) -- (0.464, 0.7574) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange](0.2881, 0.5624).. controls (0.2869, 0.5615) and (0.2857, 0.5604) .. (0.2845, 0.5595).. controls (0.2564, 0.5378) and (0.2295, 0.521) .. (0.2036, 0.5074) -- (0.3683, 0.3141).. controls (0.4022, 0.3288) and (0.4337, 0.3442) .. (0.461, 0.3595) -- (0.2881, 0.5624) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.0822, 0.4628).. controls (0.0453, 0.4543) and (0.0123, 0.4501) .. (-0.0164, 0.445) -- (0.039, 0.2211).. controls (0.0701, 0.2242) and (0.1034, 0.23) .. (0.1379, 0.2379) -- (0.0822, 0.4628) -- cycle;
\fi% back
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@body!80!white] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70];
- \coati@part@draw[\coati@body!80!white] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70];
+ \coati@part@draw[coati@bodybright!80!white] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70];
+ \coati@part@draw[coati@bodybright!80!white] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70];
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@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;
+ \coati@part@draw[\coati@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 coatihookbelly\endcsname
\csname tikzlinghookbelly\endcsname
- %
+ %
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{scope}[rotate around={\coati@rotatehead:(0,1.68)}]
%
% Sidewards head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcoati@sideward
- %
+ %
% Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@body!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16];
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16];
\unless\ifcoati@back
- \coati@part@draw[\coati@body!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16];
+ \coati@part@draw[coati@bodybright!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16];
\fi% back
- %
+ %
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcoati@back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
- %
+ %
% Cheek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifcoati@back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifcoati@back
- \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle[radius=0.09];
+ \coati@part@draw[coati@bodybright!50!black] (-0.605, 1.453) circle[radius=0.09];
\fi% back
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -180,29 +204,29 @@
\fi% back
%
% Right Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@body!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16];
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16];
\unless\ifcoati@back
- \coati@part@draw[\coati@body!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16];
+ \coati@part@draw[coati@bodybright!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16];
\fi% back
%
% Normal Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\else% sidewards
- %
+ %
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcoati@back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
%
% Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifcoati@back
- \coati@part@draw[\coati@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;
+ \coati@part@draw[coati@bodybright!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% back
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \unless\ifcoati@back
- \coati@part@draw[\coati@body!50!black] (0, 1.248) circle[radius=0.09];
+ \unless\ifcoati@back
+ \coati@part@draw[coati@bodybright!50!black] (0, 1.248) circle[radius=0.09];
\fi% back
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -212,37 +236,34 @@
\fi% back
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \coati@part@draw[\coati@body!45!white!95!orange] (0.44, 2.02) circle[radius=0.12];
- \coati@part@draw[\coati@body!45!white!95!orange] (-0.44, 2.02) circle[radius=0.12];
- \unless\ifcoati@back
- \coati@part@draw[\coati@body!80!white] (0.44, 2.02) circle[radius=0.09];
- \coati@part@draw[\coati@body!80!white] (-0.44, 2.02) circle[radius=0.09];
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.44, 2.02) circle[radius=0.12];
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (-0.44, 2.02) circle[radius=0.12];
+ \unless\ifcoati@back
+ \coati@part@draw[coati@bodybright!80!white] (0.44, 2.02) circle[radius=0.09];
+ \coati@part@draw[coati@bodybright!80!white] (-0.44, 2.02) circle[radius=0.09];
\fi% back
- %
+ %
\fi% sidewards
\end{scope}
%
% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifcoati@back
- \coati@part@draw[\coati@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@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.8,1.15)}] (0.6,1.1) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.9,1.35)}] (0.7,1.3) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-50:(1.0,1.5)}] (0.8,1.45) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-80:(1.2,1.6)}] (1.0,1.55) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-130:(1.5,1.5)}] (1.3,1.45) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.55,0.65)}] (0.35,0.6) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-30:(0.65,0.9)}] (0.45,0.85) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-40:(0.35,0.45)}] (0.15,0.4) rectangle ++(0.4,0.1);
- \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-60:(0.05,0.3)}] (-0.15,0.25) rectangle ++(0.4,0.1);
- \end{scope}
+ \coati@part@draw[\coati@body] (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@part@draw[coati@bodybright!45!white!95!orange] (1.48, 1.554) -- (1.4139, 1.4752).. controls (1.4389, 1.4583) and (1.4649, 1.4375) .. (1.492, 1.4127) -- (1.5537, 1.4862).. controls (1.5333, 1.5087) and (1.5084, 1.5318) .. (1.48, 1.554) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (1.2166, 1.6794) -- (1.2121, 1.5329).. controls (1.2432, 1.5385) and (1.2764, 1.5364) .. (1.3119, 1.5258) -- (1.3158, 1.6501).. controls (1.2832, 1.6633) and (1.2498, 1.6736) .. (1.2166, 1.6794) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (1.0093, 1.6405).. controls (0.9821, 1.6229) and (0.9566, 1.6014) .. (0.9325, 1.5765) -- (1.0545, 1.4296).. controls (1.0777, 1.4572) and (1.1021, 1.4801) .. (1.1281, 1.4976) -- (1.0093, 1.6405) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange](0.8327, 1.4466).. controls (0.8154, 1.4193) and (0.7988, 1.3901) .. (0.7823, 1.3602) -- (0.9497, 1.2635).. controls (0.9655, 1.2946) and (0.9818, 1.3236) .. (0.9987, 1.3507) -- (0.8327, 1.4466) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.7253, 1.2508).. controls (0.7107, 1.2213) and (0.6961, 1.1912) .. (0.6814, 1.1607) -- (0.859, 1.0582).. controls (0.8717, 1.0897) and (0.8844, 1.1212) .. (0.8975, 1.1514) -- (0.7253, 1.2508) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.5972, 0.9882).. controls (0.5821, 0.9583) and (0.5665, 0.9288) .. (0.5505, 0.8997) -- (0.7501, 0.7845).. controls (0.7627, 0.8154) and (0.7754, 0.8463) .. (0.7878, 0.8781) -- (0.5972, 0.9882) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.464, 0.7574).. controls (0.4448, 0.7293) and (0.4248, 0.7022) .. (0.4037, 0.6767) -- (0.6357, 0.5427).. controls (0.6519, 0.5703) and (0.6676, 0.5997) .. (0.6828, 0.6311) -- (0.464, 0.7574) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange](0.2881, 0.5624).. controls (0.2869, 0.5615) and (0.2857, 0.5604) .. (0.2845, 0.5595).. controls (0.2564, 0.5378) and (0.2295, 0.521) .. (0.2036, 0.5074) -- (0.3683, 0.3141).. controls (0.4022, 0.3288) and (0.4337, 0.3442) .. (0.461, 0.3595) -- (0.2881, 0.5624) -- cycle;
+ \coati@part@draw[coati@bodybright!45!white!95!orange] (0.0822, 0.4628).. controls (0.0453, 0.4543) and (0.0123, 0.4501) .. (-0.0164, 0.445) -- (0.039, 0.2211).. controls (0.0701, 0.2242) and (0.1034, 0.23) .. (0.1379, 0.2379) -- (0.0822, 0.4628) -- cycle;
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname coatihookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -257,51 +278,57 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-coatis}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-coatis}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic coati}}
%\coati
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic coati can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\coati[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of the eyes can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\coati[eye=red]
%\end{tcblisting}
%
%The head of the coati can be rotated, but please don't overdo this, otherwise his neck might break!
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Rotate head}}
%\coati[rotatehead=-15]
%\end{tcblisting}
%
-%For the head an alternative sidewards facing head is available. It can be combined with the \lstinline|rotatehead| option.
-%\begin{tcblisting}{}
+%For the head an alternative sidewards facing head is available. It can be combined with the \saminline|rotatehead| option.
+%\begin{tcblisting}{title={Sidewards head}}
%\coati[sideward]
%\end{tcblisting}
%
+%And the coati can lift its legs:
+%\begin{tcblisting}{title={Walking}}
+%\coati[leftstep]
+%\coati[rightstep,xshift=2cm]
+%\end{tcblisting}
+%
%To view the coati from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\coati[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the coati 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the coati 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\coati[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\coati[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty
index ffd517febda..d846c1d9d45 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-elephants.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-elephants}[2022/06/17 version v1.0 Draw teddy elephants in TikZ]
+\ProvidesPackage{tikzlings-elephants}[2025/01/05 version v2.2 Draw teddy elephants in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -48,24 +48,34 @@
body/.store in = \elephant@body,
body = gray,
eye/.store in = \elephant@eye,
- eye = \elephant@body!30!black,
+ eye = \elephant@body!30!black,
+ ears/.store in = \elephant@ears,
+ ears = \elephant@body!30!white,
+ feet/.store in = \elephant@feet,
+ feet = \elephant@body!30!white,
+ hands/.store in = \elephant@hands,
+ hands = \elephant@body!30!white,
+ belly/.store in = \elephant@belly,
+ belly = \elephant@body!30!white,
+ tail/.store in = \elephant@tail,
+ tail = \elephant@body!30!white,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \elephant@threeDtrue,
- back/.code = \elephant@backtrue,
+ 3D/.code = \elephant@threeDtrue,
+ back/.code = \elephant@backtrue,
contour/.code = \elephant@contourtrue
\def\elephant@contour{#1},
- contour/.default = black,
- outline/.forward to = /elephant/contour,
+ contour/.default = black,
+ outline/.forward to = /elephant/contour,
}
\def\elephant@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.86, 0.0) rectangle (0.86, 2.17);
@@ -82,7 +92,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -100,7 +110,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -113,16 +123,16 @@
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifelephant@back
- \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28];
+ \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28];
\elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28];
\elephant@part@draw[\elephant@body] (0.57,0.74) circle [radius=0.20];
\elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \elephant@part@draw[\elephant@body] (0,0.75) ellipse[x radius=0.55, y radius=0.65];
+ \elephant@part@draw[\elephant@body] (0,0.75) ellipse[x radius=0.55, y radius=0.65];
\unless\ifelephant@back
- \elephant@part@draw[\elephant@body!30!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
+ \elephant@part@draw[\elephant@belly] (0,0.7) ellipse[x radius=0.35, y radius=0.4];
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -131,26 +141,26 @@
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifelephant@back
- \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28];
+ \elephant@part@draw[\elephant@body] (0.425, 0.3) circle[radius=0.28];
\elephant@part@draw[\elephant@body] (-0.425, 0.3) circle[radius=0.28];
- \elephant@part@draw[\elephant@body!30!white] (0.425, 0.3) circle[radius=0.17];
- \elephant@part@draw[\elephant@body!30!white] (-0.425, 0.3) circle[radius=0.17];
- \elephant@part@draw[\elephant@body] (0.57,0.75) circle [radius=0.20];
- \elephant@part@draw[\elephant@body!30!white] (0.57,0.74) circle [radius=0.12];
+ \elephant@part@draw[\elephant@feet] (0.425, 0.3) circle[radius=0.17];
+ \elephant@part@draw[\elephant@feet] (-0.425, 0.3) circle[radius=0.17];
+ \elephant@part@draw[\elephant@body] (0.57,0.75) circle [radius=0.20];
+ \elephant@part@draw[\elephant@hands] (0.57,0.74) circle [radius=0.12];
\elephant@part@draw[\elephant@body] (-0.57,0.74) circle [radius=0.20];
- \elephant@part@draw[\elephant@body!30!white] (-0.57,0.74) circle [radius=0.12];
+ \elephant@part@draw[\elephant@hands] (-0.57,0.74) circle [radius=0.12];
\fi% back
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\elephant@part@draw[\elephant@body] (0.5, 1.7) ellipse [x radius=0.35,y radius=0.45];
\elephant@part@draw[\elephant@body] (-0.5, 1.7) ellipse [x radius=0.35,y radius=0.45];
\unless\ifelephant@back
- \elephant@part@draw[\elephant@body!30!white] (0.5, 1.7) ellipse [x radius=0.25,y radius=0.35];
- \elephant@part@draw[\elephant@body!30!white] (-0.5, 1.7) ellipse [x radius=0.25,y radius=0.35];
+ \elephant@part@draw[\elephant@ears] (0.5, 1.7) ellipse [x radius=0.25,y radius=0.35];
+ \elephant@part@draw[\elephant@ears] (-0.5, 1.7) ellipse [x radius=0.25,y radius=0.35];
\fi% back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \elephant@part@draw[\elephant@body] (0, 1.55) circle[radius=0.5];
+ \elephant@part@draw[\elephant@body] (0, 1.55) circle[radius=0.5];
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifelephant@back
@@ -165,15 +175,15 @@
\fi% 3D
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \elephant@part@draw[\elephant@eye] (-0.155, 1.7) circle[radius=0.05];
- \elephant@part@draw[\elephant@eye] (0.155, 1.7) circle[radius=0.05];
+ \elephant@part@draw[\elephant@eye] (-0.155, 1.7) circle[radius=0.05];
+ \elephant@part@draw[\elephant@eye] (0.155, 1.7) circle[radius=0.05];
%
\fi% back
%
% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifelephant@back
- \draw[\elephant@body!30!white,line width=\scalingfactor*0.6pt] (0, 0.5904) .. controls (-0.1619, 0.4147) and (0.203, 0.4157) .. (0.2422, 0.2712);
- \elephant@part@draw[\elephant@body!30!white] (0.2008, 0.1949) .. controls (0.2452, 0.2121) and (0.2799, 0.242) .. (0.2691, 0.2755) .. controls (0.2611, 0.3005) and (0.2127, 0.3115) .. (0.1927, 0.2945) .. controls (0.1674, 0.2729) and (0.2082, 0.2383) .. (0.2008, 0.1949) -- cycle;
+ \draw[\elephant@tail,line width=\scalingfactor*0.6pt] (0, 0.5904) .. controls (-0.1619, 0.4147) and (0.203, 0.4157) .. (0.2422, 0.2712);
+ \elephant@part@draw[\elephant@tail] (0.2008, 0.1949) .. controls (0.2452, 0.2121) and (0.2799, 0.242) .. (0.2691, 0.2755) .. controls (0.2611, 0.3005) and (0.2127, 0.3115) .. (0.1927, 0.2945) .. controls (0.1674, 0.2729) and (0.2082, 0.2383) .. (0.2008, 0.1949) -- cycle;
\fi% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -194,41 +204,56 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-elephants}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-elephants}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic elephant}}
%\elephant
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic elephant can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\elephant[body=blue]
%\end{tcblisting}
%
-%In addition to the colour of the body, the colour of the eyes can be adjusted:
-%\begin{tcblisting}{}
+%In addition to the colour of the body, the colour of various body parts can be adjusted:
+%\begin{tcblisting}{title={Ear colour}}
+%\elephant[ears=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Eye colour}}
%\elephant[eye=red]
%\end{tcblisting}
+%\begin{tcblisting}{title={Hand colour}}
+%\elephant[hands=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Belly colour}}
+%\elephant[belly=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Foot colour}}
+%\elephant[feet=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Tail colour}}
+%\elephant[back,tail=red]
+%\end{tcblisting}
%
%To view the elephant from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\elephant[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the elephant 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the elephant 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\elephant[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\elephant[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
index 4761516d538..22f48a85c03 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-hippos}[2022/06/17 version v1.0 Drawing hippos in TikZ]
+\ProvidesPackage{tikzlings-hippos}[2025/01/05 version v2.2 Drawing hippos in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -31,6 +31,7 @@
\newif\ifhippo@threeD
\newif\ifhippo@back
\newif\ifhippo@contour
+\newif\ifhippo@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -46,33 +47,36 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \hippo@body,
- body = gray,
+ body = gray!55!white,
eye/.store in = \hippo@eye,
- eye = white,
+ eye = white,
pupil/.store in = \hippo@pupil,
- pupil = black,
+ pupil = black,
toes/.store in = \hippo@toes,
- toes = \hippo@body!55!white,
+ toes = \hippo@body,
mouth/.store in = \hippo@mouth,
- mouth = \hippo@body!70!black,
+ mouth = \hippo@body!50!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \hippo@threeDtrue,
+ openmouth/.code = \hippo@openmouthtrue,
+ open mouth/.forward to = /hippo/openmouth,
+ 3D/.code = \hippo@threeDtrue
+ \def\hippo@mouth{black},
back/.code = \hippo@backtrue,
contour/.code = \hippo@contourtrue
\def\hippo@contour{#1}
\def\hippo@mouth{#1},
- contour/.default = black,
- outline/.forward to = /hippo/contour,
+ contour/.default = black,
+ outline/.forward to = /hippo/contour,
}
\def\hippo@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.625, 2.17);
@@ -89,7 +93,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -107,46 +111,43 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname hippohookbackground\endcsname
- \csname tikzlinghookbackground\endcsname
+ \csname tikzlinghookbackground\endcsname
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \hippo@part@draw[\hippo@body] (0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=-30];
- \hippo@part@draw[\hippo@body] (-0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=30];
+ \hippo@part@draw[\hippo@body!70!black] (0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=-30];
+ \hippo@part@draw[\hippo@body!70!black] (-0.23,2.03) ellipse[x radius=0.09, y radius=0.13, rotate=30];
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifhippo@back
- \begin{scope}
- \clip (-0.5,0.4) rectangle (0.5,0.13);
- \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \end{scope}
+ \hippo@part@draw[\hippo@body!70!black] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.17, y radius=0.19] -- cycle;
+ \hippo@part@draw[\hippo@body!70!black](0.08,0.13) arc [start angle=180, end angle=0, x radius=0.17, y radius=0.19] -- cycle;
\fi% back
%
% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifhippo@back
- \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
+ \hippo@part@draw[\hippo@body!85!black] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \hippo@part@draw[\hippo@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;
+ \hippo@part@draw[\hippo@body] ( 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifhippo@back
- \hippo@part@draw[\hippo@body] (0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
- \hippo@part@draw[\hippo@body] (-0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
+ \hippo@part@draw[\hippo@body!70!black] (0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
+ \hippo@part@draw[\hippo@body!70!black] (-0.35,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
\fi% back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \hippo@part@draw[\hippo@body!55!white] (0, 1.76) circle[radius=0.36];
+ \hippo@part@draw[\hippo@body] (0, 1.76) circle[radius=0.36];
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifhippo@back
@@ -165,29 +166,26 @@
\fi% contour
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
- \hippo@part@draw[\hippo@body!70!black] (-0.07, 1.63) circle[radius=0.035];
- \hippo@part@draw[\hippo@body!70!black] (0.07, 1.63) circle[radius=0.035];
+ \hippo@part@draw[\hippo@body!85!black] (0, 1.55) ellipse[x radius=0.42, y radius=0.2];
+ \hippo@part@draw[\hippo@mouth] (-0.07, 1.63) circle[radius=0.035];
+ \hippo@part@draw[\hippo@mouth] (0.07, 1.63) circle[radius=0.035];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \ifhippo@threeD
- \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
- \else% 3D
+ \ifhippo@openmouth
+ \filldraw[\hippo@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2];
+ \else% open mouth
\draw[\hippo@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2];
- \fi% 3D
+ \fi% open mouth
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \begin{scope}
- \clip (-0.5,0.4) rectangle (0.5,0.13);
- \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \hippo@part@draw[\hippo@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
- \hippo@part@draw[\hippo@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
- \hippo@part@draw[\hippo@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
- \hippo@part@draw[\hippo@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
- \hippo@part@draw[\hippo@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
- \hippo@part@draw[\hippo@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
- \end{scope}
+ \hippo@part@draw[\hippo@body!70!black] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.17, y radius=0.19] -- cycle;
+ \hippo@part@draw[\hippo@body!70!black](0.08,0.13) arc [start angle=180, end angle=0, x radius=0.17, y radius=0.19] -- cycle;
+ \hippo@part@draw[\hippo@toes] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.08] -- cycle;
+ \hippo@part@draw[\hippo@toes] (-0.2,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.1] -- cycle;
+ \hippo@part@draw[\hippo@toes] (-0.32,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.08] -- cycle;
+ \hippo@part@draw[\hippo@toes] (0.08,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.08] -- cycle;
+ \hippo@part@draw[\hippo@toes] (0.2,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.1] -- cycle;
+ \hippo@part@draw[\hippo@toes] (0.32,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.08] -- cycle;
%
\fi% back
%
@@ -209,52 +207,57 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-hippos}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-hippos}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic hippo}}
%\hippo
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic hippo can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\hippo[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\hippo[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\hippo[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\hippo[mouth=red]
%\end{tcblisting}
%
+% The hippo can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\hippo[openmouth]
+%\end{tcblisting}
+%
%The hippo can also do its nails:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Toe colour}}
%\hippo[toes=red]
%\end{tcblisting}
%
%To view the hippo from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\hippo[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the hippo 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the hippo 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\hippo[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\hippo[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
index 4968d7b5168..3b3a2975177 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty
@@ -9,15 +9,15 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-koalas}[2022/06/17 version v1.0 Drawing koalas in TikZ]
+\ProvidesPackage{tikzlings-koalas}[2025/01/05 version v2.2 Drawing koalas in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
\usetikzlibrary{shadows.blur}
-\usetikzlibrary{fadings}
+\usetikzlibrary{fadings}
\tikzfading[name=koala@blush,inner color=transparent!50,outer color=transparent!100]
@@ -38,6 +38,7 @@
\newif\ifkoala@threeD
\newif\ifkoala@back
\newif\ifkoala@contour
+\newif\ifkoala@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -55,7 +56,7 @@
body/.store in = \koala@body,
body = gray!75!white,
eye/.store in = \koala@eye,
- eye = black,
+ eye = black,
mouth/.store in = \koala@mouth,
mouth = \koala@body!40!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -65,23 +66,25 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
blush/.code = \koala@blushtrue
\def\koala@blushcolor{#1},
- blush/.default = red,
- sleeping/.code = \koala@sleepingtrue,
+ blush/.default = red,
+ sleeping/.code = \koala@sleepingtrue,
+ openmouth/.code = \koala@openmouthtrue,
+ open mouth/.forward to = /koala/openmouth,
3D/.code = \koala@threeDtrue
- \def\koala@mouth{black},
- back/.code = \koala@backtrue,
+ \def\koala@mouth{black},
+ back/.code = \koala@backtrue,
contour/.code = \koala@contourtrue
\def\koala@contour{#1}
\def\koala@blushcolor{#1}
\def\koala@mouth{#1},
- contour/.default = black,
- outline/.forward to = /koala/contour,
+ contour/.default = black,
+ outline/.forward to = /koala/contour,
}
\def\koala@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.88,0.1) rectangle (0.88, 2.35);
@@ -98,7 +101,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -116,7 +119,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -124,7 +127,7 @@
\csname tikzlinghookbackground\endcsname
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \koala@part@draw[\koala@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \koala@part@draw[\koala@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\koala@part@draw[\koala@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -173,18 +176,22 @@
\fill[\koala@body!50!black,rotate around={-20:(-0.2925, 1.6925)}] (-0.29, 1.68) rectangle ++(-0.005, 0.03);
\fill[\koala@body!50!black,rotate around={20:(-0.2143, 1.6925)}] (-0.2168, 1.68) rectangle ++(-0.005, 0.03);
\fill[\koala@body!50!black,rotate around={-40:(-0.3255, 1.7025)}] (-0.323, 1.69) rectangle ++(-0.005, 0.03);
- \fill[\koala@body!50!black,rotate around={40:(-0.1813, 1.7025)}] (-0.1838, 1.69) rectangle ++(-0.005, 0.03);
+ \fill[\koala@body!50!black,rotate around={40:(-0.1813, 1.7025)}] (-0.1838, 1.69) rectangle ++(-0.005, 0.03);
\fill[\koala@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@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% sleeping
- \koala@part@draw[\koala@eye] (-0.255, 1.74) circle[radius=0.08];
- \koala@part@draw[\koala@eye] (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];
+ \koala@part@draw[\koala@eye] (-0.255, 1.74) circle[radius=0.08];
+ \koala@part@draw[\koala@eye] (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% sleeping
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\koala@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
+ \ifkoala@openmouth
+ \filldraw[\koala@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
+ \else
+ \draw[\koala@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16];
+ \fi
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -194,7 +201,7 @@
%
% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifkoala@blush
- \fill[\koala@blushcolor,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1];
+ \fill[\koala@blushcolor,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1];
\fill[\koala@blushcolor,path fading=koala@blush] (0.3, 1.52) circle[radius=0.1];
\fi% blush
%
@@ -218,54 +225,59 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-koalas}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-koalas}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic koala}}
%\koala
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic koala can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\koala[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\koala[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\koala[mouth=red]
%\end{tcblisting}
%
+% The koala can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\koala[openmouth]
+%\end{tcblisting}
+%
%It can also blush
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Blushing koala}}
%\koala[blush=red]
%\end{tcblisting}
%
%and if tired, it is going to take a nap:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Sleep}}
%\koala[sleeping]
%\end{tcblisting}
%
%To view the koala from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\koala[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the koala 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the koala 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\koala[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\koala[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty
index 09a0967f2c7..b8cd2cdb387 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-list.sty
@@ -1,4 +1,4 @@
-\ProvidesPackage{tikzlings-list}[2022/06/17 version v1.0 Helper package for the tikzlings]
+\ProvidesPackage{tikzlings-list}[2025/01/05 version v2.2 Helper package for the tikzlings]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -11,6 +11,7 @@
\clist_const:Nn \c__tikzlings_clist
{
anteater / anteaters,
+ ape / apes,
bat / bats,
bear / bears,
bee / bees,
@@ -22,6 +23,7 @@
hippo / hippos,
koala / koalas,
marmot / marmots,
+ meerkat / meerkats,
mouse / mice,
moles / moles, % avoid conflict with siunitx's \mole
owl / owls,
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
index d67b9fb51db..8a274a550e8 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty
@@ -9,15 +9,15 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-marmots}[2022/06/17 version v1.0 Drawing marmots in TikZ]
+\ProvidesPackage{tikzlings-marmots}[2025/01/05 version v2.2 Drawing marmots in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
\usetikzlibrary{shadows.blur}
-\usetikzlibrary{fadings}
+\usetikzlibrary{fadings}
\tikzfading[name=marmot@blush,inner color=transparent!50,outer color=transparent!100]
@@ -28,13 +28,13 @@
\else
\ifdefined\pdfrandomseed % pdflatex
\else
- \ifdefined\randomseed
+ \ifdefined\randomseed
\let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
\else
\let\pdfrandomseed\time % pre TL19 xelatex
\fi
\fi
- \pgfmathsetseed{\number\pdfrandomseed}
+ \pgfmathsetseed{\number\pdfrandomseed}
\fi
\ExplSyntaxOff
@@ -47,7 +47,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname marmothookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifmarmot@blush
@@ -60,6 +60,7 @@
\newif\ifmarmot@rightstep
\newif\ifmarmot@back
\newif\ifmarmot@contour
+\newif\ifmarmot@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -77,7 +78,7 @@
body/.store in = \marmot@body,
body = brown,
eye/.store in = \marmot@eye,
- eye = \marmot@body!50!black,
+ eye = \marmot@body!50!black,
mouth/.store in = \marmot@mouth,
mouth = \marmot@body!50!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -87,13 +88,15 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
blush/.code = \marmot@blushtrue
\def\marmot@blushcolor{#1},
- blush/.default = red,
- whiskers/.code = \marmot@whiskerstrue
+ blush/.default = red,
+ whiskers/.code = \marmot@whiskerstrue
\def\marmot@whiskers{#1},
whiskers/.default = gray,
- teeth/.code = \marmot@teethtrue
- \def\marmot@teeth{#1},
+ teeth/.code = \marmot@teethtrue
+ \def\marmot@teeth{#1},
teeth/.default = white,
+ openmouth/.code = \marmot@openmouthtrue,
+ open mouth/.forward to = /marmot/openmouth,
3D/.code = \marmot@threeDtrue,
shadow/.code = \marmot@shadowtrue,
askphil/.code = \marmot@askphiltrue,
@@ -101,20 +104,20 @@
leftstep/.code = \marmot@leftsteptrue,
left step/.forward to = /marmot/leftstep,
rightstep/.code = \marmot@rightsteptrue,
- right step/.forward to = /marmot/rightstep,
- back/.code = \marmot@backtrue,
+ right step/.forward to = /marmot/rightstep,
+ back/.code = \marmot@backtrue,
contour/.code = \marmot@contourtrue
\def\marmot@contour{#1}
\def\marmot@blushcolor{#1}
\def\marmot@mouth{#1},
- contour/.default = black,
- outline/.forward to = /marmot/contour,
+ contour/.default = black,
+ outline/.forward to = /marmot/contour,
}
\def\marmot@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.905, 2.17);
@@ -131,7 +134,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -171,20 +174,20 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmarmot@leftstep
- \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
\ifmarmot@rightstep
- \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -221,17 +224,21 @@
\marmot@part@draw[\marmot@body!50!black] (-0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70];
%
% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \marmot@part@draw[\marmot@body!50!white] (0,1.47) ellipse[x radius=0.23, y radius=0.13];
+ \marmot@part@draw[\marmot@body!50!white] (0,1.47) ellipse[x radius=0.23, y radius=0.13];
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\marmot@part@draw[\marmot@body!50!black] (0,1.6) circle[radius=0.08];
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \marmot@part@draw[\marmot@eye] (-0.155,1.77) circle[radius=0.05];
- \marmot@part@draw[\marmot@eye] (0.155,1.77) circle[radius=0.05];
+ \marmot@part@draw[\marmot@eye] (-0.155,1.77) circle[radius=0.05];
+ \marmot@part@draw[\marmot@eye] (0.155,1.77) circle[radius=0.05];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \fill[\marmot@mouth] (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 ;
+ \ifmarmot@openmouth
+ \filldraw[\marmot@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.155] (-0.145,1.51) arc [start angle=-120, end angle=-60, radius=0.29];
+ \else
+ \draw[\marmot@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16];
+ \fi
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -241,8 +248,8 @@
%
% Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmarmot@blush
- \fill[\marmot@blushcolor,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1];
- \fill[\marmot@blushcolor,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1];
+ \fill[\marmot@blushcolor,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1];
+ \fill[\marmot@blushcolor,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1];
\fi% blush
%
% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -259,7 +266,7 @@
\ifmarmot@teeth
\fill[\marmot@body!50!black] (0.048,1.413) rectangle (-0.048,1.373);
\fill[\marmot@teeth] (-0.045,1.407) rectangle (-0.004,1.376);
- \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376);
+ \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376);
\fi% teeth
%
\fi% back
@@ -282,75 +289,80 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-marmots}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-marmots}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic marmot}}
%\marmot
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic marmot can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\marmot[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\marmot[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\marmot[mouth=red]
%\end{tcblisting}
%
+% The marmot can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\marmot[openmouth]
+%\end{tcblisting}
+%
%The marmot can also blush
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Blushing marmot}}
%\marmot[blush=red]
%\end{tcblisting}
%
%and whiskers can be added:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Whiskers colour}}
%\marmot[whiskers=gray]
%\end{tcblisting}
%
%Some marmots even show their chisel teeth:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Teeth colour}}
%\marmot[teeth=white]
%\end{tcblisting}
%
%or can cast a shadow:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Shadow}}
%\marmot[shadow]
%\end{tcblisting}
%
-%This ability is important if you want to ask Punxsutawney Phil\footnote{\url{https://en.wikipedia.org/wiki/Punxsutawney_Phil}} on Groundhog Day how the weather is going to be. With a probability derived from the statistics of 120 Groundhog Days\footnote{\hbadness=99999\url{https://www.livescience.com/32974-punxsutawney-phil-weather-prediction-accuracy.html}} the option \lstinline|askphil| might or might not result in a shadow.
-%\begin{tcblisting}{}
+%This ability is important if you want to ask Punxsutawney Phil\footnote{\url{https://en.wikipedia.org/wiki/Punxsutawney_Phil}} on Groundhog Day how the weather is going to be. With a probability derived from the statistics of 120 Groundhog Days\footnote{\hbadness=99999\url{https://www.livescience.com/32974-punxsutawney-phil-weather-prediction-accuracy.html}} the option \saminline|askphil| might or might not result in a shadow.
+%\begin{tcblisting}{title={Ask Phil}}
%\marmot[askphil]
%\end{tcblisting}
%
-%If a good weather prognosis is derived, the happy marmot can dance by lifting up its left and right foot:
-%\begin{tcblisting}{}
+%If a good weather prognosis is derived, the happy marmot can dance by lifting up its left and right foot:
+%\begin{tcblisting}{title={Walking}}
%\marmot[leftstep]
%\marmot[rightstep,xshift=2cm]
%\end{tcblisting}
%
%To view the marmot from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\marmot[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the marmot 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the marmot 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\marmot[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\marmot[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-meerkats.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-meerkats.sty
new file mode 100644
index 00000000000..42337105d62
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-meerkats.sty
@@ -0,0 +1,340 @@
+ % !TeX root = ./examples/meerkat.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 https://www.latex-project.org/lppl.txt
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzlings-meerkats}[2025/01/05 version v2.2 Drawing meerkats in TikZ]
+
+\RequirePackage{tikz}
+\RequirePackage{tikzlings-addons}
+
+\newcommand*{\meerkat}[1][]{%
+ \begin{scope}%
+ \tikzset{/meerkat/.cd,#1}%
+ \meerkat@draw%
+ \end{scope}%
+ \thing[#1]%
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname meerkathookforeground\endcsname
+ \csname tikzlinghookforeground\endcsname
+ %
+}
+
+\newif\ifmeerkat@standing
+\newif\ifmeerkat@threeD
+\newif\ifmeerkat@back
+\newif\ifmeerkat@contour
+\newif\ifmeerkat@openmouth
+
+\def\meerkat@shift{0}
+
+\tikzset{
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Pass unknown keys on to tikz
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ /meerkat/.search also={/tikz,/pgf,/thing},
+ /meerkat/.cd,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % body
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ body/.store in = \meerkat@body,
+ body = brown,
+ upperbody/.store in = \meerkat@upperbody,
+ upperbody = \meerkat@body!70!white,
+ upper body/.forward to = /meerkat/upperbody,
+ chest/.store in = \meerkat@chest,
+ chest = \meerkat@body!45!white,
+ legs/.store in = \meerkat@legs,
+ legs = \meerkat@body,
+ tail/.store in = \meerkat@tail,
+ tail = \meerkat@body,
+ tip/.store in = \meerkat@tip,
+ tip = \meerkat@tail!50!black,
+ ears/.store in = \meerkat@ears,
+ ears = \meerkat@body!50!black,
+ eye/.store in = \meerkat@eye,
+ eye = black,
+ eyecircles/.store in = \meerkat@eyecircles,
+ eyecircles = \meerkat@body!75!black,
+ eye circles/.forward to = /meerkat/eyecircles,
+ muzzle/.store in = \meerkat@muzzle,
+ muzzle = \meerkat@body!45!white,
+ nose/.store in = \meerkat@nose,
+ nose = \meerkat@body!50!black,
+ mouth/.store in = \meerkat@mouth,
+ mouth = \meerkat@body!50!black,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % options
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ openmouth/.code = \meerkat@openmouthtrue,
+ open mouth/.forward to = /meerkat/openmouth,
+ standing/.code = \meerkat@standingtrue
+ \def\meerkat@shift{15},
+ 3D/.code = \meerkat@threeDtrue,
+ back/.code = \meerkat@backtrue,
+ contour/.code = \meerkat@contourtrue
+ \def\meerkat@contour{#1}
+ \def\meerkat@blushcolor{#1}
+ \def\meerkat@mouth{#1},
+ contour/.default = black,
+ outline/.forward to = /meerkat/contour,
+}
+
+\def\meerkat@draw{%
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % minimal bounding box size
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifmeerkat@standing
+ \path (-0.55,0.05) rectangle (0.85, 2.65);
+ \else
+ \path (-0.55,0.05) rectangle (0.85, 2.13);
+ \fi
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % 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@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}%
+ \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
+ \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % switch between 2D, 3D and contours, from
+ % https://chat.stackexchange.com/transcript/message/45991801#45991801
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifmeerkat@threeD
+ \def\meerkat@part@draw[##1]{\shade[ball color=##1]}
+ \else% 3D
+ \ifmeerkat@contour
+ \def\meerkat@part@draw[##1]{\draw[##1,\meerkat@contour,fill=white,line width=\scalingfactor*0.4pt]}
+ \else% contour
+ \def\meerkat@part@draw[##1]{\fill[##1]}
+ \fi% contour
+ \fi% 3D
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Body parts
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname meerkathookbackground\endcsname
+ \csname tikzlinghookbackground\endcsname
+ %
+ \ifmeerkat@standing
+ %
+ \unless\ifmeerkat@back
+ % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tail] (0.0071, 1.0065).. controls (0.0949, 0.7556) and (0.2077, 0.5139) .. (0.3436, 0.2854).. controls (0.3809, 0.2966) and (0.4183, 0.3078) .. (0.4557, 0.319).. controls (0.3377, 0.5524) and (0.2434, 0.7968) .. (0.174, 1.049);
+ %
+ % Tip of tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tip] (0.8483, 0.1284).. controls (0.7159, 0.1309) and (0.575, 0.1064) .. (0.4503, 0.163).. controls (0.3999, 0.1871) and (0.3617, 0.2328) .. (0.3436, 0.2854).. controls (0.3809, 0.2966) and (0.4183, 0.3078) .. (0.4557, 0.319).. controls (0.5224, 0.2163) and (0.6411, 0.1646) .. (0.7581, 0.145).. controls (0.7881, 0.1389) and (0.8182, 0.1337) .. (0.8483, 0.1284) -- cycle;
+ \fi %back
+ %
+ % Legs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@legs] (-0.3454, 1.3191).. controls (-0.3768, 1.128) and (-0.4158, 0.9325) .. (-0.3865, 0.7386).. controls (-0.3749, 0.6541) and (-0.3231, 0.5584) .. (-0.2285, 0.5516).. controls (-0.1819, 0.5615) and (-0.1524, 0.5219) .. (-0.1531, 0.48).. controls (-0.1406, 0.4015) and (-0.126, 0.3232) .. (-0.1147, 0.2446).. controls (-0.1149, 0.1841) and (-0.2292, 0.195) .. (-0.2042, 0.1256).. controls (-0.1635, 0.0562) and (-0.0406, 0.0684) .. (-0.021, 0.15).. controls (0.0009, 0.2391) and (-0.0108, 0.3319) .. (-0.0078, 0.4229).. controls (-0.0101, 0.4797) and (-0.0028, 0.5377) .. (-0.0126, 0.5937).. controls (-0.0473, 0.6539) and (-0.1009, 0.7107) .. (-0.0889, 0.7877).. controls (-0.0857, 0.8768) and (-0.0601, 0.963) .. (-0.0454, 1.0505);
+ \meerkat@part@draw[\meerkat@legs] (0.3522, 1.3191).. controls (0.3836, 1.128) and (0.4226, 0.9325) .. (0.3932, 0.7386).. controls (0.3817, 0.6541) and (0.3299, 0.5584) .. (0.2352, 0.5516).. controls (0.1887, 0.5615) and (0.1592, 0.5219) .. (0.1599, 0.48).. controls (0.1474, 0.4015) and (0.1327, 0.3232) .. (0.1215, 0.2446).. controls (0.1217, 0.1841) and (0.236, 0.195) .. (0.211, 0.1256).. controls (0.1702, 0.0562) and (0.0474, 0.0684) .. (0.0278, 0.15).. controls (0.0058, 0.2391) and (0.0176, 0.3319) .. (0.0146, 0.4229).. controls (0.0168, 0.4797) and (0.0095, 0.5377) .. (0.0194, 0.5937).. controls (0.0541, 0.6539) and (0.1077, 0.7107) .. (0.0956, 0.7877).. controls (0.0924, 0.8768) and (0.0668, 0.963) .. (0.0521, 1.0505);
+ %
+ \ifmeerkat@back
+ % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tail] (0.0071, 1.0065).. controls (0.0949, 0.7556) and (0.2077, 0.5139) .. (0.3436, 0.2854).. controls (0.3809, 0.2966) and (0.4183, 0.3078) .. (0.4557, 0.319).. controls (0.3377, 0.5524) and (0.2434, 0.7968) .. (0.174, 1.049);
+ %
+ % Tip of tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tip] (0.8483, 0.1284).. controls (0.7159, 0.1309) and (0.575, 0.1064) .. (0.4503, 0.163).. controls (0.3999, 0.1871) and (0.3617, 0.2328) .. (0.3436, 0.2854).. controls (0.3809, 0.2966) and (0.4183, 0.3078) .. (0.4557, 0.319).. controls (0.5224, 0.2163) and (0.6411, 0.1646) .. (0.7581, 0.145).. controls (0.7881, 0.1389) and (0.8182, 0.1337) .. (0.8483, 0.1284) -- cycle;
+ \fi %back
+ \else % sitting meerkat
+ %
+ \unless\ifmeerkat@back
+ % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tail] (-0.0555, 0.5998).. controls (-0.0555, 0.4298) and (0.1812, 0.2011) .. (0.341, 0.143) -- (0.44, 0.253).. controls (0.3106, 0.3001) and (0.0959, 0.4717) .. (0.0959, 0.6094);
+ %
+ % Tip of the tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tip] (0.836, 0.132).. controls (0.6422, 0.132) and (0.5231, 0.0767) .. (0.341, 0.143) -- (0.44, 0.253).. controls (0.5922, 0.1976) and (0.6765, 0.1601) .. (0.836, 0.132);
+ \fi % back
+ %
+ % Legs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@legs] (-0.2759, 0.6554).. controls (-0.2927, 0.7506) and (-0.3983, 0.77) .. (-0.4598, 0.77).. controls (-0.4793, 0.77) and (-0.4959, 0.7543) .. (-0.4971, 0.7349).. controls (-0.5094, 0.5297) and (-0.4208, 0.3526) .. (-0.2493, 0.2393).. controls (-0.2331, 0.2287) and (-0.236, 0.2231) .. (-0.2551, 0.22) -- (-0.4553, 0.1878).. controls (-0.4745, 0.1847) and (-0.5016, 0.1767) .. (-0.5153, 0.1629).. controls (-0.5208, 0.1574) and (-0.5208, 0.1081) .. (-0.5153, 0.1026).. controls (-0.5016, 0.0889) and (-0.4747, 0.0794) .. (-0.4553, 0.0796).. controls (-0.0935, 0.0833) and (-0.055, 0.0466) .. (-0.055, 0.1848).. controls (-0.055, 0.2042) and (-0.0521, 0.2354) .. (-0.0485, 0.2545) -- (-0.0187, 0.4185);
+ \meerkat@part@draw[\meerkat@legs] (0.2759, 0.6554).. controls (0.2927, 0.7506) and (0.3983, 0.77) .. (0.4598, 0.77).. controls (0.4793, 0.77) and (0.4959, 0.7543) .. (0.4971, 0.7349).. controls (0.5094, 0.5297) and (0.4208, 0.3526) .. (0.2493, 0.2393).. controls (0.2331, 0.2287) and (0.236, 0.2231) .. (0.2551, 0.22) -- (0.4553, 0.1878).. controls (0.4745, 0.1847) and (0.5016, 0.1767) .. (0.5153, 0.1629).. controls (0.5208, 0.1574) and (0.5208, 0.1081) .. (0.5153, 0.1026).. controls (0.5016, 0.0889) and (0.4747, 0.0794) .. (0.4553, 0.0796).. controls (0.0935, 0.0833) and (0.055, 0.0466) .. (0.055, 0.1848).. controls (0.055, 0.2042) and (0.0521, 0.2354) .. (0.0485, 0.2545) -- (0.0187, 0.4185);
+ %
+ \ifmeerkat@back
+ % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tail] (-0.0555, 0.5998).. controls (-0.0555, 0.4298) and (0.1812, 0.2011) .. (0.341, 0.143) -- (0.44, 0.253).. controls (0.3106, 0.3001) and (0.0959, 0.4717) .. (0.0959, 0.6094);
+ %
+ % Tip of the tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@tip] (0.836, 0.132).. controls (0.6422, 0.132) and (0.5231, 0.0767) .. (0.341, 0.143) -- (0.44, 0.253).. controls (0.5922, 0.1976) and (0.6765, 0.1601) .. (0.836, 0.132);
+ \fi % back
+ %
+ \fi % standling
+ %
+ \begin{scope}[yshift=\meerkat@shift]
+ %
+ % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@body] (0,0.77) circle [radius=0.35];
+ %
+ % Upper body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifmeerkat@back
+ \meerkat@part@draw[\meerkat@upperbody] (-0.374, 1.32).. controls (-0.3892, 1.1462) and (-0.2287, 0.903) .. (-0.0859, 0.7515).. controls (-0.0594, 0.7213) and (-0.031, 0.691) .. (0.0, 0.66).. controls (0.031, 0.691) and (0.0595, 0.7213) .. (0.0859, 0.7515).. controls (0.2399, 0.9179) and (0.3892, 1.1462) .. (0.374, 1.32).. controls (0.374, 1.4277) and (0.1868, 1.582) .. (0.0, 1.65).. controls (-0.1876, 1.5817) and (-0.374, 1.4271) .. (-0.374, 1.32) -- cycle;
+ \else
+ \meerkat@part@draw[\meerkat@upperbody] (-0.374, 1.32).. controls (-0.3974, 1.0521) and (-0.176, 0.9289) .. (-0.176, 0.66).. controls (-0.176, 0.467) and (-0.077, 0.467) .. (-0.077, 0.66).. controls (-0.077, 0.6924) and (-0.0803, 0.7227) .. (-0.0859, 0.7515).. controls (-0.0594, 0.7213) and (-0.031, 0.691) .. (-0.0, 0.66).. controls (0.031, 0.691) and (0.0595, 0.7213) .. (0.0859, 0.7515).. controls (0.0803, 0.7227) and (0.077, 0.6924) .. (0.077, 0.66).. controls (0.077, 0.467) and (0.176, 0.467) .. (0.176, 0.66).. controls (0.176, 0.9289) and (0.3974, 1.0521) .. (0.374, 1.32).. controls (0.374, 1.4277) and (0.1868, 1.582) .. (-0.0, 1.65).. controls (-0.1876, 1.5817) and (-0.374, 1.4271) .. (-0.374, 1.32) -- cycle;
+ \fi % back
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname meerkathookbelly\endcsname
+ \csname tikzlinghookbelly\endcsname
+ %
+ % Chest %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \unless\ifmeerkat@back
+ \meerkat@part@draw[\meerkat@chest] (-0.0, 1.54).. controls (-0.1378, 1.54) and (-0.275, 1.4578) .. (-0.275, 1.32).. controls (-0.275, 1.1168) and (-0.1437, 1.0237) .. (-0.0, 0.88).. controls (0.1437, 1.0237) and (0.275, 1.1168) .. (0.275, 1.32).. controls (0.275, 1.4578) and (0.1378, 1.54) .. (-0.0, 1.54) -- cycle;
+ \fi % back
+ %
+ % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@ears] (-0.35, 1.87) circle [radius=0.11];
+ \meerkat@part@draw[\meerkat@ears] (0.35, 1.87) circle [radius=0.11];
+ %
+ % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifmeerkat@back
+ \meerkat@part@draw[\meerkat@muzzle] (0,1.7) ellipse [x radius=0.38, y radius=0.21];
+ \meerkat@part@draw[\meerkat@body] (0,1.775) ellipse [x radius=0.34, y radius=0.32];
+ \else
+ \meerkat@part@draw[\meerkat@body] (0,1.85) ellipse [x radius=0.34, y radius=0.25];
+ \meerkat@part@draw[\meerkat@muzzle] (0,1.7) ellipse [x radius=0.38, y radius=0.21];
+ %
+ % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@nose] (0.0176, 1.6987) -- (0.0437, 1.7439).. controls (0.0534, 1.7607) and (0.0455, 1.7743) .. (0.0261, 1.7743) -- (-0.0261, 1.7743).. controls (-0.0455, 1.7743) and (-0.0534, 1.7607) .. (-0.0437, 1.7439) -- (-0.0176, 1.6987).. controls (-0.0079, 1.6819) and (0.0079, 1.6819) .. (0.0176, 1.6987) -- cycle;
+ %
+ % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \ifmeerkat@openmouth
+ \filldraw[\meerkat@mouth,line width=\scalingfactor*0.4pt] (-0.16, 1.727) .. controls (-0.16, 1.727) and (-0.062, 1.62) .. (0, 1.7) .. controls (0.062, 1.62) and (0.16, 1.727) .. (0.16, 1.727) (0.16, 1.727) arc [start angle=-20, end angle=-160, radius=0.17];
+ \else
+ \draw[\meerkat@mouth,line width=\scalingfactor*0.4pt] (-0.16, 1.727) .. controls (-0.16, 1.727) and (-0.062, 1.62) .. (0, 1.7) .. controls (0.062, 1.62) and (0.16, 1.727) .. (0.16, 1.727);
+ \fi
+ %
+ % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \meerkat@part@draw[\meerkat@eyecircles,rotate=30] (0.75,1.7) ellipse [x radius=0.14, y radius=0.08];
+ \meerkat@part@draw[\meerkat@eyecircles,rotate=-30] (-0.75,1.7) ellipse [x radius=0.14, y radius=0.08];
+ \meerkat@part@draw[\meerkat@eye] (0.18,1.86) circle [radius=0.055];
+ \meerkat@part@draw[\meerkat@eye] (-0.18,1.86) circle [radius=0.055];
+ \meerkat@part@draw[white] (0.165,1.88) circle [radius=0.01];
+ \meerkat@part@draw[white] (-0.195,1.88) circle [radius=0.01];
+ \fi % back
+ %
+ % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \csname meerkathookbody\endcsname
+ \csname tikzlinghookbody\endcsname
+ %
+ \end{scope}% body shift
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% Documentation
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\clearpage
+%\section[Meerkat]{Ambrogio, the meerkat}
+%
+%\emph{The Meerkat was first created by Carla for the Great TikZlings Extravanganza 2022\footnote{\url{https://github.com/TikZlings/Extravaganza2022}}. Ambrogio got his name from the patreon saint of his home town Milan, Saint Ambrogio}
+%
+%\subsection{Package name}
+%
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-meerkats}
+%\end{samcode}
+%\end{tcolorbox}
+%
+%\subsection{Basic Usage}
+%
+%\begin{tcblisting}{title={Basic meerkat}}
+%\meerkat
+%\end{tcblisting}
+%
+%\subsection{Options}
+%
+%The basic meerkat can be modified by changing its colour:
+%\begin{tcblisting}{title={Body colour}}
+%\meerkat[body=blue]
+%\end{tcblisting}
+%
+%In addition to the colour of the body, the colour of various body parts can be adjusted:
+%\begin{tcblisting}{title={Eye colour}}
+%\meerkat[eye=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Eye circle colour}}
+%\meerkat[eyecircles=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Ear colour}}
+%\meerkat[ears=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Muzzle colour}}
+%\meerkat[muzzle=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Nose colour}}
+%\meerkat[nose=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Mouth colour}}
+%\meerkat[mouth=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Upper body colour}}
+%\meerkat[upperbody=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Chest colour}}
+%\meerkat[chest=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Leg colour}}
+%\meerkat[legs=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Tail colour}}
+%\meerkat[tail=red]
+%\end{tcblisting}
+%\begin{tcblisting}{title={Tail tip colour}}
+%\meerkat[tip=red]
+%\end{tcblisting}
+%
+% The meerkat can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\meerkat[openmouth]
+%\end{tcblisting}
+%
+%The meerkat can also stand up
+%\begin{tcblisting}{title={Standing meerkat}}
+%\meerkat[standing]
+%\end{tcblisting}
+%
+%To view the meerkat from behind:
+%\begin{tcblisting}{title={Back view}}
+%\meerkat[back]
+%\end{tcblisting}
+%
+%The key \saminline|3D| will make the meerkat 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
+%\meerkat[3D]
+%\end{tcblisting}
+%
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
+%\meerkat[contour=black]
+%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
index b864d03fd6f..f6bc29e3a14 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-mice}[2022/06/17 version v1.0 Drawing mice in TikZ]
+\ProvidesPackage{tikzlings-mice}[2025/01/05 version v2.2 Drawing mice in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,7 +26,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname mousehookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifmouse@threeD
@@ -52,7 +52,7 @@
body/.store in = \mouse@body,
body = gray!90!white,
eye/.store in = \mouse@eye,
- eye = \mouse@body!50!black,
+ eye = \mouse@body!50!black,
whiskers/.store in = \mouse@whiskers,
whiskers = \mouse@body!50!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -68,19 +68,19 @@
leftstep/.code = \mouse@leftsteptrue,
left step/.forward to = /mouse/leftstep,
rightstep/.code = \mouse@rightsteptrue,
- right step/.forward to = /mouse/rightstep,
- back/.code = \mouse@backtrue,
+ right step/.forward to = /mouse/rightstep,
+ back/.code = \mouse@backtrue,
contour/.code = \mouse@contourtrue
\def\mouse@contour{#1}
\def\mouse@whiskers{#1},
- contour/.default = black,
- outline/.forward to = /mouse/contour,
+ contour/.default = black,
+ outline/.forward to = /mouse/contour,
}
\def\mouse@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.905, 2.17);
@@ -97,7 +97,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -115,24 +115,24 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname mousehookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmouse@leftstep
- \mouse@part@draw[\mouse@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \mouse@part@draw[\mouse@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
\ifmouse@rightstep
- \mouse@part@draw[\mouse@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \mouse@part@draw[\mouse@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -154,7 +154,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname mousehookbelly\endcsname
\csname tikzlinghookbelly\endcsname
- %
+ %
% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmouse@back
\mouse@part@draw[\mouse@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;
@@ -162,11 +162,7 @@
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmouse@back
- \mouse@part@draw[\mouse@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;
+ \mouse@part@draw[\mouse@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% back
\mouse@part@draw[\mouse@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% back
@@ -198,7 +194,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname mousehookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -213,55 +209,55 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-mice}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-mice}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic mouse}}
%\mouse
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic mouse can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\mouse[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\mouse[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Whiskers colour}}
%\mouse[whiskers=red]
%\end{tcblisting}
%
%The rotation angle of its arms can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Rotating the arms}}
%\mouse[rotatearms=40]
%\end{tcblisting}
%
%And the mouse can lift its legs:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Walking}}
%\mouse[leftstep]
%\mouse[rightstep,xshift=2cm]
%\end{tcblisting}
%
%To view the mouse from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\mouse[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the mouse 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the mouse 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\mouse[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\mouse[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
index a64afa5720e..6363a8944cc 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-moles}[2022/06/17 version v1.0 Drawing moles in TikZ]
+\ProvidesPackage{tikzlings-moles}[2025/01/05 version v2.2 Drawing moles in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,12 +26,15 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname moleshookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifmoles@threeD
+\newif\ifmoles@leftstep
+\newif\ifmoles@rightstep
\newif\ifmoles@back
\newif\ifmoles@contour
+\newif\ifmoles@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -49,13 +52,13 @@
body/.store in = \moles@body,
body = gray,
eye/.store in = \moles@eye,
- eye = \moles@body!60!black,
+ eye = \moles@body!60!black,
feet/.store in = \moles@feet,
feet = red!20!white!50!brown,
hands/.store in = \moles@hands,
- hands = red!20!white!50!brown,
+ hands = red!20!white!50!brown,
muzzle/.store in = \moles@muzzle,
- muzzle = red!20!white!50!brown,
+ muzzle = red!20!white!50!brown,
mouth/.store in = \moles@mouth,
mouth = \moles@body!60!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -63,20 +66,26 @@
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \moles@threeDtrue,
- back/.code = \moles@backtrue,
+ openmouth/.code = \moles@openmouthtrue,
+ open mouth/.forward to = /moles/openmouth,
+ 3D/.code = \moles@threeDtrue,
+ leftstep/.code = \moles@leftsteptrue,
+ left step/.forward to = /moles/leftstep,
+ rightstep/.code = \moles@rightsteptrue,
+ right step/.forward to = /moles/rightstep,
+ back/.code = \moles@backtrue,
contour/.code = \moles@contourtrue
\def\moles@contour{#1}
\def\moles@mouth{#1}
\def\moles@eye{#1},
- contour/.default = black,
- outline/.forward to = /moles/contour,
+ contour/.default = black,
+ outline/.forward to = /moles/contour,
}
\def\moles@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.905, 2.17);
@@ -93,7 +102,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -111,7 +120,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -119,8 +128,16 @@
\csname tikzlinghookbackground\endcsname
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \moles@part@draw[\moles@feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
- \moles@part@draw[\moles@feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \ifmoles@leftstep
+ \moles@part@draw[\moles@feet] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \moles@part@draw[\moles@feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
+ \ifmoles@rightstep
+ \moles@part@draw[\moles@feet] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \moles@part@draw[\moles@feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
%
% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifmoles@back
@@ -173,15 +190,19 @@
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifmoles@threeD
- \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15];
- \fill[\moles@eye!50!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15];
+ \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15];
+ \fill[\moles@eye!50!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15];
\else% 3D
- \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15];
- \fill[\moles@eye] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15];
+ \fill[\moles@eye] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15];
+ \fill[\moles@eye] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15];
\fi% 3D
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\moles@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ;
+ \ifmoles@openmouth
+ \filldraw[\moles@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ;
+ \else
+ \draw[\moles@mouth, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16];
+ \fi
%
\fi% back
%
@@ -203,58 +224,65 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-moles}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-moles}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\textcolor{red!60!black}{\textbf{Attention:} In contrast to the other \tikzlings the macro name is the plural form to avoid conflicts with \lstinline|siunitx| and similar packages.}
-%\begin{tcblisting}{}
+%\textcolor{samred}{\textbf{Attention:} In contrast to the other \tikzlings the macro name is the plural form to avoid conflicts with \saminline|siunitx| and similar packages.}
+%\begin{tcblisting}{title={Basic mole}}
%\moles
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic mole can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\moles[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\moles[eye=red]
%\end{tcblisting}
-%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Muzzle colour}}
%\moles[muzzle=red]
%\end{tcblisting}
-%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Hand colour}}
%\moles[hands=red]
%\end{tcblisting}
-%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\moles[feet=red]
%\end{tcblisting}
-%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\moles[mouth=red]
%\end{tcblisting}
%
+% The mole can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\moles[openmouth]
+%\end{tcblisting}
+%
+%And the mole can lift its legs:
+%\begin{tcblisting}{title={Walking}}
+%\moles[leftstep]
+%\moles[rightstep,xshift=2cm]
+%\end{tcblisting}
+%
%To view the mole from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\moles[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the mole 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the mole 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\moles[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\moles[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
index cf57616cc89..23b9f0ff8e7 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-owls}[2022/06/17 version v1.0 Draw owls in TikZ]
+\ProvidesPackage{tikzlings-owls}[2025/01/05 version v2.2 Draw owls in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,7 +26,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname owlhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifowl@threeD
@@ -55,24 +55,24 @@
bill/.store in = \owl@bill,
bill = orange,
feet/.store in = \owl@feet,
- feet = orange,
+ feet = orange,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3D/.code = \owl@threeDtrue,
- back/.code = \owl@backtrue,
+ back/.code = \owl@backtrue,
contour/.code = \owl@contourtrue
\def\owl@contour{#1},
- contour/.default = black,
- outline/.forward to = /owl/contour,
+ contour/.default = black,
+ outline/.forward to = /owl/contour,
}
\def\owl@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.73, 0.08) rectangle (0.73, 2.24);
@@ -89,7 +89,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -107,7 +107,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -116,7 +116,7 @@
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\owl@part@draw[\owl@body] (0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=-80];
- \owl@part@draw[\owl@body] (-0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=80];
+ \owl@part@draw[\owl@body] (-0.575,0.8) ellipse[x radius=0.38, y radius=0.1, rotate=80];
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifowl@back
@@ -194,50 +194,50 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-owls}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-owls}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic owl}}
%\owl
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic owl can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\owl[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\owl[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\owl[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Bill colour}}
%\owl[bill=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\owl[feet=red]
%\end{tcblisting}
%
%To view the owl from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\owl[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the owl 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the owl 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\owl[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\owl[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
index f746d880e19..241f76a2a22 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pandas}[2022/06/17 version v1.0 Drawing pandas in TikZ]
+\ProvidesPackage{tikzlings-pandas}[2025/01/05 version v2.2 Drawing pandas in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,12 +26,13 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname pandahookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifpanda@threeD
\newif\ifpanda@back
\newif\ifpanda@contour
+\newif\ifpanda@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -47,31 +48,33 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \panda@body,
- body = white!90!black,
+ body = white!90!gray,
eye/.store in = \panda@eye,
- eye = white,
+ eye = white,
pupil/.store in = \panda@pupil,
- pupil = black,
+ pupil = black,
mouth/.store in = \panda@mouth,
- mouth = black,
+ mouth = black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \panda@threeDtrue,
- back/.code = \panda@backtrue,
+ openmouth/.code = \panda@openmouthtrue,
+ open mouth/.forward to = /panda/openmouth,
+ 3D/.code = \panda@threeDtrue,
+ back/.code = \panda@backtrue,
contour/.code = \panda@contourtrue
\def\panda@contour{#1}
\def\panda@mouth{#1},
- contour/.default = black,
- outline/.forward to = /panda/contour,
+ contour/.default = black,
+ outline/.forward to = /panda/contour,
}
\def\panda@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.62,0.05) rectangle (0.62, 2.18);
@@ -88,7 +91,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -106,7 +109,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -115,12 +118,12 @@
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifpanda@back
- \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2];
+ \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2];
\panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \panda@part@draw[\panda@body!55!white] (0,0.78) ellipse[x radius=0.57, y radius=0.65];
+ \panda@part@draw[\panda@body] (0,0.78) ellipse[x radius=0.57, y radius=0.65];
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname pandahookbelly\endcsname
@@ -136,7 +139,7 @@
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifpanda@back
- \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2];
+ \panda@part@draw[black] (0.32, 0.27) circle[radius=0.2];
\panda@part@draw[black] (-0.32, 0.27) circle[radius=0.2];
\fi% back
%
@@ -145,7 +148,7 @@
\panda@part@draw[black] (-0.32, 2) circle[radius=0.15];
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \panda@part@draw[\panda@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;
+ \panda@part@draw[\panda@body] (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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifpanda@back
@@ -159,7 +162,11 @@
\panda@part@draw[\panda@pupil] (-0.17, 1.695) circle[radius=0.02];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\panda@mouth,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);
+ \ifpanda@openmouth
+ \filldraw[\panda@mouth,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) (0.16,1.477) arc [start angle=-20, end angle=-160, radius=0.17];
+ \else
+ \draw[\panda@mouth,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);
+ \fi
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\panda@part@draw[black] (0,1.55) ellipse[x radius=0.07, y radius=0.04];
@@ -184,47 +191,52 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-pandas}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-pandas}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic panda}}
%\panda
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic panda can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\panda[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\panda[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\panda[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\panda[mouth=red]
%\end{tcblisting}
%
+% The panda can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\panda[openmouth]
+%\end{tcblisting}
+%
%To view the panda from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\panda[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the panda 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the panda 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\panda[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\panda[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
index 8bceea8a19d..93a76e7ab02 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-penguins}[2022/06/17 version v1.0 Draw penguins in TikZ]
+\ProvidesPackage{tikzlings-penguins}[2025/01/05 version v2.2 Draw penguins in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,7 +26,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname penguinhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifpenguin@threeD
@@ -53,28 +53,28 @@
feet/.store in = \penguin@feet,
feet = yellow!50!orange,
bill/.store in = \penguin@bill,
- bill = orange,
+ bill = orange,
eye/.store in = \penguin@eye,
eye = white!95!black,
pupil/.store in = \penguin@pupil,
- pupil = black,
+ pupil = black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \penguin@threeDtrue,
- back/.code = \penguin@backtrue,
+ 3D/.code = \penguin@threeDtrue,
+ back/.code = \penguin@backtrue,
contour/.code = \penguin@contourtrue
\def\penguin@contour{#1},
- contour/.default = black,
- outline/.forward to = /penguin/contour,
+ contour/.default = black,
+ outline/.forward to = /penguin/contour,
}
\def\penguin@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.865, 0.15) rectangle (0.865, 2.13);
@@ -91,7 +91,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -109,7 +109,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -118,14 +118,12 @@
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\penguin@part@draw[\penguin@body] (0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=-50];
- \penguin@part@draw[\penguin@body] (-0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=50];
+ \penguin@part@draw[\penguin@body] (-0.575,1.2) ellipse[x radius=0.38, y radius=0.1, rotate=50];
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifpenguin@back
- \penguin@part@draw[\penguin@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@part@draw[\penguin@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;
+ \penguin@part@draw[\penguin@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@part@draw[\penguin@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% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -142,10 +140,8 @@
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifpenguin@back
- \penguin@part@draw[\penguin@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@part@draw[\penguin@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;
+ \penguin@part@draw[\penguin@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@part@draw[\penguin@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% back
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -186,53 +182,53 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-penguins}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-penguins}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic penguin}}
%\penguin
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic penguin can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\penguin[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\penguin[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\penguin[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Bill colour}}
%\penguin[bill=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Belly colour}}
%\penguin[belly=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Foot colour}}
%\penguin[feet=red]
%\end{tcblisting}
%
%To view the penguin from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\penguin[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the penguin 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the penguin 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\penguin[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\penguin[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
index d551f0a0602..13845d86718 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty
@@ -9,14 +9,14 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-pigs}[2022/06/17 version v1.0 Drawing pigs in TikZ]
+\ProvidesPackage{tikzlings-pigs}[2025/01/05 version v2.2 Drawing pigs in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
-\definecolor{pigdark}{RGB}{241,164,142}
+\definecolor{piglight}{RGB}{247,205,193}
\newcommand*{\pig}[1][]{%
\begin{scope}%
@@ -27,12 +27,13 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname pighookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifpig@threeD
\newif\ifpig@back
\newif\ifpig@contour
+\newif\ifpig@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -48,11 +49,11 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \pig@body,
- body = pigdark,
+ body = piglight,
eye/.store in = \pig@eye,
- eye = gray,
+ eye = gray,
tail/.store in = \pig@tail,
- tail = \pig@body,
+ tail = pig@bodysat22,
mouth/.store in = \pig@mouth,
mouth = gray,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -60,21 +61,23 @@
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ openmouth/.code = \pig@openmouthtrue,
+ open mouth/.forward to = /pig/openmouth,
3D/.code = \pig@threeDtrue
- \def\pig@mouth{gray!70!black},
- back/.code = \pig@backtrue,
+ \def\pig@mouth{gray!70!black},
+ back/.code = \pig@backtrue,
contour/.code = \pig@contourtrue
\def\pig@contour{#1}
\def\pig@mouth{#1}
\def\pig@tail{#1},
- contour/.default = black,
- outline/.forward to = /pig/contour,
+ contour/.default = black,
+ outline/.forward to = /pig/contour,
}
\def\pig@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.905, 2.27);
@@ -91,7 +94,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -108,8 +111,20 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+ % generating saturated version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\pig@body}{\pig@model}{\pig@colorspec}
+ \convertcolorspec{\pig@model}{\pig@colorspec}{hsb}{\pig@hsbcolorspec}
+ \pgfmathsetmacro{\pig@hue}{(array({\pig@hsbcolorspec},0))}
+ \pgfmathsetmacro{\pig@sat}{(array({\pig@hsbcolorspec},1)+0.22)}
+ \pgfmathsetmacro{\pig@bright}{(array({\pig@hsbcolorspec},2))}
+ \definecolor{pig@bodysat22}{hsb}{\pig@hue,\pig@sat,\pig@bright}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -123,12 +138,12 @@
%
% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifpig@back
- \pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
- \pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
+ \pig@part@draw[pig@bodysat22] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
+ \pig@part@draw[pig@bodysat22] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \pig@part@draw[\pig@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;
+ \pig@part@draw[\pig@body] ( 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
@@ -136,12 +151,12 @@
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifpig@back
- \pig@part@draw[\pig@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@part@draw[\pig@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@part@draw[pig@bodysat22] (-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@part@draw[pig@bodysat22] (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% back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \pig@part@draw[\pig@body!55!white] (0,1.64) ellipse[x radius=.5, y radius=.5];
+ \pig@part@draw[\pig@body] (0,1.64) ellipse[x radius=.5, y radius=.5];
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifpig@back
@@ -151,28 +166,32 @@
\pig@part@draw[\pig@eye] ( 0.09, 1.82) circle[radius=0.02];
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \pig@part@draw[\pig@body] (0, 1.62) ellipse[x radius=0.18, y radius=0.14];
+ \pig@part@draw[pig@bodysat22] (0, 1.62) ellipse[x radius=0.18, y radius=0.14];
\pig@part@draw[gray] (-0.06, 1.62) circle[radius=0.035];
\pig@part@draw[gray] ( 0.06, 1.62) circle[radius=0.035];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\pig@mouth,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;
+ \ifpig@openmouth
+ \filldraw[\pig@mouth,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16];
+ \else
+ \draw[\pig@mouth,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16];
+ \fi
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \pig@part@draw[\pig@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
- \pig@part@draw[\pig@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
+ \pig@part@draw[pig@bodysat22] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
+ \pig@part@draw[pig@bodysat22] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
%
\fi% back
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \pig@part@draw[\pig@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@part@draw[\pig@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@part@draw[\pig@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@part@draw[\pig@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@part@draw[pig@bodysat22] (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@part@draw[\pig@body] (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@part@draw[pig@bodysat22] (-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@part@draw[\pig@body] (-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@back
- \draw[\pig@tail,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);
+ \draw[\pig@tail,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% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -193,47 +212,52 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-pigs}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-pigs}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic pig}}
%\pig
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic pig can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\pig[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\pig[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Tail colour}}
%\pig[tail=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\pig[mouth=red]
%\end{tcblisting}
%
+% The pig can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\pig[openmouth]
+%\end{tcblisting}
+%
%To view the pig from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\pig[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the pig 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the pig 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\pig[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\pig[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
index 5ce10d34be2..47f868b0b71 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-rhinos}[2022/06/17 version v1.0 Drawing rhinos in TikZ]
+\ProvidesPackage{tikzlings-rhinos}[2025/01/05 version v2.2 Drawing rhinos in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,12 +26,13 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname rhinohookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifrhino@threeD
\newif\ifrhino@back
\newif\ifrhino@contour
+\newif\ifrhino@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -47,34 +48,38 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \rhino@body,
- body = gray,
+ body = gray!55!white,
toes/.store in = \rhino@toes,
- toes = \rhino@body!55!white,
+ toes = \rhino@body,
eye/.store in = \rhino@eye,
- eye = white,
+ eye = white,
pupil/.store in = \rhino@pupil,
- pupil = black,
+ pupil = black,
mouth/.store in = \rhino@mouth,
- mouth = \rhino@body!70!black,
+ mouth = \rhino@body!50!black,
+ horn/.store in = \rhino@horn,
+ horn = white!95!yellow,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ openmouth/.code = \rhino@openmouthtrue,
+ open mouth/.forward to = /rhino/openmouth,
3D/.code = \rhino@threeDtrue
- \def\rhino@mouth{black},
- back/.code = \rhino@backtrue,
+ \def\rhino@mouth{black},
+ back/.code = \rhino@backtrue,
contour/.code = \rhino@contourtrue
\def\rhino@contour{#1}
\def\rhino@mouth{#1},
- contour/.default = black,
- outline/.forward to = /rhino/contour,
+ contour/.default = black,
+ outline/.forward to = /rhino/contour,
}
\def\rhino@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.625, 2.17);
@@ -91,7 +96,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -109,7 +114,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -117,25 +122,22 @@
\csname tikzlinghookbackground\endcsname
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \rhino@part@draw[\rhino@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@part@draw[\rhino@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@part@draw[\rhino@body!70!black] (-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@part@draw[\rhino@body!70!black] (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@back
- \begin{scope}
- \clip (-0.5,0.4) rectangle (0.5,0.13);
- \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \end{scope}
+ \rhino@part@draw[\rhino@body!70!black] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.17, y radius=0.19] -- cycle;
+ \rhino@part@draw[\rhino@body!70!black](0.08,0.13) arc [start angle=180, end angle=0, x radius=0.17, y radius=0.19] -- cycle;
\fi% back
%
% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifrhino@back
- \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
+ \rhino@part@draw[\rhino@body!83!black] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \rhino@part@draw[\rhino@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;
+ \rhino@part@draw[\rhino@body] ( 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
@@ -143,12 +145,12 @@
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifrhino@back
- \rhino@part@draw[\rhino@body] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
- \rhino@part@draw[\rhino@body] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
+ \rhino@part@draw[\rhino@body!70!black] (0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=90];
+ \rhino@part@draw[\rhino@body!70!black] (-0.3,1.0) ellipse[x radius=0.24, y radius=0.13, rotate=-90];
\fi% back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle[radius=0.36];
+ \rhino@part@draw[\rhino@body] (0, 1.76) circle[radius=0.36];
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifrhino@back
@@ -167,26 +169,27 @@
\fi% contour
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
+ \rhino@part@draw[\rhino@body!83!black] (0, 1.55) ellipse[x radius=0.36, y radius=0.2];
%
% Horn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \rhino@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;
+ \rhino@part@draw[\rhino@horn] (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;
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\rhino@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ;
+ \ifrhino@openmouth
+ \filldraw[\rhino@mouth,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2];
+ \else
+ \draw[\rhino@mouth,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@part@draw[\rhino@body] (-0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse[x radius=0.16, y radius=0.17];
- \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
- \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
- \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
- \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse[x radius=0.05, y radius=0.1];
- \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse[x radius=0.05, y radius=0.1];
- \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse[x radius=0.05, y radius=0.1];
- \end{scope}
+ \rhino@part@draw[\rhino@body!70!black] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.17, y radius=0.19] -- cycle;
+ \rhino@part@draw[\rhino@toes] (-0.08,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.08] -- cycle;
+ \rhino@part@draw[\rhino@toes] (-0.2,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.1] -- cycle;
+ \rhino@part@draw[\rhino@toes] (-0.32,0.13) arc [start angle=0, end angle=180, x radius=0.05, y radius=0.08] -- cycle;
+ \rhino@part@draw[\rhino@body!70!black](0.08,0.13) arc [start angle=180, end angle=0, x radius=0.17, y radius=0.19] -- cycle;
+ \rhino@part@draw[\rhino@toes] (0.08,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.08] -- cycle;
+ \rhino@part@draw[\rhino@toes] (0.2,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.1] -- cycle;
+ \rhino@part@draw[\rhino@toes] (0.32,0.13) arc [start angle=180, end angle=0, x radius=0.05, y radius=0.08] -- cycle;
%
\fi% back
%
@@ -208,52 +211,60 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-rhinos}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-rhinos}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic rhino}}
%\rhino
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic rhino can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\rhino[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\rhino[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\rhino[pupil=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\rhino[mouth=red]
%\end{tcblisting}
+%\begin{tcblisting}{title={Horn colour}}
+%\rhino[horn=red]
+%\end{tcblisting}
+%
+% The rhino can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\rhino[openmouth]
+%\end{tcblisting}
%
%The hippo can also do its nails:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Toe colour}}
%\rhino[toes=red]
%\end{tcblisting}
%
%To view the rhino from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\rhino[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the rhino 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the rhino 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\rhino[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\rhino[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty
index 5c8cd7e6bc3..c412796adc6 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sheep.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-sheep}[2022/06/17 version v1.0 Drawing sheep in TikZ]
+\ProvidesPackage{tikzlings-sheep}[2025/01/05 version v2.2 Drawing sheep in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -52,11 +52,11 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
body/.store in = \sheep@body,
- body = brown!50!darkgray!97!yellow,
+ body = brown!50!darkgray!97!yellow!50!darkgray,
eye/.store in = \sheep@eye,
- eye = \sheep@body!50!black,
+ eye = sheep@bright!50!black,
nose/.store in = \sheep@nose,
- nose = \sheep@body!50!black,
+ nose = sheep@bright!50!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
@@ -64,22 +64,22 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
blush/.code = \sheep@blushtrue
\def\sheep@blushcolor{#1},
- blush/.default = red,
+ blush/.default = red,
monocle/.code = \sheep@monocletrue,
- 3D/.code = \sheep@threeDtrue,
- back/.code = \sheep@backtrue,
+ 3D/.code = \sheep@threeDtrue,
+ back/.code = \sheep@backtrue,
contour/.code = \sheep@contourtrue
\def\sheep@contour{#1}
\def\sheep@blushcolor{#1}
\def\sheep@nose{#1},
- contour/.default = black,
- outline/.forward to = /sheep/contour,
+ contour/.default = black,
+ outline/.forward to = /sheep/contour,
}
\def\sheep@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.7,0.08) rectangle (0.7,2.33);
@@ -94,9 +94,10 @@
\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}%
\pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
+ \pgfmathsetmacro{\decoscalefactor}{sign(\tmpscaleA)*sign(\tmpscaleD)*\scalingfactor}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -113,28 +114,40 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+ % generating saturated/brighter version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\sheep@body}{\sheep@model}{\sheep@colorspec}
+ \convertcolorspec{\sheep@model}{\sheep@colorspec}{hsb}{\sheep@hsbcolorspec}
+ \pgfmathsetmacro{\sheep@hue}{(array({\sheep@hsbcolorspec},0))}
+ \pgfmathsetmacro{\sheep@sat}{(array({\sheep@hsbcolorspec},1))}
+ \pgfmathsetmacro{\sheep@bright}{(array({\sheep@hsbcolorspec},2))+0.1}
+ \definecolor{sheep@bright}{hsb}{\sheep@hue,\sheep@sat,\sheep@bright}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname sheephookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- %
+ \sheep@part@draw[sheep@bright] (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;
+ \sheep@part@draw[sheep@bright!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;
+ \sheep@part@draw[sheep@bright] (-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;
+ \sheep@part@draw[sheep@bright!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 if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsheep@back
- \sheep@part@draw[\sheep@body] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
- \sheep@part@draw[\sheep@body] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
+ \sheep@part@draw[sheep@bright] (0.3216,0.15) arc (-15:195:0.12) -- (0.16,0.15) to [bend left] (0.25,0.15) -- cycle;
+ \sheep@part@draw[sheep@bright] (-0.3216,0.15) arc (195:-15:0.12) -- (-0.16,0.15) to[bend right] (-0.25,0.15) --cycle;
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (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;
+ \sheep@part@draw[\sheep@body,decorate,decoration={bumps,amplitude=\decoscalefactor*2.5pt,segment length=\scalingfactor*10pt}] (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 sheephookbelly\endcsname
@@ -142,30 +155,30 @@
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsheep@back
- \sheep@part@draw[\sheep@body!45!white!95!orange] (-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;
- \sheep@part@draw[\sheep@body!45!white!95!orange] (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;
+ \sheep@part@draw[sheep@bright!45!white!95!orange] (-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;
+ \sheep@part@draw[sheep@bright!45!white!95!orange] (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% back
%
% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle;
+ \sheep@part@draw[\sheep@body,decorate,decoration={bumps,amplitude=\decoscalefactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle;
%
% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsheep@back
- \sheep@part@draw[\sheep@body!45!white!95!orange,rounded corners=\scalingfactor*0.1pt] (0,0.7) -- (0.08, 0.3236) arc (0:-180:\scalingfactor*2pt) -- cycle;
+ \sheep@part@draw[sheep@bright!45!white!95!orange,rounded corners=\scalingfactor*0.1pt] (0,0.7) -- (0.08, 0.3236) arc (0:-180:\scalingfactor*2pt) -- cycle;
\fi% back
%
% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsheep@back
%
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@body!45!white!95!orange] (0.4, 1.8) .. controls (0.4, 1.5) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.4, 1.5) .. (-0.4, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.4, 1.8) -- cycle;
+ \sheep@part@draw[sheep@bright!45!white!95!orange] (0.4, 1.8) .. controls (0.4, 1.5) and (0.2, 1.25) .. (0, 1.16) .. controls (-0.2, 1.25) and (-0.4, 1.5) .. (-0.4, 1.8) .. controls (-0.34, 2.3) and (0.34, 2.3) .. (0.4, 1.8) -- cycle;
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- \sheep@part@draw[\sheep@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;
- %
+ \sheep@part@draw[sheep@bright] (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;
+ \sheep@part@draw[sheep@bright!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;
+ \sheep@part@draw[sheep@bright] (-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;
+ \sheep@part@draw[sheep@bright!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;
+ %
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsheep@back
\sheep@part@draw[\sheep@eye] (0.2, 1.66) circle[radius=0.06];
@@ -176,15 +189,15 @@
\draw[\sheep@nose,line width=\scalingfactor*0.8pt,line cap=round] (0.16,1.43) arc [start angle=-30, end angle=-150, radius=0.185] (0.0,1.335) -- (0,1.175);
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@body!45!white!95!orange] (0.3216,0.13) arc (-15:195:0.10) -- (0.16,0.13) to [bend left] (0.25,0.13) -- cycle;
- \sheep@part@draw[\sheep@body!45!white!95!orange] (-0.3216,0.13) arc (195:-15:0.10) -- (-0.16,0.13) to[bend right] (-0.25,0.13) --cycle;
+ \sheep@part@draw[sheep@bright!45!white!95!orange] (0.3216,0.13) arc (-15:195:0.10) -- (0.16,0.13) to [bend left] (0.25,0.13) -- cycle;
+ \sheep@part@draw[sheep@bright!45!white!95!orange] (-0.3216,0.13) arc (195:-15:0.10) -- (-0.16,0.13) to[bend right] (-0.25,0.13) --cycle;
%
% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sheep@part@draw[\sheep@body!50!darkgray,decorate,decoration={bumps,amplitude=\scalingfactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle;
+ \sheep@part@draw[\sheep@body,decorate,decoration={bumps,amplitude=\decoscalefactor*2.5pt,segment length=\scalingfactor*10pt}] (-0.275,1.98) -- (-0.2,2.2) -- (-0.008,2.2) -- (0.2,2.2) -- (0.275,1.98) -- cycle;
%
% Blush %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsheep@blush
- \fill[\sheep@blushcolor,path fading=sheep@blush] (-0.25, 1.5) circle[radius=0.1];
+ \fill[\sheep@blushcolor,path fading=sheep@blush] (-0.25, 1.5) circle[radius=0.1];
\fill[\sheep@blushcolor,path fading=sheep@blush] (0.25, 1.5) circle[radius=0.1];
\fi% blush
%
@@ -199,7 +212,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname sheephookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -214,54 +227,54 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-sheep}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-sheep}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic sheep}}
%\sheep
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic sheep can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\sheep[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\sheep[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Nose colour}}
%\sheep[nose=red]
%\end{tcblisting}
%
%The sheep can also blush
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Blushing sheep}}
%\sheep[blush=red]
%\end{tcblisting}
%
%and put on a monocle
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Monocle}}
%\sheep[monocle]
%\end{tcblisting}
%
%To view the sheep from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\sheep[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the sheep 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the sheep 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\sheep[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\sheep[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
index fc7658629dd..514fd727316 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty
@@ -9,15 +9,15 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-sloths}[2022/06/17 version v1.0 Drawing sloths in TikZ]
+\ProvidesPackage{tikzlings-sloths}[2025/01/05 version v2.2 Drawing sloths in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
-\definecolor{slothcol}{RGB}{168,156,123}
+\definecolor{slothcol}{RGB}{143,133,105}
\newcommand*{\sloth}[1][]{%
\begin{scope}%
@@ -28,13 +28,14 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname slothhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifsloth@sleeping
\newif\ifsloth@threeD
\newif\ifsloth@back
\newif\ifsloth@contour
+\newif\ifsloth@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -52,31 +53,33 @@
body/.store in = \sloth@body,
body = slothcol,
eye/.store in = \sloth@eye,
- eye = black,
+ eye = black,
eyelid/.store in = \sloth@eyelid,
- eyelid = \sloth@body!50!white,
+ eyelid = sloth@bright10!50!white,
mouth/.store in = \sloth@mouth,
- mouth = \sloth@body!40!black,
+ mouth = sloth@bright10!40!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- sleeping/.code = \sloth@sleepingtrue,
- 3D/.code = \sloth@threeDtrue,
- back/.code = \sloth@backtrue,
+ sleeping/.code = \sloth@sleepingtrue,
+ openmouth/.code = \sloth@openmouthtrue,
+ open mouth/.forward to = /sloth/openmouth,
+ 3D/.code = \sloth@threeDtrue,
+ back/.code = \sloth@backtrue,
contour/.code = \sloth@contourtrue
\def\sloth@contour{#1}
\def\sloth@mouth{#1}
\def\sloth@eyelid{#1},
- contour/.default = black,
- outline/.forward to = /sloth/contour,
+ contour/.default = black,
+ outline/.forward to = /sloth/contour,
}
\def\sloth@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.7,0.12) rectangle (0.7, 2.27);
@@ -93,7 +96,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -110,8 +113,20 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
+ % generating saturated/brighter version of body colour
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \extractcolorspecs{\sloth@body}{\sloth@model}{\sloth@colorspec}
+ \convertcolorspec{\sloth@model}{\sloth@colorspec}{hsb}{\sloth@hsbcolorspec}
+ \pgfmathsetmacro{\sloth@hue}{(array({\sloth@hsbcolorspec},0))}
+ \pgfmathsetmacro{\sloth@sat}{(array({\sloth@hsbcolorspec},1))}
+ \pgfmathsetmacro{\sloth@bright}{(array({\sloth@hsbcolorspec},2))+0.1}
+ \definecolor{sloth@bright10}{hsb}{\sloth@hue,\sloth@sat,\sloth@bright}
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -120,29 +135,28 @@
%
% Arms if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsloth@back
- \sloth@part@draw[\sloth@body] (0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=10];
- \sloth@part@draw[\sloth@body] (-0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=-10];
+ \sloth@part@draw[sloth@bright10] (0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=10];
+ \sloth@part@draw[sloth@bright10] (-0.53,0.95) ellipse[x radius=0.1, y radius=0.27, rotate=-10];
\fi% back
%
% Feet if back%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsloth@back
- \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019,rotate=-10];
- \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
- \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
- \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
- \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
- \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
- \sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
- \sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
+ \fill[sloth@bright10!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019,rotate=-10];
+ \fill[sloth@bright10!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
+ \fill[sloth@bright10!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
+ \fill[sloth@bright10!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
+ \fill[sloth@bright10!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
+ \fill[sloth@bright10!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
+ \sloth@part@draw[sloth@bright10] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
+ \sloth@part@draw[sloth@bright10] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@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;
+ \sloth@part@draw[\sloth@body] (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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsloth@back
- \sloth@part@draw[\sloth@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;
+ \sloth@part@draw[sloth@bright10!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% back
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -150,46 +164,42 @@
\csname tikzlinghookbelly\endcsname
%
% Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@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;
+ \sloth@part@draw[sloth@bright10] (-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@part@draw[\sloth@body]
- ( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.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;
+ \sloth@part@draw[sloth@bright10] ( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsloth@back
%
% Inner part of hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@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;
+ \sloth@part@draw[sloth@bright10!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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsloth@contour
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle;
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle;
\else% contour
- \fill[\sloth@body!60!black] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle;
- \fill[\sloth@body!60!black] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle;
+ \fill[sloth@bright10!60!black] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle;
+ \fill[sloth@bright10!60!black] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle;
\fi% contour
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsloth@sleeping
- \fill[\sloth@eyelid] (0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid] (0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02);
%
- \fill[\sloth@eyelid] (-0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
- \fill[\sloth@eyelid,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid] (-0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02);
+ \fill[\sloth@eyelid,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02);
%
\sloth@part@draw[\sloth@eyelid] (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;
- \sloth@part@draw[\sloth@eyelid] (-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;
+ \sloth@part@draw[\sloth@eyelid] (-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;
\else% sleeping
\sloth@part@draw[\sloth@eye] (0.193,1.75) circle[radius=0.04];
\sloth@part@draw[\sloth@eye] (-0.193,1.75) circle[radius=0.04];
@@ -198,14 +208,18 @@
\fi% sleeping
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048];
+ \sloth@part@draw[sloth@bright10!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048];
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \draw[\sloth@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16];
+ \ifsloth@openmouth
+ \filldraw[\sloth@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16];
+ \else
+ \draw[\sloth@mouth,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16];
+ \fi
%
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@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@part@draw[\sloth@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@part@draw[sloth@bright10] (-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@part@draw[sloth@bright10] (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;
%
\ifsloth@contour
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110];
@@ -216,18 +230,18 @@
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117];
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125];
\else% contour
- \fill[\sloth@body!50!black] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110];
- \fill[\sloth@body!50!black] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117];
- \fill[\sloth@body!50!black] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125];
+ \fill[sloth@bright10!50!black] (0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=110];
+ \fill[sloth@bright10!50!black] (0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=117];
+ \fill[sloth@bright10!50!black] (0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=125];
%
- \fill[\sloth@body!50!black] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110];
- \fill[\sloth@body!50!black] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117];
- \fill[\sloth@body!50!black] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125];
+ \fill[sloth@bright10!50!black] (-0.15, 0.61) ellipse[x radius=0.017, y radius=0.07, rotate=-110];
+ \fill[sloth@bright10!50!black] (-0.17, 0.57) ellipse[x radius=0.015, y radius=0.07, rotate=-117];
+ \fill[sloth@bright10!50!black] (-0.19, 0.53) ellipse[x radius=0.012, y radius=0.062, rotate=-125];
\fi% contour
%
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \sloth@part@draw[\sloth@body] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
- \sloth@part@draw[\sloth@body] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
+ \sloth@part@draw[sloth@bright10] (0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=25];
+ \sloth@part@draw[sloth@bright10] (-0.33,0.31) ellipse[x radius=0.25, y radius=0.13, rotate=-25];
%
\ifsloth@contour
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10];
@@ -237,12 +251,12 @@
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
\draw[\sloth@contour,fill=white,line width=\scalingfactor*0.4pt] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
\else% contour
- \fill[\sloth@body!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10];
- \fill[\sloth@body!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
- \fill[\sloth@body!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
- \fill[\sloth@body!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
- \fill[\sloth@body!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
- \fill[\sloth@body!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
+ \fill[sloth@bright10!50!black] (-0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=-10];
+ \fill[sloth@bright10!50!black] (-0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=-16];
+ \fill[sloth@bright10!50!black] (-0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=-22];
+ \fill[sloth@bright10!50!black] (0.125,0.265) ellipse[x radius=0.07, y radius=0.019, rotate=10];
+ \fill[sloth@bright10!50!black] (0.14,0.21) ellipse[x radius=0.07, y radius=0.017, rotate=16];
+ \fill[sloth@bright10!50!black] (0.16,0.165) ellipse[x radius=0.07, y radius=0.015, rotate=22];
\fi% contour
%
\fi% back
@@ -265,52 +279,57 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-sloths}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-sloths}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic sloth}}
%\sloth
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic sloth can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\sloth[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\sloth[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\sloth[mouth=red]
%\end{tcblisting}
%
+% The sloth can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\sloth[openmouth]
+%\end{tcblisting}
+%
%If tired, the sloth can take a nap:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Sleep}}
%\sloth[sleeping]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eyelid colour}}
%\sloth[sleeping,eyelid=red]
%\end{tcblisting}
%
%To view the sloth from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\sloth[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the sloth 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the sloth 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\sloth[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\sloth[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty
index a95bda001cb..600b17227a2 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmen.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-snowmen}[2022/06/17 version v1.0 Draw snowmen in TikZ]
+\ProvidesPackage{tikzlings-snowmen}[2025/01/05 version v2.2 Draw snowmen in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -26,13 +26,14 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname snowmanhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifsnowman@threeD
\newif\ifsnowman@back
\newif\ifsnowman@globalwarming
\newif\ifsnowman@contour
+\newif\ifsnowman@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -56,29 +57,31 @@
mouth/.store in = \snowman@mouth,
mouth = black,
buttons/.store in = \snowman@buttons,
- buttons = black,
+ buttons = black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \snowman@threeDtrue,
+ openmouth/.code = \snowman@openmouthtrue,
+ open mouth/.forward to = /snowman/openmouth,
+ 3D/.code = \snowman@threeDtrue,
back/.code = \snowman@backtrue,
globalwarming/.code= \snowman@globalwarmingtrue
\def\snowman@globalwarming{#1},
- globalwarming/.default = blue!10!white,
+ globalwarming/.default = blue!10!white,
global warming/.forward to = /snowman/globalwarming,
contour/.code = \snowman@contourtrue
\def\snowman@contour{#1}
\def\snowman@mouth{#1},
- contour/.default = black,
- outline/.forward to = /snowman/contour,
+ contour/.default = black,
+ outline/.forward to = /snowman/contour,
}
\def\snowman@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.75, 0.0) rectangle (0.75, 2.13);
@@ -95,7 +98,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -113,7 +116,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -135,25 +138,25 @@
\csname tikzlinghookbelly\endcsname
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \fill[\snowman@mouth] (0,1.23) circle[radius=0.025];
- \fill[\snowman@mouth] (0.06,1.3) circle[radius=0.025];
- \fill[\snowman@mouth] (-0.06,1.27) circle[radius=0.025];
- \fill[\snowman@mouth] (0.09,1.37) circle[radius=0.025];
- \fill[\snowman@mouth] (-0.18,1.28) circle[radius=0.025];
- \fill[\snowman@mouth] (0.2,1.28) circle[radius=0.025];
+ \fill[\snowman@mouth] (0,1.23) circle[radius=0.025];
+ \fill[\snowman@mouth] (0.06,1.3) circle[radius=0.025];
+ \fill[\snowman@mouth] (-0.06,1.27) circle[radius=0.025];
+ \fill[\snowman@mouth] (0.09,1.37) circle[radius=0.025];
+ \fill[\snowman@mouth] (-0.18,1.28) circle[radius=0.025];
+ \fill[\snowman@mouth] (0.2,1.28) circle[radius=0.025];
\fill[\snowman@mouth] (-0.25,1.2) circle[radius=0.025];
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \snowman@part@draw[\snowman@eye] (-0.5,1.75) circle[radius=0.06];
- \snowman@part@draw[\snowman@eye] (-0.1,1.55) circle[radius=0.06];
+ \snowman@part@draw[\snowman@eye] (-0.5,1.75) circle[radius=0.06];
+ \snowman@part@draw[\snowman@eye] (-0.1,1.55) circle[radius=0.06];
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \snowman@part@draw[\snowman@nose] (-0.6,1.4) -- (-0.8,1.42) -- (-0.6,1.54) (-0.6,1.4) arc[radius=0.07, start angle=-90, end angle=90];
+ \snowman@part@draw[\snowman@nose] (-0.6,1.4) -- (-0.8,1.42) -- (-0.6,1.54) (-0.6,1.4) arc[radius=0.07, start angle=-90, end angle=90];
%
% Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\snowman@part@draw[\snowman@buttons] (0.1,0.8) circle[radius=0.06];
\snowman@part@draw[\snowman@buttons] (-0.15,0.55) circle[radius=0.06];
- \snowman@part@draw[\snowman@buttons] (0,0.25) circle[radius=0.06];
+ \snowman@part@draw[\snowman@buttons] (0,0.25) circle[radius=0.06];
%
% normal snowman %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\else% global warming
@@ -165,7 +168,7 @@
% Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\snowman@part@draw[\snowman@body] (0,0.5) ellipse[x radius=0.6, y radius=0.5];
\snowman@part@draw[\snowman@body] (0,1.1) ellipse[x radius=0.5, y radius=0.4];
- \snowman@part@draw[\snowman@body] (0,1.7) circle[radius=0.4];
+ \snowman@part@draw[\snowman@body] (0,1.7) circle[radius=0.4];
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname snowmanhookbelly\endcsname
@@ -182,18 +185,25 @@
\fill[\snowman@mouth] (-0.08,1.522) circle[radius=0.016];
\fill[\snowman@mouth] (0.12,1.543) circle[radius=0.016];
\fill[\snowman@mouth] (-0.12,1.543) circle[radius=0.016];
+ \ifsnowman@openmouth
+ \fill[\snowman@mouth] (0,1.57) circle[radius=0.016];
+ \fill[\snowman@mouth] (-0.04,1.565) circle[radius=0.016];
+ \fill[\snowman@mouth] (-0.08,1.56) circle[radius=0.016];
+ \fill[\snowman@mouth] (0.04,1.565) circle[radius=0.016];
+ \fill[\snowman@mouth] (0.08,1.56) circle[radius=0.016];
+ \fi
%
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \snowman@part@draw[\snowman@eye] (-0.155,1.8) circle[radius=0.04];
- \snowman@part@draw[\snowman@eye] (0.155,1.8) circle[radius=0.04];
+ \snowman@part@draw[\snowman@eye] (-0.155,1.8) circle[radius=0.04];
+ \snowman@part@draw[\snowman@eye] (0.155,1.8) circle[radius=0.04];
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\snowman@part@draw[\snowman@nose] (0,1.72) arc [radius=0.05, start angle=90, end angle=270] (0,1.62) -- (0.15,1.64) -- (0,1.72);
%
% Buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \snowman@part@draw[\snowman@buttons] (0,1.15) circle[radius=0.04];
- \snowman@part@draw[\snowman@buttons] (0,0.95) circle[radius=0.04];
- \snowman@part@draw[\snowman@buttons] (0,0.75) circle[radius=0.04];
+ \snowman@part@draw[\snowman@buttons] (0,1.15) circle[radius=0.04];
+ \snowman@part@draw[\snowman@buttons] (0,0.95) circle[radius=0.04];
+ \snowman@part@draw[\snowman@buttons] (0,0.75) circle[radius=0.04];
%
\fi% back
%
@@ -217,55 +227,60 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-snowmen}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-snowmen}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic snowman}}
%\snowman
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic snowman can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\snowman[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of various body parts can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\snowman[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Nose colour}}
%\snowman[nose=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Mouth colour}}
%\snowman[mouth=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Button colour}}
%\snowman[buttons=red]
%\end{tcblisting}
%
+% The snowman can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\snowman[openmouth]
+%\end{tcblisting}
+%
%The biggest enemy of the snowman are raising temperatures:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Global warming}}
%\snowman[globalwarming,tophat]
%\end{tcblisting}
%
%To view the snowman from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\snowman[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the snowman 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the snowman 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\snowman[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\snowman[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
index 0852a3fd92b..7f132d75853 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-squirrels}[2022/06/17 version v1.0 Drawing squirrels in TikZ]
+\ProvidesPackage{tikzlings-squirrels}[2025/01/05 version v2.2 Drawing squirrels in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -29,8 +29,11 @@
}
\newif\ifsquirrel@threeD
+\newif\ifsquirrel@leftstep
+\newif\ifsquirrel@rightstep
\newif\ifsquirrel@back
\newif\ifsquirrel@contour
+\newif\ifsquirrel@openmouth
\tikzset{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -48,16 +51,25 @@
body/.store in = \squirrel@body,
body = brown!40!gray!90!red,
eye/.store in = \squirrel@eye,
- eye = white,
+ eye = white,
pupil/.store in = \squirrel@pupil,
- pupil = black,
+ pupil = black,
+ mouth/.store in = \squirrel@mouth,
+ mouth = \squirrel@body!70!brown!60!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- 3D/.code = \squirrel@threeDtrue,
- back/.code = \squirrel@backtrue,
+ openmouth/.code = \squirrel@openmouthtrue,
+ open mouth/.forward to = /squirrel/openmouth,
+ 3D/.code = \squirrel@threeDtrue
+ \def\squirrel@mouth{\squirrel@body!40!black},
+ leftstep/.code = \squirrel@leftsteptrue,
+ left step/.forward to = /squirrel/leftstep,
+ rightstep/.code = \squirrel@rightsteptrue,
+ right step/.forward to = /squirrel/rightstep,
+ back/.code = \squirrel@backtrue,
contour/.code = \squirrel@contourtrue
\def\squirrel@contour{#1},
contour/.default = black,
@@ -67,7 +79,7 @@
\def\squirrel@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.53,0.1) rectangle (1.12,2.15);
%
@@ -83,7 +95,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -101,16 +113,24 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname squirrelhookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
- \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \ifsquirrel@leftstep
+ \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
+ \ifsquirrel@rightstep
+ \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \else% step
+ \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \fi% step
%
% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsquirrel@back
@@ -119,8 +139,7 @@
\fi% back
%
% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \squirrel@part@draw[\squirrel@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;
+ \squirrel@part@draw[\squirrel@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifsquirrel@back
@@ -132,17 +151,16 @@
\csname tikzlinghookbelly\endcsname
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \squirrel@part@draw[\squirrel@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@part@draw[\squirrel@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@part@draw[\squirrel@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@part@draw[\squirrel@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsquirrel@contour
- \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3];
- \squirrel@part@draw[\squirrel@body] (0.2,1.6) circle[radius=0.15];
+ \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3];
+ \squirrel@part@draw[\squirrel@body] (0.2,1.6) circle[radius=0.15];
\squirrel@part@draw[\squirrel@body] (-0.2,1.6) circle[radius=0.15];
\ifsquirrel@back
- \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3];
+ \squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3];
\fi% back
\else% contour
\squirrel@part@draw[\squirrel@body] (0,1.75) circle[radius=0.3] (0.2,1.6) circle[radius=0.15] (-0.2,1.6) circle[radius=0.15];
@@ -156,7 +174,7 @@
%
% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\squirrel@part@draw[\squirrel@body!70!brown!60!black] (0,1.66) ellipse[x radius=0.06, y radius=0.03];
- %
+ %
% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\squirrel@part@draw[\squirrel@eye] (0.07,1.78) ellipse[x radius=0.05, y radius=0.07];
\squirrel@part@draw[\squirrel@eye] (-0.07,1.78) ellipse[x radius=0.05, y radius=0.07];
@@ -165,15 +183,19 @@
%
% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifsquirrel@contour
+ \draw[\squirrel@contour,fill=white,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) (0.15,1.61) arc [start angle=-20, end angle=-160, radius=0.16];
\draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (-0.025,1.567) rectangle ++(0.02,0.03);
\draw[\squirrel@contour,fill=white,line width=\scalingfactor*0.4pt] (0.025,1.567) rectangle ++(-0.02,0.03);
\draw[\squirrel@contour,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);
\else% contour
+ \ifsquirrel@openmouth
+ \filldraw[\squirrel@mouth,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) (0.15,1.61) arc [start angle=-20, end angle=-160, radius=0.16];
+ \fi% open 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@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);
+ \draw[\squirrel@mouth,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);
\fi% contour
- %
+ %
% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=70];
\squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] (-0.2,0.85) ellipse[x radius=0.22, y radius=0.11, rotate=-70];
@@ -183,7 +205,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname squirrelhookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -198,44 +220,58 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-squirrels}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-squirrels}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic squirrel}}
%\squirrel
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic squirrel can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\squirrel[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of the eyes can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\squirrel[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil colour}}
%\squirrel[pupil=red]
%\end{tcblisting}
+%\begin{tcblisting}{title={Mouth colour}}
+%\squirrel[mouth=red]
+%\end{tcblisting}
+%
+% The squirrel can open its mouth:
+%\begin{tcblisting}{title={Open mouth}}
+%\squirrel[openmouth]
+%\end{tcblisting}
+%
+%And the squirrel can lift its legs:
+%\begin{tcblisting}{title={Walking}}
+%\squirrel[leftstep]
+%\squirrel[rightstep,xshift=2cm]
+%\end{tcblisting}
%
%To view the squirrel from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\squirrel[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the squirrel 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the squirrel 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\squirrel[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\squirrel[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty
index 060e7b21f2e..f4bf79719a9 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-wolves.sty
@@ -9,10 +9,10 @@
%% https://github.com/samcarter/tikzlings
%%
%% Released under the LaTeX Project Public License v1.3c or later
-%% See http://www.latex-project.org/lppl.txt
+%% See https://www.latex-project.org/lppl.txt
%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings-wolves}[2022/06/17 version v1.0 Drawing wolves in TikZ]
+\ProvidesPackage{tikzlings-wolves}[2025/01/05 version v2.2 Drawing wolves in TikZ]
\RequirePackage{tikz}
\RequirePackage{tikzlings-addons}
@@ -27,7 +27,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname wolfhookforeground\endcsname
\csname tikzlinghookforeground\endcsname
- %
+ %
}
\newif\ifwolf@threeD
@@ -53,9 +53,9 @@
body/.store in = \wolf@body,
body = gray!90!white,
eye/.store in = \wolf@eye,
- eye = white,
+ eye = white,
pupil/.store in = \wolf@pupil,
- pupil = black,
+ pupil = black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% options
@@ -69,18 +69,18 @@
leftstep/.code = \wolf@leftsteptrue,
left step/.forward to = /wolf/leftstep,
rightstep/.code = \wolf@rightsteptrue,
- right step/.forward to = /wolf/rightstep,
- back/.code = \wolf@backtrue,
+ right step/.forward to = /wolf/rightstep,
+ back/.code = \wolf@backtrue,
contour/.code = \wolf@contourtrue
\def\wolf@contour{#1},
- contour/.default = black,
- outline/.forward to = /wolf/contour,
+ contour/.default = black,
+ outline/.forward to = /wolf/contour,
}
\def\wolf@draw{%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
- % minimal bounding box size
+ % minimal bounding box size
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\path (-0.625,0.1) rectangle (0.905, 2.17);
@@ -97,7 +97,7 @@
\pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
+ %
% switch between 2D, 3D and contours, from
% https://chat.stackexchange.com/transcript/message/45991801#45991801
%
@@ -115,32 +115,32 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Body parts
- %
+ %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname wolfhookbackground\endcsname
\csname tikzlinghookbackground\endcsname
- %
+ %
% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifwolf@leftstep
- \wolf@part@draw[\wolf@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \wolf@part@draw[\wolf@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \wolf@part@draw[\wolf@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \wolf@part@draw[\wolf@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
\ifwolf@rightstep
- \wolf@part@draw[\wolf@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
+ \wolf@part@draw[\wolf@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09];
\else% step
- \wolf@part@draw[\wolf@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
+ \wolf@part@draw[\wolf@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09];
\fi% step
%
% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\wolf@part@draw[\wolf@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;
- \wolf@part@draw[\wolf@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;
+ \wolf@part@draw[\wolf@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;
\wolf@part@draw[\wolf@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;
- \wolf@part@draw[\wolf@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;
- %
+ \wolf@part@draw[\wolf@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\unless\ifwolf@back
\wolf@part@draw[\wolf@body!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;
@@ -161,7 +161,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname wolfhookbelly\endcsname
\csname tikzlinghookbelly\endcsname
- %
+ %
% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifwolf@back
\wolf@part@draw[\wolf@body!70!white!95!brown] (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;
@@ -202,7 +202,7 @@
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname wolfhookbody\endcsname
\csname tikzlinghookbody\endcsname
- %
+ %
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -217,55 +217,55 @@
%
%\subsection{Package name}
%
-%\begin{tcolorbox}[lower separated=false, lefthand width=.8\linewidth]
-%\vspace*{0.5cm}
-%\lstinline|\usepackage{tikzlings-wolves}|
-%\vspace*{0.5cm}
+%\begin{tcolorbox}[title={Package usage}]
+%\begin{samcode}
+%\usepackage{tikzlings-wolves}
+%\end{samcode}
%\end{tcolorbox}
%
%\subsection{Basic Usage}
%
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Basic wolf}}
%\wolf
%\end{tcblisting}
%
%\subsection{Options}
%
%The basic wolf can be modified by changing its colour:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Body colour}}
%\wolf[body=blue]
%\end{tcblisting}
%
%In addition to the colour of the body, the colour of the eyes can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Eye colour}}
%\wolf[eye=red]
%\end{tcblisting}
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Pupil Colour}}
%\wolf[pupil=red]
%\end{tcblisting}
%
%The rotation angle of its arms can be adjusted:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Rotating the arms}}
%\wolf[rotatearms=40]
%\end{tcblisting}
%
%And the wolf can lift its legs:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Walking}}
%\wolf[leftstep]
%\wolf[rightstep,xshift=2cm]
%\end{tcblisting}
%
%To view the wolf from behind:
-%\begin{tcblisting}{}
+%\begin{tcblisting}{title={Back view}}
%\wolf[back]
%\end{tcblisting}
%
-%The key \lstinline|3D| will make the wolf 3-dimensional:
-%\begin{tcblisting}{}
+%The key \saminline|3D| will make the wolf 3-dimensional:
+%\begin{tcblisting}{title={3D view}}
%\wolf[3D]
%\end{tcblisting}
%
-%And finally the \lstinline|contour| key will only draw the outlines:
-%\begin{tcblisting}{}
+%And finally the \saminline|contour| key will only draw the outlines:
+%\begin{tcblisting}{title={Contours}}
%\wolf[contour=black]
%\end{tcblisting}
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty
index ecd7562fb87..4db7af570ac 100644
--- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty
+++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty
@@ -9,10 +9,10 @@
% https://github.com/samcarter/tikzlings
%
% Released under the LaTeX Project Public License v1.3c or later
-% See http://www.latex-project.org/lppl.txt
+% See https://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzlings}[2022/06/17 version v1.0 Collection of packages to draw animals and other beings in TikZ]
+\ProvidesPackage{tikzlings}[2025/01/05 version v2.2 Collection of packages to draw animals and other beings in TikZ]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -49,13 +49,13 @@
\else
\ifdefined\pdfrandomseed % pdflatex
\else
- \ifdefined\randomseed
+ \ifdefined\randomseed
\let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
\else
\let\pdfrandomseed\time % pre TL19 xelatex
\fi
\fi
- \pgfmathsetseed{\number\pdfrandomseed}
+ \pgfmathsetseed{\number\pdfrandomseed}
\fi
% #1: tikzling name.