diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex')
20 files changed, 1586 insertions, 556 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty index fb15b687196..0ea9bbe9f11 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty @@ -1,8 +1,8 @@ % !TeX root = ./testing/test.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-addons package (part of the tikzlings collection) -% A package to draw litlle things with tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-addons} - [2019/04/07 v0.2 Draw additional items for the tikzlings] +\ProvidesPackage{tikzlings-addons}[2020/04/22 version v0.3 Draw additional items for the tikzlings] \RequirePackage{tikz} \usetikzlibrary{patterns} % for the wizard hat @@ -85,7 +81,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /thing/.search also={% /tikz,/pgf, - /bear,/coati,/koala,/marmot,/mouse,/owl,/penguin,/snowman,/mole,/sloth,/pig,/cat,/hippo,/rhino,/panda, + /bear,/coati,/koala,/marmot,/mouse,/owl,/penguin,/snowman,/mole,/sloth,/pig,/cat,/hippo,/rhino,/panda,/bee,/anteater,/squirrel, }, %/thing/.unknown/.code=\relax, % bad idea, prevents tikz/pgf keys /thing/.cd, @@ -220,7 +216,7 @@ wine/.code = \thing@winetrue \def\thing@wine{#1}, wine/.default = red!70!black, - cocktail/.code = \thing@cocktailtrue, + cocktail/.code = \thing@cocktailtrue, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Sport @@ -285,13 +281,13 @@ umbrella/.code = \thing@umbrellatrue \def\thing@umbrella{#1}, umbrella/.default = cyan, - umbrellaclosed/.code = \thing@umbrellaclosedtrue - \def\thing@umbrellaclosed{#1}, - umbrellaclosed/.default = cyan, - umbrella closed/.forward to = /thing/umbrellaclosed, - handbag/.code = \thing@handbagtrue + umbrellaclosed/.code = \thing@umbrellaclosedtrue + \def\thing@umbrellaclosed{#1}, + umbrellaclosed/.default = cyan, + umbrella closed/.forward to = /thing/umbrellaclosed, + handbag/.code = \thing@handbagtrue \def\thing@handbag{#1}, - handbag/.default = red!70!black, + handbag/.default = red!70!black, } \def\thing@draw{% @@ -303,7 +299,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -316,36 +312,36 @@ % 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,rotate around={-15:(0.05,1.92)}] (0.05,1.92) ellipse (0.6 and 0.1); - \fill[\thing@hat,rotate around={-15:(0.14,2.2)}] (0.14,2.2) ellipse (0.37 and 0.08); + \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,rotate around={-15:(0.1,1.94)}] (0.1,1.94) ellipse (0.48 and 0.1); + \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,rotate around={-15:(0.21,2.385)}] (0.21,2.385) ellipse (0.37 and 0.08); + \fill[\thing@tophat] (0.21,2.385) ellipse[x radius=0.37, y radius=0.08, rotate=-15]; \fi % % Beret %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@beret \begin{scope}[xshift=-19,yshift=-2,rotate=10] - \fill[\thing@beret,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17); - \fill[\thing@beret,rotate=-25] (0.13,2.25) ellipse (0.55 and 0.17); - \fill[\thing@beret,rotate=-25] (0.13,2.4) circle (0.08); + \fill[\thing@beret,rotate=-25] (0.13,2.15) ellipse[x radius=0.5, y radius=0.17]; + \fill[\thing@beret,rotate=-25] (0.13,2.25) ellipse[x radius=0.55, y radius=0.17]; + \fill[\thing@beret,rotate=-25] (0.13,2.4) circle[radius=0.08]; \end{scope} \fi % % Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@strawhat \begin{scope}[xshift=-16,rotate=12,yshift=-1] - \fill[\thing@strawhat,rotate=-15] (0.44,2.0) ellipse (0.75 and 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 (0.34 and 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 (0.34 and 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 (0.34 and 0.08); + \fill[\thing@strawhat,rotate=-15] (0.44,2.3) ellipse[x radius=0.34, y radius=0.08]; \end{scope} \fi % @@ -357,15 +353,15 @@ \fill[\thing@harlequin] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle; \fill[\thing@niuqelrah] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle; \end{pgfinterruptboundingbox} - \fill[\thing@harlequin] (1.7,2.07) circle (0.1); - \fill[\thing@niuqelrah] (0.3,2.23) circle (0.1); + \fill[\thing@harlequin] (1.7,2.07) circle[radius=0.1]; + \fill[\thing@niuqelrah] (0.3,2.23) circle[radius=0.1]; \end{scope} \fi % % witch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@witch \begin{scope}[xshift=-26] - \fill[\thing@witch,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17); + \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 @@ -453,30 +449,30 @@ (1.456,1.759) .. controls (1.534,1.637) and (1.480,1.545) .. (1.400,1.566) .. controls (1.265,1.714) and (0.577,2.267) .. (0.44,1.733) -- cycle; - \fill[white!80!brown] (1.6,1.0) circle (0.17); + \fill[white!80!brown] (1.6,1.0) circle[radius=0.17]; \end{scope} \fi % % Chef hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@chef \begin{scope}[xshift=-26] - \fill[\thing@chef,rotate=-15] (0.44,2.1) ellipse (0.37 and 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 (0.17); - \fill[\thing@chef] (1.24,2.35) circle (0.15); - \fill[\thing@chef] (0.77,2.40) circle (0.12); - \fill[\thing@chef] (1.39,2.20) circle (0.12); + \fill[\thing@chef] (1.01,2.47) circle[radius=0.17]; + \fill[\thing@chef] (1.24,2.35) circle[radius=0.15]; + \fill[\thing@chef] (0.77,2.40) circle[radius=0.12]; + \fill[\thing@chef] (1.39,2.20) circle[radius=0.12]; \end{scope} \fi % % graduate hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@graduate \begin{scope}[xshift=-26] - \fill[\thing@graduate,rotate=-15] (0.44,2.1) ellipse (0.37 and 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; - \fill[\thing@tassel] (1.16,1.3) ellipse (0.06 and 0.12); + \fill[\thing@tassel] (1.16,1.3) ellipse[x radius=0.06, y radius=0.12]; \end{scope} \fi % @@ -484,8 +480,8 @@ \ifthing@alien \fill[\thing@alien,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); \fill[\thing@alien,rotate around={-15:(0.175,2.115)}] (0.2,1.93) rectangle (0.15,2.3); - \fill[\thing@alien] (-0.22,2.30) circle (0.07); - \fill[\thing@alien] (0.22,2.30) circle (0.07); + \fill[\thing@alien] (-0.22,2.30) circle[radius=0.07]; + \fill[\thing@alien] (0.22,2.30) circle[radius=0.07]; \fi % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -516,7 +512,7 @@ % speech bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@speech \begin{scope}[xshift=-26] - \fill[\thing@bubblecolour] (-0.5,1.8) ellipse (0.7 and 0.3); + \fill[\thing@bubblecolour] (-0.5,1.8) ellipse[x radius=0.7, y radius=0.3]; \fill[\thing@bubblecolour] (-0.2,1.54) -- (0.2,1.35) -- (0.0,1.6) -- cycle; \node at (-0.5,1.8) {\thing@speech}; \end{scope} @@ -525,8 +521,8 @@ % think bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@think \begin{scope}[xshift=-26] - \fill[\thing@bubblecolour] (2,2.4) ellipse (0.7 and 0.35); - \fill[\thing@bubblecolour] (1.55,2.35) circle (0.25) (2.0,2.15) circle (0.25) (2.4,2.25) circle (0.25) (1.6,2.55) circle (0.25) (2.0,2.6) circle (0.25) (2.35,2.5) circle (0.25) (1.65,1.95) circle (0.1) (1.55,1.80) circle (0.06) (1.47,1.70) circle (0.03); + \fill[\thing@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} \fi @@ -540,35 +536,35 @@ % pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@pizza \begin{scope}[xshift=-28,yshift=2] - \fill[brown] (1.00,0.60) ellipse (0.4 and 0.2); - \fill[red!70!black] (1.00,0.60) ellipse (0.34 and 0.16); - \fill[white!85!yellow] (1.15,0.65) ellipse (0.065 and 0.04); - \fill[white!85!yellow] (0.81,0.57) ellipse (0.065 and 0.04); - \fill[white!85!yellow] (0.95,0.68) ellipse (0.065 and 0.04); - \fill[white!85!yellow] (1.02,0.54) ellipse (0.065 and 0.04); - \fill[green!40!brown] (1.09,0.54) ellipse (0.07 and 0.02); - \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse (0.07 and 0.02); - \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse (0.07 and 0.02); - \fill[green!40!brown] (1.00,0.60) ellipse (0.03 and 0.06); + \fill[brown] (1.00,0.60) ellipse[x radius=0.4, y radius=0.2]; + \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16]; + \fill[white!85!yellow] (1.15,0.65) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (0.81,0.57) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (0.95,0.68) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (1.02,0.54) ellipse[x radius=0.065, y radius=0.04]; + \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06]; \end{scope} \fi % no pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@davidlikespineapplepizza \begin{scope}[xshift=-28,yshift=2] - \fill[brown] (1.00,0.60) ellipse (0.4 and 0.2); - \fill[red!70!black] (1.00,0.60) ellipse (0.34 and 0.16); - \fill[yellow!70!brown] (1.15,0.65) ellipse (0.08 and 0.06); - \fill[red!70!black] (1.15,0.65) ellipse (0.04 and 0.03); - \fill[yellow!70!brown] (0.81,0.57) ellipse (0.08 and 0.06); - \fill[red!70!black] (0.81,0.57) ellipse (0.04 and 0.03); - \fill[yellow!70!brown] (0.95,0.68) ellipse (0.08 and 0.06); - \fill[red!70!black] (0.95,0.68) ellipse (0.04 and 0.03); - \fill[yellow!70!brown] (1.02,0.54) ellipse (0.08 and 0.06); - \fill[red!70!black] (1.02,0.54) ellipse (0.04 and 0.03); - \fill[green!40!brown] (1.09,0.54) ellipse (0.07 and 0.02); - \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse (0.07 and 0.02); - \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse (0.07 and 0.02); - \fill[green!40!brown] (1.00,0.60) ellipse (0.03 and 0.06); + \fill[brown] (1.00,0.60) ellipse[x radius=0.4, y radius=0.2]; + \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16]; + \fill[yellow!70!brown] (1.15,0.65) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (1.15,0.65) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (0.81,0.57) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (0.81,0.57) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (0.95,0.68) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (0.95,0.68) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (1.02,0.54) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (1.02,0.54) ellipse[x radius=0.04, y radius=0.03]; + \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06]; \end{scope} \fi % @@ -576,29 +572,29 @@ \ifthing@cheese \fill[\thing@cheese] (-0.3200,0.8058) -- (0.0608,0.7220) -- (0.0608,0.6366) -- (-0.3200,0.5410) -- (0.2143,0.4236) .. controls (0.3395,0.4810) and (0.4241,0.5627) .. (0.4117,0.6253) -- (0.4117,0.7634) .. controls (0.4261,0.8618) and (0.2607,0.8954) .. (0.1907,0.8962) -- cycle; \fill[\thing@cheese!35!white] (-0.3200,0.8057) -- (-0.3200,0.5410) -- (0.2143,0.4236) -- (0.2143,0.7381) -- cycle; - \fill[\thing@cheese] (-0.23,0.71) circle (0.04) (0.0,0.55) circle (0.04) (-0.23,0.58) circle (0.02) (-0.15,0.6) circle (0.02) (-0.1,0.7) circle (0.02) (0.1,0.65) circle (0.02) (0,0.65) circle (0.02) (0.1,0.5) circle (0.02) (0.07,0.55) circle (0.01) (0.12,0.6) circle (0.01) (-0.08,0.54) circle (0.01); + \fill[\thing@cheese] (-0.23,0.71) circle[radius=0.04] (0.0,0.55) circle[radius=0.04] (-0.23,0.58) circle[radius=0.02] (-0.15,0.6) circle[radius=0.02] (-0.1,0.7) circle[radius=0.02] (0.1,0.65) circle[radius=0.02] (0,0.65) circle[radius=0.02] (0.1,0.5) circle[radius=0.02] (0.07,0.55) circle[radius=0.01] (0.12,0.6) circle[radius=0.01] (-0.08,0.54) circle[radius=0.01]; \fi % % baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@baguette \begin{scope}[xshift=-38,yshift=7,rotate=-20] \fill[\thing@baguette!70!white, rounded corners=\scalingfactor*4, rotate=-30] (0.4,0.72) rectangle (0.7,2.0); - \fill[\thing@baguette!80!black, rotate=5] (1.44,1.1) ellipse (0.1 and 0.03) (1.30,0.9) ellipse (0.1 and 0.03) (1.16,0.7) ellipse (0.1 and 0.03) (1.02,0.5) ellipse (0.1 and 0.03); + \fill[\thing@baguette!80!black, rotate=5] (1.44,1.1) ellipse[x radius=0.1, y radius=0.03] (1.30,0.9) ellipse[x radius=0.1, y radius=0.03] (1.16,0.7) ellipse[x radius=0.1, y radius=0.03] (1.02,0.5) ellipse[x radius=0.1, y radius=0.03]; \end{scope} \fi % % cake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@cake \begin{scope}[xshift=-28] - \fill[\thing@cake] (1.00,0.50) ellipse (0.4 and 0.2); + \fill[\thing@cake] (1.00,0.50) ellipse[x radius=0.4, y radius=0.2]; \fill[\thing@cake] (0.6,0.5) rectangle (1.4,0.7); - \fill[\thing@cake] (1.00,0.70) ellipse (0.4 and 0.2); + \fill[\thing@cake] (1.00,0.70) ellipse[x radius=0.4, y radius=0.2]; \fill[\thing@cake!50!white] (0.75,0.75) rectangle (0.8,0.95); \fill[\thing@cake!50!white] (1.2,0.75) rectangle (1.25,0.95); \fill[\thing@cake!50!white] (0.975,0.65) rectangle (1.025,0.85); - \fill[white!85!yellow] (1.0,0.93) ellipse (0.03 and 0.06); - \fill[white!85!yellow] (1.225,1.03) ellipse (0.03 and 0.06); - \fill[white!85!yellow] (0.775,1.03) ellipse (0.03 and 0.06); + \fill[white!85!yellow] (1.0,0.93) ellipse[x radius=0.03, y radius=0.06]; + \fill[white!85!yellow] (1.225,1.03) ellipse[x radius=0.03, y radius=0.06]; + \fill[white!85!yellow] (0.775,1.03) ellipse[x radius=0.03, y radius=0.06]; \end{scope} \fi % @@ -606,26 +602,26 @@ \ifthing@icecream \begin{scope}[xshift=-26] \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 (0.12); - \fill[\thing@flavourb] (1.05,0.95) circle (0.12); - \fill[\thing@flavourc] (0.95,1.1) circle (0.12); + \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]; \end{scope} \fi % % milkshake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@milkshake \begin{scope}[xshift=-26] - \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); - \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03); + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); - \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse (0.18 and 0.4); - \fill[\thing@milkshake, rotate=-10] (0.8,0.94) ellipse (0.15 and 0.36); + \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse[x radius=0.18, y radius=0.4]; + \fill[\thing@milkshake, rotate=-10] (0.8,0.94) ellipse[x radius=0.15, y radius=0.36]; \end{scope} - \fill[white!85!yellow] (0.83,0.92) circle (0.05) (0.88,0.9) circle (0.05) (0.93,0.92) circle (0.05) (0.99,0.91) circle (0.05) (1.06,0.86) circle (0.05) (1.13,0.87) circle (0.05) (0.85,0.99) circle (0.05) (0.9,0.98) circle (0.07) (1.0,0.98) circle (0.07) (1.1,0.95) circle (0.07); - \fill[red!90!black] (1.0,1.1) circle (0.05); - \fill[white!85!yellow] (0.94,1.05) circle (0.05) (1.03,1.03) circle (0.05); - \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); + \fill[white!85!yellow] (0.83,0.92) circle[radius=0.05] (0.88,0.9) circle[radius=0.05] (0.93,0.92) circle[radius=0.05] (0.99,0.91) circle[radius=0.05] (1.06,0.86) circle[radius=0.05] (1.13,0.87) circle[radius=0.05] (0.85,0.99) circle[radius=0.05] (0.9,0.98) circle[radius=0.07] (1.0,0.98) circle[radius=0.07] (1.1,0.95) circle[radius=0.07]; + \fill[red!90!black] (1.0,1.1) circle[radius=0.05]; + \fill[white!85!yellow] (0.94,1.05) circle[radius=0.05] (1.03,1.03) circle[radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; \fill[red!90!black,rotate=20] (1.2,0.58) rectangle (1.22,0.85); \end{scope} \fi @@ -633,16 +629,16 @@ % wine %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@wine \begin{scope}[xshift=-26,yshift=2] - \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); - \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03); - \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse (0.03 and 0.2); + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; + \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2]; \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); - \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse (0.18 and 0.4); + \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse[x radius=0.18, y radius=0.4]; \end{scope} \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,0.87); - \fill[\thing@wine, rotate=-10] (0.8,1.1) ellipse (0.15 and 0.36); + \fill[\thing@wine, rotate=-10] (0.8,1.1) ellipse[x radius=0.15, y radius=0.36]; \end{scope} \end{scope} \fi @@ -650,13 +646,13 @@ % cocktail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@cocktail \begin{scope}[xshift=-26,yshift=3] - \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); - \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03); - \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse (0.03 and 0.2); + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; + \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2]; \fill[cyan!10!white] (0.92,0.6) -- (0.75,0.9) -- (1.18,0.83) -- cycle; \fill[gray!60!white] (0.928,0.64) -- (0.85,0.77) -- (1.08,0.77) -- cycle; - \fill[green!40!brown!60!white] (0.94,0.71) circle (0.04); - \fill[red!80!black] (0.94,0.72) circle (0.01); + \fill[green!40!brown!60!white] (0.94,0.71) circle[radius=0.04]; + \fill[red!80!black] (0.94,0.72) circle[radius=0.01]; \end{scope} \fi % @@ -685,9 +681,9 @@ % football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@football \begin{scope}[xshift=-26] - \fill[\thing@football] (1.2,0.33) circle (0.32); + \fill[\thing@football] (1.2,0.33) circle[radius=0.32]; \begin{scope} - \clip (1.2,0.33) circle (0.32); + \clip (1.2,0.33) circle[radius=0.32]; \fill[black] (1.06,0.30) -- (1.01,0.17) -- (1.14,0.08) -- (1.26,0.14) -- (1.20,0.28) -- cycle (1.37,0.14) -- (1.46,0.27) -- (1.59,0.27) -- (1.41,0.04) -- cycle (1.28,0.38) -- (1.22,0.52) -- (1.33,0.61) -- (1.45,0.51) -- (1.43,0.37) -- cycle (0.87,0.44) -- (1.02,0.40) -- (1.10,0.53) -- (1.07,0.62) -- (0.94,0.57) -- cycle; \end{scope} \end{scope} @@ -701,7 +697,7 @@ % % crystal ball %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@crystalball - \shade[ball color=\thing@crystalball,opacity=0.7] (0,0.8) circle (0.33); + \shade[ball color=\thing@crystalball,opacity=0.7] (0,0.8) circle[radius=0.33]; \fi % % magic wand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -751,7 +747,7 @@ (1.4338,1.025) -- cycle; \fill[\thing@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 (0.2 and 0.08); + \fill[\thing@torch,rotate=-28] (0.62,1.32) ellipse[x radius=0.2, y radius=0.08]; \end{scope} \fi% % @@ -760,8 +756,8 @@ \begin{scope}[xshift=-28.5] \fill[\thing@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 (0.35 and 0.1) (1,0.6) ellipse (0.3 and 0.07); - \fill[\thing@basket!75!black] (1,0.6) ellipse (0.3 and 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% % @@ -770,9 +766,9 @@ \begin{scope}[xshift=-28.5] \begin{scope} \clip [start angle=180, end angle=0, x radius=0.3, y radius=0.45] (0.7,0.6) arc -- cycle [start angle=180, end angle=360, x radius=0.3, y radius=0.07] (0.7,0.6) arc -- cycle; - \fill[\thing@eggb, rotate=-5] (0.95,0.72) ellipse (0.09 and 0.13); - \fill[\thing@egga, rotate=10] (0.94,0.42) ellipse (0.09 and 0.13); - \fill[\thing@eggc, rotate=-30] (0.7,1.08) ellipse (0.09 and 0.13); + \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% @@ -782,7 +778,7 @@ \begin{scope}[xshift=-20] \begin{scope} \clip [rotate=-20] (0.6,2.3) rectangle (1.1,1.999); - \fill[even odd rule,\thing@crozier] (1.5,1.6) circle (0.2) (1.5,1.6) circle (0.1); + \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); \end{scope} @@ -790,35 +786,35 @@ % % shovel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@shovel - \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4); - \fill[\thing@shovel] (-0.21, 0.86) .. controls (0.02, 0.72) and (0.11, 0.66) .. (0.38, 0.58) -- (0.01, 0.04) .. controls (-0.17, 0.02) and (-0.28, 0.07) .. (-0.37, 0.21) -- cycle; + \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4); + \fill[\thing@shovel] (-0.21, 0.86) .. controls (0.02, 0.72) and (0.11, 0.66) .. (0.38, 0.58) -- (0.01, 0.04) .. controls (-0.17, 0.02) and (-0.28, 0.07) .. (-0.37, 0.21) -- cycle; \fi % % pickaxe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@pickaxe - \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4); - \fill[\thing@pickaxe] (-0.77, 0.57) .. controls (-0.14, 0.25) and (-0.02, 0.21) .. (0.60, 0.02) .. controls (-0.12, 0.03) and (-0.22, 0.10) .. (-0.77, 0.57) -- cycle; + \fill[brown!80!black,rotate around={-23:(0.11, 0.8)}] (0.07,0.2) rectangle ++(0.1,1.4); + \fill[\thing@pickaxe] (-0.77, 0.57) .. controls (-0.14, 0.25) and (-0.02, 0.21) .. (0.60, 0.02) .. controls (-0.12, 0.03) and (-0.22, 0.10) .. (-0.77, 0.57) -- cycle; \fi % % umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@umbrella - \path (-0.8, 0.4) rectangle (1.2200000000000002, 2.7); - \begin{pgfinterruptboundingbox} - \fill[gray] (-0.3078, 0.5942) -- (-0.2574, 0.6103) .. controls (-0.1724, 0.3884) and (-0.1145, 0.4523) .. (-0.0667, 0.6543) -- (-0.0666, 0.6545) -- (-0.0665, 0.6547) .. controls (0.0347, 1.0671) and (0.2906, 1.9565) .. (0.2906, 1.9565) -- (0.3415, 1.9419) .. controls (0.3415, 1.9419) and (0.0855, 1.0519) .. (-0.0151, 0.6423) -- (-0.0152, 0.642) .. controls (-0.076, 0.3633) and (-0.2126, 0.3312) .. (-0.3078, 0.5942) -- cycle; - \fill[\thing@umbrella] (-0.7815, 1.9927) .. controls (-0.6441, 2.1962) and (-0.3163, 2.072) .. (-0.3239, 1.824) .. controls (-0.1602, 2.0111) and (0.1891, 1.9216) .. (0.1685, 1.6915) .. controls (0.3000, 1.8765) and (0.6639, 1.7626) .. (0.6607, 1.5356) .. controls (0.7865, 1.7271) and (1.135, 1.695) .. (1.1626, 1.4589) .. controls (1.4996, 2.5771) and (-0.4356, 3.2631) .. (-0.7815, 1.9927) -- cycle; - \end{pgfinterruptboundingbox} + \path (-0.8, 0.4) rectangle (1.2200000000000002, 2.7); + \begin{pgfinterruptboundingbox} + \fill[gray] (-0.3078, 0.5942) -- (-0.2574, 0.6103) .. controls (-0.1724, 0.3884) and (-0.1145, 0.4523) .. (-0.0667, 0.6543) -- (-0.0666, 0.6545) -- (-0.0665, 0.6547) .. controls (0.0347, 1.0671) and (0.2906, 1.9565) .. (0.2906, 1.9565) -- (0.3415, 1.9419) .. controls (0.3415, 1.9419) and (0.0855, 1.0519) .. (-0.0151, 0.6423) -- (-0.0152, 0.642) .. controls (-0.076, 0.3633) and (-0.2126, 0.3312) .. (-0.3078, 0.5942) -- cycle; + \fill[\thing@umbrella] (-0.7815, 1.9927) .. controls (-0.6441, 2.1962) and (-0.3163, 2.072) .. (-0.3239, 1.824) .. controls (-0.1602, 2.0111) and (0.1891, 1.9216) .. (0.1685, 1.6915) .. controls (0.3000, 1.8765) and (0.6639, 1.7626) .. (0.6607, 1.5356) .. controls (0.7865, 1.7271) and (1.135, 1.695) .. (1.1626, 1.4589) .. controls (1.4996, 2.5771) and (-0.4356, 3.2631) .. (-0.7815, 1.9927) -- cycle; + \end{pgfinterruptboundingbox} \fi % % closed umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@umbrellaclosed \fill[gray] (0.5401, 0.7996) -- (0.4872, 0.8019) .. controls (0.484, 1.0395) and (0.4076, 0.9995) .. (0.293, 0.8264) -- (0.2929, 0.8262) -- (0.2928, 0.8261) .. controls (0.0555, 0.4739) and (0.1223, 0.5608) .. (0.1223, 0.5608) -- (0.0795, 0.592) .. controls (0.0795, 0.592) and (0.0131, 0.5057) .. (0.2488, 0.8554) -- (0.2489, 0.8556) .. controls (0.4022, 1.0963) and (0.5414, 1.0793) .. (0.5401, 0.7996) -- cycle; - \fill[\thing@umbrellaclosed] (-0.1173, 0.2263) -- (0.0038, 0.7188) -- (0.1548, 0.7494) -- (0.152, 0.9231) -- (0.3945, 0.7529) -- (0.2218, 0.6885) -- (0.2465, 0.5566) -- cycle; + \fill[\thing@umbrellaclosed] (-0.1173, 0.2263) -- (0.0038, 0.7188) -- (0.1548, 0.7494) -- (0.152, 0.9231) -- (0.3945, 0.7529) -- (0.2218, 0.6885) -- (0.2465, 0.5566) -- cycle; \fi % % handbag %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifthing@handbag - \fill[\thing@handbag] (0.5189, 0.1751) -- (-0.1913, 0.3097) -- (-0.0315, 0.7086) -- (0.5168, 0.6152) -- cycle; - \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; + \fill[\thing@handbag] (0.5189, 0.1751) -- (-0.1913, 0.3097) -- (-0.0315, 0.7086) -- (0.5168, 0.6152) -- cycle; + \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 % -}
\ No newline at end of file +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty new file mode 100644 index 00000000000..00bc42d2ab5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-anteaters.sty @@ -0,0 +1,168 @@ +% !TeX root = ./examples/anteater.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz +% Maintained by samcarter +% +% Project repository and bug tracker: +% https://github.com/samcarter/tikzlings +% +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-anteaters}[2020/04/22 version v0.3 Drawing anteaters in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\anteater}[1][]{% + \begin{scope}% + \tikzset{/anteater/.cd,#1}% + \anteater@draw% + \end{scope}% + \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname anteaterhookforeground\endcsname + \csname tikzlinghookforeground\endcsname +} + +\newif\ifanteater@threeD +\newif\ifanteater@back + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /anteater/.search also={/tikz,/pgf,/thing}, + /anteater/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\anteater@body{#1}, + body = red!55!green!75!blue!66!white, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \anteater@threeDtrue, + back/.code = \anteater@backtrue, +} + +\def\anteater@draw{% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.75,0.1) rectangle (1.12,2.26); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% store the current scale factor +% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% +\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} +\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifanteater@threeD + \def\anteater@part@draw[##1]{\shade[ball color=##1]} +\else + \def\anteater@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname anteaterhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\anteater@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]; +% +% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifanteater@back\else + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; +\fi +% +% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\anteater@part@draw[\anteater@body!45!white!95!orange] (-0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=70] (0.55,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; +% +% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\anteater@part@draw[\anteater@body] (0.52, 0.8) .. controls (0.52, 0.23) and (0.3, 0.17) .. (0, 0.17) .. controls (-0.3, 0.17) and (-0.52, 0.23) .. (-0.52, 0.8) .. controls (-0.52, 1.35) and (-0.3, 1.8) .. (0, 1.8) .. controls (0.3, 1.8) and (0.52, 1.35) .. (0.52, 0.8) -- cycle; +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname anteaterhookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +\ifanteater@back + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!45!white!95!orange] (-0,1.47) ellipse [x radius=0.36, y radius=0.28]; + % + % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \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] (-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; +% +\else + % Collar %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \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; + % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (0.3531, 1.9773) .. controls (0.4315, 2.0197) and (0.6217, 2.172) .. (0.5917, 2.2157) .. controls (0.5615, 2.2594) and (0.3224, 2.178) .. (0.2441, 2.1354) .. controls (0.1659, 2.093) and (0.1269, 2.023) .. (0.1569, 1.9793) .. controls (0.1870, 1.9356) and (0.2748, 1.9347) .. (0.3531, 1.9773) -- cycle; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.3531, 1.9773) .. controls (-0.4315, 2.0197) and (-0.6217, 2.172) .. (-0.5917, 2.2157) .. controls (-0.5615, 2.2594) and (-0.3224, 2.178) .. (-0.2441, 2.1354) .. controls (-0.1659, 2.093) and (-0.1269, 2.023) .. (-0.1569, 1.9793) .. controls (-0.1870, 1.9356) and (-0.2748, 1.9347) .. (-0.3531, 1.9773) -- cycle; + \anteater@part@draw[\anteater@body!45!white!95!orange] (0.4086, 1.9465) .. controls (0.4679, 1.9952) and (0.6205, 2.1813) .. (0.5862, 2.2146) .. controls (0.5517, 2.2477) and (0.3434, 2.1152) .. (0.2841, 2.0665) .. controls (0.2249, 2.0177) and (0.2048, 1.9515) .. (0.2391, 1.9184) .. controls (0.2736, 1.8853) and (0.3494, 1.8979) .. (0.40861, 1.9465) -- cycle + (-0.4086, 1.9465) .. controls (-0.4679, 1.9952) and (-0.6205, 2.1813) .. (-0.5862, 2.2146) .. controls (-0.5517, 2.2477) and (-0.3434, 2.1152) .. (-0.2841, 2.0665) .. controls (-0.2249, 2.0177) and (-0.2048, 1.9515) .. (-0.2391, 1.9184) .. controls (-0.2736, 1.8853) and (-0.3494, 1.8979) .. (-0.40861, 1.9465) -- cycle; + % + % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \anteater@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@body!70!brown!50!darkgray] (0.23, 1.7) circle[radius=0.05]; + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (-0.23, 1.7) circle[radius=0.05]; +\fi +% +% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifanteater@back + \anteater@part@draw[\anteater@body!70!brown!50!darkgray] (1.0893, 1.5779) .. controls (0.3433, 1.6612) and (0.4863, 0.6062) .. (-0.0243, 0.348) .. controls (1.0671, 0.068) and (0.8133, 1.1808) .. (1.0893, 1.5779) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname anteaterhookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty index c84c0a2b0a9..1af0927ebf1 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/bear.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-bears package (part of the tikzlings collection) -% A package to bring little teddy bears into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-bears} - [2019/04/07 v0.2 Draw teddy bears in TikZ] +\ProvidesPackage{tikzlings-bears}[2020/04/22 version v0.3 Draw teddy bears in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,13 @@ \bear@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname bearhookforeground\endcsname + \csname tikzlinghookforeground\endcsname } \newif\ifbear@threeD +\newif\ifbear@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -52,6 +52,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \bear@threeDtrue, + back/.code = \bear@backtrue, } \def\bear@draw{% @@ -69,7 +70,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -91,38 +92,67 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname bearhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black,rotate around={-50:(0.525,0.9)}] (0.525,0.9) ellipse (0.35 and 0.15); -\bear@part@draw[\bear@body!70!black,rotate around={50:(-0.525,0.9)}] (-0.525,0.9) ellipse (0.35 and 0.15); +\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]; +% +% 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]; +\fi % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0,0.75) ellipse (0.55 and 0.65); -\bear@part@draw[\bear@body!50!white] (0,0.7) ellipse (0.35 and 0.4); +\bear@part@draw[\bear@body!70!black] (0,0.75) ellipse[x radius=0.55, y radius=0.65]; +\ifbear@back\else + \bear@part@draw[\bear@body!50!white] (0,0.7) ellipse[x radius=0.35, y radius=0.4]; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname bearhookbelly\endcsname +\csname tikzlinghookbelly\endcsname % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0.425, 0.3) circle (0.28); -\bear@part@draw[\bear@body!70!black] (-0.425, 0.3) circle (0.28); -\bear@part@draw[\bear@body!50!white] (0.425, 0.3) circle (0.17); -\bear@part@draw[\bear@body!50!white] (-0.425, 0.3) circle (0.17); +\ifbear@back\else + \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]; +\fi % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0.375, 1.95) circle (0.15); -\bear@part@draw[\bear@body!70!black] (-0.375, 1.95) circle (0.15); -\bear@part@draw[\bear@body!50!white] (0.375, 1.95) circle (0.1); -\bear@part@draw[\bear@body!50!white] (-0.375, 1.95) circle (0.1); +\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]; +\ifbear@back\else + \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]; +\fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!70!black] (0, 1.55) circle (0.5); +\bear@part@draw[\bear@body!70!black] (0, 1.55) circle[radius=0.5]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifbear@back\else % % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!50!white] (0, 1.4) ellipse (0.28 and 0.2); -\bear@part@draw[\bear@body!70!white!80!red] (0, 1.5) ellipse (0.15 and 0.08); +\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]; % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\bear@part@draw[\bear@body!30!black] (-0.155, 1.7) circle (0.05); -\bear@part@draw[\bear@body!30!black] (0.155, 1.7) circle (0.05); +\bear@part@draw[\bear@body!30!black] (-0.155, 1.7) circle[radius=0.05]; +\bear@part@draw[\bear@body!30!black] (0.155, 1.7) circle[radius=0.05]; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \draw[\bear@body!30!black,line width=\scalingfactor*0.4pt] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16]; % -}
\ No newline at end of file +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname bearhookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty new file mode 100644 index 00000000000..b8ba8a4552b --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bees.sty @@ -0,0 +1,169 @@ +% !TeX root = ./examples/bee.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz +% Maintained by samcarter +% +% Project repository and bug tracker: +% https://github.com/samcarter/tikzlings +% +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-bees}[2020/04/22 version v0.3 Drawing bees in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\bee}[1][]{% + \begin{scope}% + \tikzset{/bee/.cd,#1}% + \bee@draw% + \end{scope}% + \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname beehookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % +} + +\newif\ifbee@threeD +\newif\ifbee@back + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /bee/.search also={/tikz,/pgf,/thing}, + /bee/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\bee@body{#1}, + body = yellow!70!orange, + hands/.code = \def\bee@hands{#1}, + hands = black, + wings/.code = \def\bee@wings{#1}, + wings = blue!20!cyan!30!white, + stripes/.code = \def\bee@stripes{#1}, + stripes = black, + antennas/.code = \def\bee@antennas{#1}, + antennas = black, + eye/.code = \def\bee@eye{#1}, + eye = black, + mouth/.code = \def\bee@mouth{#1}, + mouth = black, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \bee@threeDtrue, + back/.code = \bee@backtrue, +} + +\def\bee@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.88,0.1) rectangle (0.88, 2.4); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% store the current scale factor +% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% +\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} +\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifbee@threeD + \def\bee@part@draw[##1]{\shade[ball color=##1]} +\else + \def\bee@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname beeshookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +\ifbee@back + % 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); + \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; + \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; +\else + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; + \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; +\fi +% +% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{scope} + \clip (0,2.1) to[out=180,in=140,looseness=1.2] (-0.3,1.5) to[out=-110,in=180,looseness=1.2] (0,0.15) to[out=00,in=-65,looseness=1.2] (0.3,1.5) to[out=40,in=0,looseness=1.2] cycle; + \bee@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; + % 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} +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname beeshookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifbee@back + % + % Wings %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\bee@wings] (0.45,1.25) circle[radius=0.35] (0.5,0.8) circle[radius=0.35]; + \fill[\bee@wings] (-0.45,1.25) circle[radius=0.35](-0.5,0.8) circle[radius=0.35]; +\else + % + % 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]; + % + % 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]; + % + % 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); + \bee@part@draw[\bee@antennas] (-0.22,2.30) circle[radius=0.07]; + \bee@part@draw[\bee@antennas] (0.22,2.30) circle[radius=0.07]; + % +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname beeshookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty index 40787eabe50..9ece08d4f28 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-cats.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/cat.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-cats package (part of the tikzlings collection) -% A package to bring little cats into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-cats} - [2019/04/07 v0.2 Drawing cats in TikZ] +\ProvidesPackage{tikzlings-cats}[2020/04/22 version v0.3 Drawing cats in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -41,19 +37,23 @@ \pgfmathparse{int(random(0,1))} \let\cat@random=\pgfmathresult \ifnum\cat@random=1 - \cat@tombstone% + \cat@tombstone% \else - \cat@draw% + \cat@draw% \fi \else - \cat@draw% + \cat@draw% \fi \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname cathookforeground\endcsname + \csname tikzlinghookforeground\endcsname } \newif\ifcat@threeD \newif\ifcat@schroedinger +\newif\ifcat@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -94,6 +94,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \cat@threeDtrue, schroedinger/.code = \cat@schroedingertrue, + back/.code = \cat@backtrue, } \def\cat@draw{% @@ -112,7 +113,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -134,14 +135,28 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{pgfinterruptboundingbox} \cat@part@draw[\cat@body] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle; \end{pgfinterruptboundingbox} % +% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifcat@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]; +\fi +% % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cat@part@draw[\cat@body] (0.5462, 0.7155) .. controls (0.5462, 0.1823) and (0.3259, 0.17) .. (0, 0.17) .. controls (-0.3259, 0.17) and (-0.5462, 0.1823) .. (-0.5462, 0.7155) .. controls (-0.5554, 1.2487) and (-0.3075, 1.6768) .. (0, 1.6768) .. controls (0.3075, 1.6768) and (0.5554, 1.2487) .. (0.5462, 0.7155) -- cycle; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cat@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; @@ -149,7 +164,10 @@ (-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 (0.44); +\cat@part@draw[\cat@body] (0,1.64) circle[radius=0.44]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifcat@back\else % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \cat@part@draw[\cat@eyes] (-0.1014, 1.7491) .. controls (-0.1014, 1.7491) and (-0.1451, 1.7171) .. (-0.1841, 1.7284) .. controls (-0.2231, 1.7397) and (-0.2427, 1.79) .. (-0.2427, 1.79) .. controls (-0.2427, 1.79) and (-0.1992, 1.8221) .. (-0.1602, 1.8108) .. controls (-0.1212, 1.7995) and (-0.1014, 1.7491) .. (-0.1014, 1.7491) -- cycle; @@ -182,9 +200,14 @@ \fill[\cat@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 (0.18); -\cat@part@draw[\cat@paws] (0.255,0.3) circle (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 +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbody\endcsname +\csname tikzlinghookbody\endcsname } \def\cat@tombstone{% @@ -213,11 +236,19 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Stone %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[gray] (-0.55,0.4) rectangle (0.55,1.5); -\fill[gray] (0,1.5) circle (0.55); +\fill[gray] (0,1.5) circle[radius=0.55]; \node[scale=\scalingfactor] at (0,1.3) {R.I.P.}; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % soil %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[brown!65!black] (1,0.15) arc [start angle=50, end angle=130, radius=1.56] -- cycle; % @@ -226,7 +257,11 @@ \fill[green!50!brown] (-0.1377, 0.7384) .. controls (-0.1775, 0.5828) and (-0.1479, 0.4649) .. (0.0072, 0.4246) .. controls (0.0570, 0.5636) and (-0.1529, 0.6447) .. (-0.1377, 0.7384) -- cycle; \fill[green!50!brown] (0.1527, 0.7334) .. controls (0.1925, 0.5778) and (0.1629, 0.4599) .. (0.0178, 0.4196) .. controls (-0.0420, 0.5586) and (0.1679, 0.6397) .. (0.1527, 0.7334) -- cycle; \foreach \i in {0,51.42857,...,359}{ - \fill[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle; + \fill[yellow!50!white,rotate around={\i:(-0.0865, 0.8219)}] (-0.087, 0.822) .. controls (-0.087, 0.822) and (-0.1635, 0.6638) .. (-0.0818, 0.6653) .. controls (-0.0066, 0.6646) and (-0.087, 0.822) .. (-0.087, 0.822) -- cycle; } % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname cathookbody\endcsname +\csname tikzlinghookbody\endcsname +% } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty index 1a262ca9475..2550e6e9d8f 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/coati.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-coatis package (part of the tikzlings collection) -% A package to bring little coatis into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-coatis} - [2019/04/07 v0.2 Drawing coatis in TikZ] +\ProvidesPackage{tikzlings-coatis}[2020/04/22 version v0.3 Drawing coatis in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,10 +23,14 @@ \coati@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname coatihookforeground\endcsname + \csname tikzlinghookforeground\endcsname } \newif\ifcoati@threeD \newif\ifcoati@sideward +\newif\ifcoati@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -57,6 +57,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \coati@threeDtrue, sideward/.code = \coati@sidewardtrue, + back/.code = \coati@backtrue, } \def\coati@draw{% @@ -74,7 +75,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -96,29 +97,42 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname coatihookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!80!white] (0.255,0.2) ellipse (0.23 and 0.09); -\coati@part@draw[\coati@body!80!white] (-0.255,0.2) ellipse (0.23 and 0.09); +\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]; % % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!50!darkgray] (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle; -\begin{scope} - \clip (0.3, 0.5) .. controls (0.55, 0.87) and (0.73, 1.50) .. (1.05, 1.65) .. controls (1.32, 1.77) and (1.76, 1.34) .. (1.56,1.33) .. controls (0.92, 2.03) and (0.86, 0.60) .. (0.5, 0.37) -- cycle; - \coati@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); -\end{scope} +\ifcoati@back\else + \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} +\fi % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\coati@part@draw[\coati@body!80!white,rotate around={70:(-0.625,1)}] (-0.625,1) ellipse (0.42 and 0.13); -\coati@part@draw[\coati@body!80!white,rotate around={-70:(0.625,1)}] (0.625,1) ellipse (0.42 and 0.13); +\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]; % % 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; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname coatihookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{scope}[rotate around={\coati@rotatehead:(0,1.68)}] % @@ -126,51 +140,96 @@ \ifcoati@sideward % % Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-16:(-0.212, 2.135)}] (-0.212, 2.135) ellipse (0.09 and 0.12); - \coati@part@draw[\coati@body!80!white,rotate around={-16:(-0.212, 2.135)}] (-0.212, 2.135) ellipse (0.065 and 0.09); + \coati@part@draw[\coati@body!45!white!95!orange] (-0.212, 2.135) ellipse[x radius=0.09, y radius=0.12, rotate=-16]; + \ifcoati@back\else + \coati@part@draw[\coati@body!80!white] (-0.212, 2.135) ellipse[x radius=0.065, y radius=0.09, rotate=-16]; + \fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \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; + \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; + \else + \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; + \fi % % Cheek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \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; - \coati@part@draw[\coati@body!80!white] (-0.4166, 1.9824) .. controls (-0.4166, 1.9824) and (-0.2413, 1.9758) .. (-0.2226, 1.9112) -- (-0.6875, 1.4906) .. controls (-0.6875, 1.4906) and (-0.5712, 1.7549) .. (-0.4166, 1.9824) -- cycle; + \ifcoati@back\else + \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; + \fi % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle (0.09); + \ifcoati@back\else + \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle[radius=0.09]; + \fi % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!50!black] (0.007, 1.624) ellipse (0.04 and 0.06); - \coati@part@draw[\coati@body!50!black] (-0.38, 1.865) ellipse (0.035 and 0.055); + \ifcoati@back\else + \coati@part@draw[\coati@body!50!black] (0.007, 1.624) ellipse[x radius=0.04, y radius=0.06]; + \coati@part@draw[\coati@body!50!black] (-0.38, 1.865) ellipse[x radius=0.035, y radius=0.055]; + \fi % % Right Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange,rotate around={-16:(0.417, 1.875)}] (0.417, 1.875) ellipse (0.1 and 0.14); - \coati@part@draw[\coati@body!80!white,rotate around={-16:(0.417, 1.875)}] (0.417, 1.875) ellipse (0.07 and 0.10); + \coati@part@draw[\coati@body!45!white!95!orange] (0.417, 1.875) ellipse[x radius=0.1, y radius=0.14, rotate=-16]; + \ifcoati@back\else + \coati@part@draw[\coati@body!80!white] (0.417, 1.875) ellipse[x radius=0.07, y radius=0.10, rotate=-16]; + \fi % % Normal Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \else % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \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; + \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; + \else + \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; + \fi % % Cheeks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \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; - \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; + \ifcoati@back\else + \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; + \fi % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!50!black] (0, 1.248) circle (0.09); + \ifcoati@back\else + \coati@part@draw[\coati@body!50!black] (0, 1.248) circle[radius=0.09]; + \fi % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!50!black] (0.23, 1.62) circle (0.05); - \coati@part@draw[\coati@body!50!black] (-0.23, 1.62) circle (0.05); + \ifcoati@back\else + \coati@part@draw[\coati@body!50!black] (0.23, 1.62) circle[radius=0.05]; + \coati@part@draw[\coati@body!50!black] (-0.23, 1.62) circle[radius=0.05]; + \fi % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - \coati@part@draw[\coati@body!45!white!95!orange] (0.44, 2.02) circle (0.12); - \coati@part@draw[\coati@body!80!white] (0.44, 2.02) circle (0.09); - \coati@part@draw[\coati@body!45!white!95!orange] (-0.44, 2.02) circle (0.12); - \coati@part@draw[\coati@body!80!white] (-0.44, 2.02) circle (0.09); + \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]; + \ifcoati@back\else + \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]; + \fi % \fi \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} +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname coatihookbody\endcsname +\csname tikzlinghookbody\endcsname +% } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty index 61d7eb7aeb1..8f42d1196a3 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-hippos.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/hippo.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-hippos package (part of the tikzlings collection) -% A package to bring little hippos into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-hippos} - [2019/04/07 v0.2 Drawing hippos in TikZ] +\ProvidesPackage{tikzlings-hippos}[2020/04/22 version v0.3 Drawing hippos in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,13 @@ \hippo@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname hippohookforeground\endcsname + \csname tikzlinghookforeground\endcsname } \newif\ifhippo@threeD +\newif\ifhippo@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -54,6 +54,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \hippo@threeDtrue, + back/.code = \hippo@backtrue, } \def\hippo@draw{% @@ -71,7 +72,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -93,49 +94,82 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname hippohookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body,rotate around={-30:(0.23,2.03)}] (0.23,2.03) ellipse (0.09 and 0.13); -\hippo@part@draw[\hippo@body,rotate around={30:(-0.23,2.03)}] (-0.23,2.03) ellipse (0.09 and 0.13); +\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]; +% +% 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} +\fi +% +% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifhippo@back + \hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse[x radius=0.42, y radius=0.2]; +\fi % % 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; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname hippohookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body,rotate around={90:(0.35,1.0)}] (0.35,1.0) ellipse (0.24 and 0.13); -\hippo@part@draw[\hippo@body,rotate around={-90:(-0.35,1.0)}] (-0.35,1.0) ellipse (0.24 and 0.13); +\ifhippo@back\else + \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]; +\fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body!55!white] (0, 1.76) circle (0.36); +\hippo@part@draw[\hippo@body!55!white] (0, 1.76) circle[radius=0.36]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifhippo@back\else % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[white] (-0.11, 1.83) ellipse (0.08 and 0.12); -\fill[white] (0.11, 1.83) ellipse (0.08 and 0.12); -\fill[black] (-0.105, 1.78) ellipse (0.04 and 0.07); -\fill[black] (0.105, 1.78) ellipse (0.04 and 0.07); +\fill[white] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[white] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[black] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; +\fill[black] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\hippo@part@draw[\hippo@body!80!white] (0, 1.55) ellipse (0.42 and 0.2); -\hippo@part@draw[\hippo@body!70!black] (-0.07, 1.63) circle (0.035); -\hippo@part@draw[\hippo@body!70!black] (0.07, 1.63) circle (0.035); +\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]; % % 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 - \draw[\hippo@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \fi - % + \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; +\else + \draw[\hippo@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2]; +\fi +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \hippo@part@draw[\hippo@body] (-0.25,0.15) ellipse (0.16 and 0.17); - \hippo@part@draw[\hippo@body] (0.25,0.15) ellipse (0.16 and 0.17); - \hippo@part@draw[\hippo@toes] (0.25,0.13) ellipse (0.05 and 0.1); - \hippo@part@draw[\hippo@toes] (0.13,0.11) ellipse (0.05 and 0.1); - \hippo@part@draw[\hippo@toes] (0.37,0.11) ellipse (0.05 and 0.1); - \hippo@part@draw[\hippo@toes] (-0.25,0.13) ellipse (0.05 and 0.1); - \hippo@part@draw[\hippo@toes] (-0.13,0.11) ellipse (0.05 and 0.1); - \hippo@part@draw[\hippo@toes] (-0.37,0.11) ellipse (0.05 and 0.1); + \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} % -}
\ No newline at end of file +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname hippohookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty index 206a2918956..e4bbb3e515b 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty @@ -1,9 +1,8 @@ % !TeX root = ./examples/koala.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-koalas package (part of the tikzlings collection) -% A package to bring little koalas into tikz -% Created by @marmot (https://tex.stackexchange.com/a/448397/36296) +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -12,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-koalas} - [2019/04/07 v0.2 Drawing koalas in TikZ] +\ProvidesPackage{tikzlings-koalas}[2020/04/22 version v0.3 Drawing koalas in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -32,11 +27,16 @@ \koala@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname koalahookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifkoala@blush \newif\ifkoala@sleeping \newif\ifkoala@threeD +\newif\ifkoala@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -61,6 +61,7 @@ blush/.code = \koala@blushtrue, sleeping/.code = \koala@sleepingtrue, 3D/.code = \koala@threeDtrue, + back/.code = \koala@backtrue, } \def\koala@draw{% @@ -78,7 +79,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -100,30 +101,45 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname koalahookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body!50!black] (0.255,0.2) ellipse (0.23 and 0.09); -\koala@part@draw[\koala@body!50!black] (-0.255,0.2) ellipse (0.23 and 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (0.405, 2.1) ellipse (0.3 and 0.23); -\koala@part@draw[\koala@body!40!white] (0.405, 2.1) ellipse (0.15 and 0.12); -\koala@part@draw[\koala@body] (-0.405, 2.1) ellipse (0.3 and 0.23); -\koala@part@draw[\koala@body!40!white] (-0.405, 2.1) ellipse (0.15 and 0.12); +\koala@part@draw[\koala@body] (0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; +\koala@part@draw[\koala@body] (-0.405, 2.1) ellipse[x radius=0.3, y radius=0.23]; +\ifkoala@back\else + \koala@part@draw[\koala@body!40!white] (-0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; + \koala@part@draw[\koala@body!40!white] (0.405, 2.1) ellipse[x radius=0.15, y radius=0.12]; +\fi % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body,rotate around={70:(-0.625,1)}] (-0.625,1) ellipse (0.42 and 0.13); -\koala@part@draw[\koala@body!50!black,rotate around={-20:(-0.745,0.65)}] (-0.745,0.65) ellipse (0.12 and 0.08); -\koala@part@draw[\koala@body,rotate around={-70:(0.625,1)}] (0.625,1) ellipse (0.42 and 0.13); -\koala@part@draw[\koala@body!50!black,rotate around={20:(0.745,0.65)}] (0.745,0.65) ellipse (0.12 and 0.08); +\koala@part@draw[\koala@body] (-0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=70]; +\koala@part@draw[\koala@body!50!black] (-0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=-20]; +\koala@part@draw[\koala@body] (0.625,1) ellipse[x radius=0.42, y radius=0.13, rotate=-70]; +\koala@part@draw[\koala@body!50!black] (0.745,0.65) ellipse[x radius=0.12, y radius=0.08, rotate=20]; % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \koala@part@draw[\koala@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; % % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0 , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0 , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle; +\ifkoala@back\else + \koala@part@draw[\koala@body!40!white] ( 0.425, 0.71) .. controls ( 0.425, 0.41) and ( 0.255, 0.27) .. ( 0 , 0.27) .. controls (-0.255, 0.27) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.255, 1.20) .. ( 0 , 1.20) .. controls ( 0.225, 1.20) and ( 0.425, 1.01) .. ( 0.425, 0.71) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname koalahookbelly\endcsname +\csname tikzlinghookbelly\endcsname % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\koala@part@draw[\koala@body] (0,1.67) ellipse (0.55 and 0.45); +\koala@part@draw[\koala@body] (0,1.67) ellipse[x radius=0.55, y radius=0.45]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifkoala@back\else % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \koala@part@draw[\koala@body!40!black] (-0.1501, 1.5609) .. controls (-0.1784, 1.4833) and (-0.0827, 1.4108) .. ( 0.0000, 1.4108) .. controls ( 0.0827, 1.4108) and ( 0.1784, 1.4833) .. ( 0.1501, 1.5609) .. controls ( 0.1290, 1.6191) and ( 0.1187, 1.6573) .. ( 0.0750, 1.7010) .. controls ( 0.0336, 1.7424) and (-0.0336, 1.7424) .. (-0.0750, 1.7010) .. controls (-0.1187, 1.6573) and (-0.1290, 1.6191) .. (-0.1501, 1.5609) -- cycle; @@ -143,15 +159,15 @@ \fill[\koala@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 - \koala@part@draw[black] (-0.255, 1.74) circle (0.08); - \koala@part@draw[black] (0.255, 1.74) circle (0.08); - \fill[white] (-0.27, 1.76) circle (0.015); - \fill[white] (0.24, 1.76) circle (0.015); + \koala@part@draw[black] (-0.255, 1.74) circle[radius=0.08]; + \koala@part@draw[black] (0.255, 1.74) circle[radius=0.08]; + \fill[white] (-0.27, 1.76) circle[radius=0.015]; + \fill[white] (0.24, 1.76) circle[radius=0.015]; \fi % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifkoala@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; + \draw[black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; \else \draw[\koala@body!40!black,line width=\scalingfactor*0.4pt] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16]; \fi @@ -164,9 +180,14 @@ % % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifkoala@blush - \fill[red,path fading=koala@blush] (-0.3, 1.52) circle (0.1); - \fill[red,path fading=koala@blush] (0.3, 1.52) circle (0.1); + \fill[red,path fading=koala@blush] (-0.3, 1.52) circle[radius=0.1]; + \fill[red,path fading=koala@blush] (0.3, 1.52) circle[radius=0.1]; +\fi +% \fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname koalahookbody\endcsname +\csname tikzlinghookbody\endcsname % } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty index abbeb4a1fbe..2e2fd19808b 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/marmot.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-marmots package (part of the tikzlings collection) -% A package to bring little marmots into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-marmots} - [2019/04/07 v0.2 Drawing marmots in TikZ] +\ProvidesPackage{tikzlings-marmots}[2020/04/22 version v0.3 Drawing marmots in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -44,6 +40,10 @@ \marmot@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname marmothookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifmarmot@blush @@ -54,6 +54,7 @@ \newif\ifmarmot@askphil \newif\ifmarmot@leftstep \newif\ifmarmot@rightstep +\newif\ifmarmot@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -90,6 +91,7 @@ left step/.forward to = /marmot/leftstep, rightstep/.code = \marmot@rightsteptrue, right step/.forward to = /marmot/rightstep, + back/.code = \marmot@backtrue, } \def\marmot@draw{% @@ -107,7 +109,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -129,6 +131,10 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname marmothookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% \ifmarmot@askphil \pgfmathparse{int(random(1,120))} \let\marmot@random=\pgfmathresult @@ -138,7 +144,7 @@ \fi % \ifmarmot@shadow - \fill[opacity=0,blur shadow,rotate around={-80:(0.3,0.5)}] (0.3,0.5) ellipse (0.28 and 0.8); + \fill[opacity=0,blur shadow,] (0.3,0.5) ellipse[x radius=0.28, y radius=0.8, rotate=-80]; \fi % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -149,43 +155,59 @@ % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifmarmot@leftstep - \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse (0.23 and 0.09); + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; \else - \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse (0.23 and 0.09); + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; \fi \ifmarmot@rightstep - \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse (0.23 and 0.09); + \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; \else - \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse (0.23 and 0.09); + \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; \fi % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (0.255,2.03) ellipse (0.09 and 0.13); -\marmot@part@draw[\marmot@body!50!black] (-0.255,2.03) ellipse (0.09 and 0.13); +\marmot@part@draw[\marmot@body!50!black] (0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; +\marmot@part@draw[\marmot@body!50!black] (-0.255,2.03) ellipse[x radius=0.09, y radius=0.13]; % % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (0.885, 0.67) .. controls (0.865, 0.4) and (0.345, 0.24) .. (0.335, 0.44) .. controls (0.315, 0.56) and (0.445, 0.51) .. (0.575, 0.53) .. controls (0.695, 0.54) and (0.885, 0.72) .. (0.885, 0.67) -- cycle; +\ifmarmot@back\else + \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); +\fi % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \marmot@part@draw[\marmot@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; % +% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@back + \marmot@part@draw[\marmot@body!50!black] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); +\fi +% % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; +\ifmarmot@back\else + \marmot@part@draw[\marmot@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname marmothookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@back\else % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black,rotate around={70:(0.385,0.93)}] (0.385,0.93) ellipse (0.24 and 0.13); -\marmot@part@draw[\marmot@body!50!black,rotate around={-70:(-0.385,0.93)}] (-0.385,0.93) ellipse (0.24 and 0.13); +\marmot@part@draw[\marmot@body!50!black] (0.385,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; +\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 (0.23 and 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 (0.08); +\marmot@part@draw[\marmot@body!50!black] (0,1.6) circle[radius=0.08]; % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\marmot@part@draw[\marmot@body!50!black] (-0.155,1.77) circle (0.05); -\marmot@part@draw[\marmot@body!50!black] (0.155,1.77) circle (0.05); +\marmot@part@draw[\marmot@body!50!black] (-0.155,1.77) circle[radius=0.05]; +\marmot@part@draw[\marmot@body!50!black] (0.155,1.77) circle[radius=0.05]; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[\marmot@body!50!black] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14,1.51) -- (-0.14,1.51) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle ; @@ -198,8 +220,8 @@ % % Blushed %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifmarmot@blush - \fill[red,path fading=marmot@blush] (-0.295,1.6) circle (0.1); - \fill[red,path fading=marmot@blush] (0.295,1.6) circle (0.1); + \fill[red,path fading=marmot@blush] (-0.295,1.6) circle[radius=0.1]; + \fill[red,path fading=marmot@blush] (0.295,1.6) circle[radius=0.1]; \fi % % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -219,5 +241,10 @@ \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376); \fi % +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname marmothookbody\endcsname +\csname tikzlinghookbody\endcsname +% } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty index f7fa99eb887..abb7b4111a6 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/mouse.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-mice package (part of the tikzlings collection) -% A package to bring little mice into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-mice} - [2019/04/07 v0.2 Drawing mice in TikZ] +\ProvidesPackage{tikzlings-mice}[2020/04/22 version v0.3 Drawing mice in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,10 +23,17 @@ \mouse@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname mousehookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifmouse@threeD \newif\ifmouse@rotatearms +\newif\ifmouse@leftstep +\newif\ifmouse@rightstep +\newif\ifmouse@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -57,6 +60,11 @@ \def\mouse@rotatearms{#1}, rotate arms/.forward to = /mouse/rotatearms, rotatearms = 20, + leftstep/.code = \mouse@leftsteptrue, + left step/.forward to = /mouse/leftstep, + rightstep/.code = \mouse@rightsteptrue, + right step/.forward to = /mouse/rightstep, + back/.code = \mouse@backtrue, } \def\mouse@draw{% @@ -74,7 +82,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -96,28 +104,65 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname mousehookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse (0.23 and 0.09); -\mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse (0.23 and 0.09); +\ifmouse@leftstep + \mouse@part@draw[\mouse@body!65!white] (-0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; +\else + \mouse@part@draw[\mouse@body!65!white] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +\fi +% +\ifmouse@rightstep + \mouse@part@draw[\mouse@body!65!white] (0.255,0.25) ellipse[x radius=0.23, y radius=0.09]; +\else + \mouse@part@draw[\mouse@body!65!white] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +\fi % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white] (0.36, 2.17) circle (0.28); -\mouse@part@draw[\mouse@body] (0.36, 2.17) circle (0.15); -\mouse@part@draw[\mouse@body!65!white] (-0.36, 2.17) circle (0.28); -\mouse@part@draw[\mouse@body] (-0.36, 2.17) circle (0.15); +\mouse@part@draw[\mouse@body!65!white] (0.36, 2.17) circle[radius=0.28]; +\mouse@part@draw[\mouse@body!65!white] (-0.36, 2.17) circle[radius=0.28]; +\ifmouse@back\else + \mouse@part@draw[\mouse@body] (0.36, 2.17) circle[radius=0.15]; + \mouse@part@draw[\mouse@body] (-0.36, 2.17) circle[radius=0.15]; +\fi % % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white] (0.348, 0.475) .. controls (0.598, 0.844) and (0.778, 1.475) .. (1.099, 1.625) .. controls (1.369, 1.745) and (1.677, 1.309) .. (1.609, 1.305) .. controls (0.933, 2.178) and (0.771, 0.676) .. (0.411, 0.446) -- cycle; +\ifmouse@back\else + \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; +\fi % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \mouse@part@draw[\mouse@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname mousehookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmouse@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; +\fi +% % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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; +\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; +\else + \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 +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmouse@back\else % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!65!white,rotate around={-\mouse@rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse (0.13 and 0.24); -\mouse@part@draw[\mouse@body!65!white,rotate around={\mouse@rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse (0.13 and 0.24); +\mouse@part@draw[\mouse@body!65!white,rotate around={-\mouse@rotatearms:(0.47,1.15)}] (0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; +\mouse@part@draw[\mouse@body!65!white,rotate around={\mouse@rotatearms:(-0.47,1.15)}] (-0.47,0.93) ellipse[x radius=0.13, y radius=0.24]; % % Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[\mouse@body!50!black] (0.0788, 1.2046) .. controls (0.1658, 1.2199) and (0.2086, 1.1539) .. (0.2956, 1.1386) -- (0.2956, 1.1486) .. controls (0.2097, 1.1637) and (0.1648, 1.2197) .. (0.0788, 1.2046) -- cycle; @@ -128,11 +173,16 @@ \fill[\mouse@body!50!black] (-0.0671, 1.2343) .. controls (-0.1414, 1.2825) and (-0.2182, 1.3064) .. (-0.2925, 1.2582) -- (-0.2925, 1.2682) .. controls (-0.2179, 1.3166) and (-0.1417, 1.2827) .. (-0.0671, 1.2343) -- cycle; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!50!black] (0, 1.248) circle (0.09); +\mouse@part@draw[\mouse@body!50!black] (0, 1.248) circle[radius=0.09]; % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mouse@part@draw[\mouse@body!50!black] (0.23, 1.68) circle (0.05); -\mouse@part@draw[\mouse@body!50!black] (-0.23, 1.68) circle (0.05); +\mouse@part@draw[\mouse@body!50!black] (0.23, 1.68) circle[radius=0.05]; +\mouse@part@draw[\mouse@body!50!black] (-0.23, 1.68) circle[radius=0.05]; % +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname mousehookbody\endcsname +\csname tikzlinghookbody\endcsname +% } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty index b59e022fd57..392de7a7633 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/mole.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-moles package (part of the tikzlings collection) -% A package to bring little moles into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-moles} - [2019/04/07 v0.2 Drawing moles in TikZ] +\ProvidesPackage{tikzlings-moles}[2020/04/22 version v0.3 Drawing moles in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \mole@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname moleshookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifmole@threeD +\newif\ifmole@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -57,7 +58,8 @@ % options % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - 3D/.code = \mole@threeDtrue, + 3D/.code = \mole@threeDtrue, + back/.code = \mole@backtrue, } \def\mole@draw{% @@ -75,7 +77,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -97,12 +99,18 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname moleshookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mole@part@draw[\mole@feet] (-0.255,0.2) ellipse (0.23 and 0.09); -\mole@part@draw[\mole@feet] (0.255,0.2) ellipse (0.23 and 0.09); +\mole@part@draw[\mole@feet] (-0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; +\mole@part@draw[\mole@feet] (0.255,0.2) ellipse[x radius=0.23, y radius=0.09]; % % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mole@part@draw[\mole@body] (0.885, 0.67) .. controls (0.865, 0.4) and (0.345, 0.24) .. (0.335, 0.44) .. controls (0.315, 0.56) and (0.445, 0.51) .. (0.575, 0.53) .. controls (0.695, 0.54) and (0.885, 0.72) .. (0.885, 0.67) -- cycle; +\ifmole@back\else + \mole@part@draw[\mole@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504); +\fi % % Hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \mole@part@draw[\mole@body] (-0.09, 2.06) .. controls (-0.09, 2.06) and (-0.13, 2.25) .. (-0.07, 2.27) .. controls (-0.09, 2.13) and (0.04, 2.08) .. (0.04, 2.08) .. controls (0.04, 2.08) and (0.02, 2.20) .. (0.06, 2.21) .. controls (0.06, 2.11) and (0.13, 2.08) .. (0.13, 2.08) -- cycle; @@ -110,35 +118,54 @@ % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \mole@part@draw[\mole@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; % +% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmole@back + \mole@part@draw[\mole@body] (0.8856, 0.6504) .. controls (0.8656, 0.3803) and (0.0267, 0.2202) .. (0.0167, 0.4203) .. controls (-0.0033, 0.5404) and (0.1104, 0.4397) .. (0.3951, 0.4803) .. controls (0.6557, 0.5175) and (0.8856, 0.7005) .. (0.8856, 0.6504) -- cycle; +\fi +% % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mole@part@draw[\mole@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; +\ifmole@back\else + \mole@part@draw[\mole@body!50!white] (0.425, 0.71) .. controls (0.425, 0.41) and (0.245, 0.37) .. (0, 0.37) .. controls (-0.245, 0.37) and (-0.425, 0.41) .. (-0.425, 0.71) .. controls (-0.425, 1.01) and (-0.225, 1.26) .. (0, 1.26) .. controls (0.225, 1.26) and (0.425, 1.01) .. (0.425, 0.71) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname moleshookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmole@back\else % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mole@part@draw[\mole@body,rotate around={70:(0.37,0.86)}] (0.37,0.86) ellipse (0.27 and 0.13); -\mole@part@draw[\mole@body,rotate around={-70:(-0.37,0.86)}] (-0.37,0.86) ellipse (0.27 and 0.13); +\mole@part@draw[\mole@body] (0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=70]; +\mole@part@draw[\mole@body] (-0.37,0.86) ellipse[x radius=0.27, y radius=0.13, rotate=-70]; % % Hands %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[white] (-0.37,0.6) -- (-0.32,0.53) -- (-0.3,0.6) -- (-0.23,0.55) -- (-0.23,0.64) -- (-0.16,0.59) -- (-0.18,0.67) -- cycle; \fill[white] (0.37,0.6) -- (0.32,0.53) -- (0.3,0.6) -- (0.23,0.55) -- (0.23,0.64) -- (0.16,0.59) -- (0.18,0.67) -- cycle; -\mole@part@draw[\mole@hands,rotate around={70:(0.285,0.65)}] (0.285,0.65) ellipse (0.08 and 0.13); -\mole@part@draw[\mole@hands,rotate around={-70:(-0.285,0.65)}] (-0.285,0.65) ellipse (0.08 and 0.13); +\mole@part@draw[\mole@hands] (0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=70]; +\mole@part@draw[\mole@hands] (-0.285,0.65) ellipse[x radius=0.08, y radius=0.13, rotate=-70]; % % Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \mole@part@draw[\mole@muzzle] ( 0.22, 1.46) .. controls ( 0.22, 1.50) and ( 0.22, 1.53) .. ( 0.17, 1.56) .. controls ( 0.11, 1.58) and ( 0.05, 1.66) .. ( 0.00, 1.66) .. controls (-0.05, 1.66) and (-0.11, 1.58) .. (-0.17, 1.56) .. controls (-0.22, 1.53) and (-0.22, 1.50) .. (-0.22, 1.46) .. controls (-0.22, 1.39) and (-0.14, 1.33) .. ( 0.00, 1.33) .. controls ( 0.14, 1.33) and ( 0.22, 1.39) .. ( 0.22, 1.46) -- cycle; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\mole@part@draw[\mole@body!60!black] (0,1.67) circle (0.055); +\mole@part@draw[\mole@body!60!black] (0,1.67) circle[radius=0.055]; % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifmole@threeD - \fill[\mole@body!60!black,rotate around={-15:(-0.165,1.79)}] (-0.165,1.79) ellipse (0.055 and 0.015); - \fill[\mole@body!30!black,rotate around={15:(0.165,1.79)}] (0.165,1.79) ellipse (0.055 and 0.015); + \fill[\mole@body!60!black] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; + \fill[\mole@body!30!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; \else - \fill[\mole@body!60!black,rotate around={-15:(-0.165,1.79)}] (-0.165,1.79) ellipse (0.055 and 0.015); - \fill[\mole@body!60!black,rotate around={15:(0.165,1.79)}] (0.165,1.79) ellipse (0.055 and 0.015); + \fill[\mole@body!60!black] (-0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=-15]; + \fill[\mole@body!60!black] (0.165,1.79) ellipse[x radius=0.055, y radius=0.015, rotate=15]; \fi % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \draw[\mole@body!60!black, line width=\scalingfactor*0.4pt] (0.145,1.51) arc [start angle=-20, end angle=-160, radius=0.16] ; % -}
\ No newline at end of file +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname moleshookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty index b54f37f88ab..ec25a801985 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/owl.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-owls package (part of the tikzlings collection) -% A package to draw litlle owls with tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-owls} - [2019/04/07 v0.2 Draw owls in TikZ] +\ProvidesPackage{tikzlings-owls}[2020/04/22 version v0.3 Draw owls in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \owl@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname owlhookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifowl@threeD +\newif\ifowl@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -60,6 +61,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \owl@threeDtrue, + back/.code = \owl@backtrue, } \def\owl@draw{% @@ -77,7 +79,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -99,9 +101,23 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname owlhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body,rotate around={-80:(0.575,0.8)}] (0.575,0.8) ellipse (0.38 and 0.1); -\owl@part@draw[\owl@body,rotate around={80:(-0.575,0.8)}] (-0.575,0.8) ellipse (0.38 and 0.1); +\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 + \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; +\fi % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \owl@part@draw[\owl@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; @@ -110,27 +126,43 @@ \owl@part@draw[\owl@body] (-0.6361, 1.777) .. controls (-0.6361, 1.777) and (-0.7586, 1.9603) .. (-0.6759, 2.2145) .. controls (-0.3248, 1.912) and (0.3248, 1.912) .. (0.6759, 2.2145) .. controls (0.7586, 1.9603) and (0.6361, 1.777) .. (0.6361, 1.777); % % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle; +\ifowl@back\else + \owl@part@draw[\owl@body!50!white] (0.425,0.5) .. controls (0.425,0.31) and (0.245,0.27) .. (0,0.27) .. controls (-0.245,0.27) and (-0.425,0.31) .. (-0.425,0.5) .. controls (-0.425,0.81) and (-0.225,0.98) .. (0,0.98) .. controls (0.225,0.98) and (0.425,0.81) .. (0.425,0.5) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname owlhookbelly\endcsname +\csname tikzlinghookbelly\endcsname % % head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@body] (0,1.55) ellipse (0.7 and 0.55); +\owl@part@draw[\owl@body] (0,1.55) ellipse[x radius=0.7, y radius=0.55]; % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\owl@eye] (-0.28, 1.6) circle (0.22); -\owl@part@draw[\owl@pupil] (-0.28, 1.6) circle (0.15); -\fill[\owl@eye] (0.28, 1.6) circle (0.22); -\owl@part@draw[\owl@pupil] (0.28, 1.6) circle (0.15); -\owl@part@draw[white] (0.25, 1.64) circle (0.03); -\owl@part@draw[white] (-0.31, 1.64) circle (0.03); +\ifowl@back\else + \fill[\owl@eye] (-0.28, 1.6) circle[radius=0.22]; + \owl@part@draw[\owl@pupil] (-0.28, 1.6) circle[radius=0.15]; + \fill[\owl@eye] (0.28, 1.6) circle[radius=0.22]; + \owl@part@draw[\owl@pupil] (0.28, 1.6) circle[radius=0.15]; + \owl@part@draw[white] (0.25, 1.64) circle[radius=0.03]; + \owl@part@draw[white] (-0.31, 1.64) circle[radius=0.03]; +\fi % % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle; +\ifowl@back\else + \owl@part@draw[\owl@bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle; +\fi % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\owl@part@draw[\owl@feet] (0.175,0.2) ellipse (0.03 and 0.1); -\owl@part@draw[\owl@feet,rotate around={20:(0.225,0.21)}] (0.225,0.21) ellipse (0.03 and 0.1); -\owl@part@draw[\owl@feet,rotate around={40:(0.275,0.23)}] (0.275,0.23) ellipse (0.03 and 0.1); -\owl@part@draw[\owl@feet] (-0.175,0.2) ellipse (0.03 and 0.1); -\owl@part@draw[\owl@feet,rotate around={-20:(-0.225,0.21)}] (-0.225,0.21) ellipse (0.03 and 0.1); -\owl@part@draw[\owl@feet,rotate around={-40:(-0.275,0.23)}] (-0.275,0.23) ellipse (0.03 and 0.1); -}
\ No newline at end of file +\ifowl@back\else + \owl@part@draw[\owl@feet] (0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=20]; + \owl@part@draw[\owl@feet] (0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=40]; + \owl@part@draw[\owl@feet] (-0.175,0.2) ellipse[x radius=0.03, y radius=0.1]; + \owl@part@draw[\owl@feet] (-0.225,0.21) ellipse[x radius=0.03, y radius=0.1, rotate=-20]; + \owl@part@draw[\owl@feet] (-0.275,0.23) ellipse[x radius=0.03, y radius=0.1, rotate=-40]; +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname owlhookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty index 1361cd2df78..97f8959abb4 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pandas.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/panda.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-pandas package (part of the tikzlings collection) -% A package to bring little pandas into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-pandas} - [2019/04/07 v0.2 Drawing pandas in TikZ] +\ProvidesPackage{tikzlings-pandas}[2020/04/22 version v0.3 Drawing pandas in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \panda@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pandahookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifpanda@threeD +\newif\ifpanda@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -52,6 +53,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \panda@threeDtrue, + back/.code = \panda@backtrue, } \def\panda@draw{% @@ -69,7 +71,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -91,38 +93,64 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pandahookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpanda@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]; +\fi +% % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[\panda@body!55!white] (0,0.78) ellipse (0.57 and 0.65); +\panda@part@draw[\panda@body!55!white] (0,0.78) ellipse[x radius=0.57, y radius=0.65]; +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pandahookbelly\endcsname +\csname tikzlinghookbelly\endcsname % % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{scope}[yshift=-0.08cm] -\panda@part@draw[black,rotate around={70:(0.28,0.93)}] (0.28,0.93) ellipse (0.24 and 0.13); -\panda@part@draw[black,rotate around={-70:(-0.28,0.93)}] (-0.28,0.93) ellipse (0.24 and 0.13); -\end{scope} +\ifpanda@back\else + \begin{scope}[yshift=-0.08cm] + \panda@part@draw[black] (0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=70]; + \panda@part@draw[black] (-0.28,0.93) ellipse[x radius=0.24, y radius=0.13, rotate=-70]; + \end{scope} +\fi % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0.32, 0.27) circle (0.2); -\panda@part@draw[black] (-0.32, 0.27) circle (0.2); +\ifpanda@back\else + \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 % % Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0.32, 2) circle (0.15); -\panda@part@draw[black] (-0.32, 2) circle (0.15); +\panda@part@draw[black] (0.32, 2) circle[radius=0.15]; +\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; % +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpanda@back\else +% % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \panda@part@draw[black] (0.3732, 1.6905) .. controls (0.3498, 1.767) and (0.2032, 1.8059) .. (0.0944, 1.7715) .. controls (-0.0145, 1.7371) and (0.173, 1.5479) .. (0.2508, 1.5443) .. controls (0.3286, 1.5407) and (0.3965, 1.614) .. (0.3732, 1.6905) -- cycle; \panda@part@draw[black] (-0.3732, 1.6905) .. controls (-0.3498, 1.767) and (-0.2032, 1.8059) .. (-0.0944, 1.7715) .. controls (0.0145, 1.7371) and (-0.173, 1.5479) .. (-0.2508, 1.5443) .. controls (-0.3286, 1.5407) and (-0.3965, 1.614) .. (-0.3732, 1.6905) -- cycle; -\panda@part@draw[white] (-0.18, 1.7) circle (0.05); -\panda@part@draw[white] (0.18, 1.7) circle (0.05); -\panda@part@draw[black] (0.17, 1.695) circle (0.02); -\panda@part@draw[black] (-0.17, 1.695) circle (0.02); +\panda@part@draw[white] (-0.18, 1.7) circle[radius=0.05]; +\panda@part@draw[white] (0.18, 1.7) circle[radius=0.05]; +\panda@part@draw[black] (0.17, 1.695) circle[radius=0.02]; +\panda@part@draw[black] (-0.17, 1.695) circle[radius=0.02]; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \draw[black,line width=\scalingfactor*0.2pt] (-0.16, 1.477) .. controls (-0.16, 1.477) and (-0.062, 1.37) .. (0, 1.506) .. controls (0.062, 1.37) and (0.16, 1.477) .. (0.16, 1.477); % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\panda@part@draw[black] (0,1.55) ellipse (0.07 and 0.04); +\panda@part@draw[black] (0,1.55) ellipse[x radius=0.07, y radius=0.04]; % -}
\ No newline at end of file +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pandahookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty index 70d90092fa1..022d2a1d97b 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/pingu.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-penguins package (part of the tikzlings collection) -% A package to bring penguins into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-penguins} - [2019/04/07 v0.2 Draw penguins in TikZ] +\ProvidesPackage{tikzlings-penguins}[2020/04/22 version v0.3 Draw penguins in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \penguin@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname penguinhookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifpenguin@threeD +\newif\ifpenguin@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -62,6 +63,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \penguin@threeDtrue, + back/.code = \penguin@backtrue, } \def\penguin@draw{% @@ -79,7 +81,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -101,28 +103,56 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname penguinhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@part@draw[\penguin@body,rotate around={-50:(0.575,1.2)}] (0.575,1.2) ellipse (0.38 and 0.1); -\penguin@part@draw[\penguin@body,rotate around={50:(-0.575,1.2)}] (-0.575,1.2) ellipse (0.38 and 0.1); +\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; +\fi % % Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \penguin@part@draw[\penguin@body] (0.595, 0.92) .. controls (0.595, 0.26) and (0.355, 0.18) .. (0, 0.18) .. controls (-0.355, 0.18) and (-0.595, 0.26) .. (-0.595, 0.92) .. controls (-0.605, 1.58) and (-0.335, 2.11) .. (0, 2.11) .. controls (0.335, 2.11) and (0.605, 1.58) .. (0.595, 0.92) -- cycle; % % Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@part@draw[\penguin@belly] (0, 0.6) ellipse (0.48 and 0.35); +\ifpenguin@back\else + \penguin@part@draw[\penguin@belly] (0, 0.6) ellipse[x radius=0.48, y radius=0.35]; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname penguinhookbelly\endcsname +\csname tikzlinghookbelly\endcsname % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@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; +\ifpenguin@back\else + \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 % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\penguin@eye,rotate around={-10:(-0.175,1.64)}] (-0.175,1.64) ellipse (0.1 and 0.15); -\fill[\penguin@pupil,rotate around={-3:(-0.145,1.625)}] (-0.145,1.625) ellipse (0.0357 and 0.0714); -\fill[\penguin@eye,rotate around={10:(0.175,1.64)}] (0.175,1.64) ellipse (0.1 and 0.15); -\fill[\penguin@pupil,rotate around={3:(0.145,1.625)}] (0.145,1.625) ellipse (0.0357 and 0.0714); +\ifpenguin@back\else + \fill[\penguin@eye] (-0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=-10]; + \fill[\penguin@pupil] (-0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=-3]; + \fill[\penguin@eye] (0.175,1.64) ellipse[x radius=0.1, y radius=0.15, rotate=10]; + \fill[\penguin@pupil] (0.145,1.625) ellipse[x radius=0.0357, y radius=0.0714, rotate=3]; +\fi % % Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\penguin@part@draw[\penguin@bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle; -}
\ No newline at end of file +\ifpenguin@back\else + \penguin@part@draw[\penguin@bill] (0.323, 1.4591) .. controls (0.1467, 1.3257) and (0.1066, 1.4365) .. (0, 1.4358) .. controls (-0.1066, 1.4365) and (-0.1467, 1.3257) .. (-0.323, 1.4591) .. controls (-0.1267, 1.075) and (0.1267, 1.075) .. (0.323, 1.4591) -- cycle; +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname penguinhookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty index 8ebc701955a..09e4ccf0c8b 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-pigs.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/pig.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-pigs package (part of the tikzlings collection) -% A package to bring little pigs into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-pigs} - [2019/04/07 v0.2 Drawing pigs in TikZ] +\ProvidesPackage{tikzlings-pigs}[2020/04/22 version v0.3 Drawing pigs in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -28,9 +24,14 @@ \pig@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname pighookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifpig@threeD +\newif\ifpig@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -53,6 +54,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \pig@threeDtrue, + back/.code = \pig@backtrue, } \def\pig@draw{% @@ -70,7 +72,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -92,43 +94,73 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pighookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\draw[\pig@body,line width=\scalingfactor*0.8pt] (0.8471, 0.5927) .. controls (0.8549, 0.4832) and (0.8046, 0.4105) .. (0.7319, 0.4079) .. controls (0.6592, 0.4052) and (0.6142, 0.4365) .. (0.5964, 0.5024) .. controls (0.5786, 0.5682) and (0.6252, 0.6291) .. (0.6794, 0.6342) .. controls (0.7335, 0.6394) and (0.7561, 0.6114) .. (0.7663, 0.5661) .. controls (0.7765, 0.5208) and (0.746, 0.458) .. (0.7192, 0.4319) .. controls (0.6924, 0.4058) and (0.7073, 0.4182) .. (0.6604, 0.3859) .. controls (0.6134, 0.3536) and (0.4367, 0.3643) .. (0.3877, 0.5055); +\ifpig@back\else + \draw[\pig@body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); +\fi % +% Feet if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpig@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; +\fi% % 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; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pighookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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; +\ifpig@back\else + \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; +\fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body!55!white] (0,1.64) ellipse (.5 and .5); +\pig@part@draw[\pig@body!55!white] (0,1.64) ellipse[x radius=.5, y radius=.5]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpig@back\else % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[gray] (-0.09, 1.82) circle (0.02); -\pig@part@draw[gray] ( 0.09, 1.82) circle (0.02); +\pig@part@draw[gray] (-0.09, 1.82) circle[radius=0.02]; +\pig@part@draw[gray] ( 0.09, 1.82) circle[radius=0.02]; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@part@draw[\pig@body] (0, 1.62) ellipse (0.18 and 0.14); -\pig@part@draw[gray] (-0.06, 1.62) circle (0.035); -\pig@part@draw[gray] ( 0.06, 1.62) circle (0.035); +\pig@part@draw[\pig@body] (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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifpig@threeD - \draw[gray!70!black,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; + \draw[gray!70!black,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; \else - \draw[gray,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; + \draw[gray,line width=\scalingfactor*0.4pt] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ; \fi % -% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pig@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; -% % 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; % -}
\ No newline at end of file +\fi +% +% 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; +% +% Tail if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpig@back + \draw[\pig@body,line width=\scalingfactor*0.8pt] (0.8431, 0.583) .. controls (0.8609, 0.4063) and (0.7006, 0.361) .. (0.6384, 0.4293) .. controls (0.5762, 0.4976) and (0.5613, 0.6052) .. (0.6551, 0.629) .. controls (0.7537, 0.6541) and (0.7759, 0.5628) .. (0.7455, 0.4948) .. controls (0.6412, 0.2697) and (0.3543, 0.356) .. (0.2638, 0.4238) .. controls (0.1967, 0.4779) and (0.1788, 0.6076) .. (0.3192, 0.633) .. controls (0.6000, 0.6836) and (0.5130, 0.3048) .. (0.2098, 0.3322) .. controls (0.0809, 0.3438) and (0.0809, 0.5236) .. (0.0809, 0.5236); +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname pighookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty index dabbd15f178..af4c14603d9 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-rhinos.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/rhino.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-rhinos package (part of the tikzlings collection) -% A package to bring little rhinos into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-rhinos} - [2019/04/07 v0.2 Drawing rhinos in TikZ] +\ProvidesPackage{tikzlings-rhinos}[2020/04/22 version v0.3 Drawing rhinos in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,14 @@ \rhino@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname rhinohookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifrhino@threeD +\newif\ifrhino@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -54,6 +55,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \rhino@threeDtrue, + back/.code = \rhino@backtrue, } \def\rhino@draw{% @@ -71,7 +73,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -93,50 +95,82 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbackground\endcsname +\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; % +% 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} +\fi +% +% Nose if back %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifrhino@back + \rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse[x radius=0.36, y radius=0.2]; +\fi +% % 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; % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body,rotate around={90:(0.3,1.0)}] (0.3,1.0) ellipse (0.24 and 0.13); -\rhino@part@draw[\rhino@body,rotate around={-90:(-0.3,1.0)}] (-0.3,1.0) ellipse (0.24 and 0.13); +\ifrhino@back\else + \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]; +\fi % % Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle (0.36); +\rhino@part@draw[\rhino@body!55!white] (0, 1.76) circle[radius=0.36]; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifrhino@back\else % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[white] (-0.11, 1.83) ellipse (0.08 and 0.12); -\fill[white] (0.11, 1.83) ellipse (0.08 and 0.12); -\fill[black] (-0.105, 1.78) ellipse (0.04 and 0.07); -\fill[black] (0.105, 1.78) ellipse (0.04 and 0.07); +\fill[white] (-0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[white] (0.11, 1.83) ellipse[x radius=0.08, y radius=0.12]; +\fill[black] (-0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; +\fill[black] (0.105, 1.78) ellipse[x radius=0.04, y radius=0.07]; % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\rhino@part@draw[\rhino@body!80!white] (0, 1.55) ellipse (0.36 and 0.2); +\rhino@part@draw[\rhino@body!80!white] (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; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifrhino@threeD - \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \else - \draw[\rhino@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; - \fi - % + \draw[black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; +\else + \draw[\rhino@body!70!black,line width=\scalingfactor*0.4pt] (0.125, 1.5) arc [start angle=-50, end angle=-130, radius=0.2] ; +\fi +% % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{scope} - \clip (-0.5,0.4) rectangle (0.5,0.13); - \rhino@part@draw[\rhino@body] (-0.25,0.15) ellipse (0.16 and 0.17); - \rhino@part@draw[\rhino@body] (0.25,0.15) ellipse (0.16 and 0.17); - \rhino@part@draw[\rhino@toes] (0.25,0.13) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (0.13,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (0.37,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.25,0.13) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.13,0.11) ellipse (0.05 and 0.1); - \rhino@part@draw[\rhino@toes] (-0.37,0.11) ellipse (0.05 and 0.1); + \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} % -}
\ No newline at end of file +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname rhinohookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty index 7d774bec907..bdc62e573aa 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/sloth.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-sloths package (part of the tikzlings collection) -% A package to bring little sloths into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-sloths} - [2019/04/07 v0.2 Drawing sloths in TikZ] +\ProvidesPackage{tikzlings-sloths}[2020/04/22 version v0.3 Drawing sloths in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -29,10 +25,15 @@ \sloth@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname slothhookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifsloth@sleeping \newif\ifsloth@threeD +\newif\ifsloth@back \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -56,6 +57,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% sleeping/.code = \sloth@sleepingtrue, 3D/.code = \sloth@threeDtrue, + back/.code = \sloth@backtrue, } \def\sloth@draw{% @@ -73,7 +75,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -95,16 +97,54 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname slothhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +% 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]; +\fi +% +% 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]; +\fi +% % 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; % +% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsloth@back\else + \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; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname slothhookbelly\endcsname +\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; +% % 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; +% +% Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsloth@back\else +% \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; % % behind the eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -113,59 +153,58 @@ % % Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifsloth@sleeping - \fill[\sloth@body!50!white] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle; - \fill[\sloth@body!50!white] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle; - % - \fill[\sloth@body!50!white] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); - % - \fill[\sloth@body!50!white] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); - \fill[\sloth@body!50!white,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white] (0.237, 1.743) .. controls (0.237, 1.712) and (0.157, 1.712) .. (0.157, 1.743) .. controls (0.157, 1.802) and (0.237, 1.802) .. (0.237, 1.743) -- cycle; + \fill[\sloth@body!50!white] (-0.237, 1.743) .. controls (-0.237, 1.712) and (-0.157, 1.712) .. (-0.157, 1.743) .. controls (-0.157, 1.802) and (-0.237, 1.802) .. (-0.237, 1.743) -- cycle; + % + \fill[\sloth@body!50!white] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={44:(0.195, 1.76)}] (0.195, 1.701) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={-22:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={-44:(0.195, 1.76)}] (0.195, 1.705) rectangle ++(0.005, 0.02); + % + \fill[\sloth@body!50!white] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={44:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={-22:(-0.195, 1.76)}] (-0.195, 1.705) rectangle ++(0.005, 0.02); + \fill[\sloth@body!50!white,rotate around={-44:(-0.195, 1.76)}] (-0.195, 1.701) rectangle ++(0.005, 0.02); \else - \sloth@part@draw[black] (0.193,1.75) circle (0.04); - \sloth@part@draw[black] (-0.193,1.75) circle (0.04); - \fill[white] (-0.2 ,1.765) circle (0.006); - \fill[white] ( 0.186,1.765) circle (0.006); + \sloth@part@draw[black] (0.193,1.75) circle[radius=0.04]; + \sloth@part@draw[black] (-0.193,1.75) circle[radius=0.04]; + \fill[white] (-0.2 ,1.765) circle[radius=0.006]; + \fill[white] ( 0.186,1.765) circle[radius=0.006]; \fi % % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse (0.078 and 0.048); +\sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse[x radius=0.078, y radius=0.048]; % % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \draw[\sloth@body!40!black,line width=\scalingfactor*0.4pt] (0.115, 1.55) arc [start angle=-40, end angle=-140, radius=0.16]; % -% 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; -% -% Belly %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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; -% % 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; % -\fill[\sloth@body!50!black,rotate around={110:(0.15, 0.61)}] (0.15, 0.61) ellipse (0.017 and 0.07); -\fill[\sloth@body!50!black,rotate around={117:(0.17, 0.57)}] (0.17, 0.57) ellipse (0.015 and 0.07); -\fill[\sloth@body!50!black,rotate around={125:(0.19, 0.53)}] (0.19, 0.53) ellipse (0.012 and 0.062); +\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@body!50!black,rotate around={-110:(-0.15, 0.61)}] (-0.15, 0.61) ellipse (0.017 and 0.07); -\fill[\sloth@body!50!black,rotate around={-117:(-0.17, 0.57)}] (-0.17, 0.57) ellipse (0.015 and 0.07); -\fill[\sloth@body!50!black,rotate around={-125:(-0.19, 0.53)}] (-0.19, 0.53) ellipse (0.012 and 0.062); +\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]; % % Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\sloth@part@draw[\sloth@body,rotate around={25:(0.33,0.31)}] (0.33,0.31) ellipse (0.25 and 0.13); -\sloth@part@draw[\sloth@body,rotate around={-25:(-0.33,0.31)}] (-0.33,0.31) ellipse (0.25 and 0.13); -\fill[\sloth@body!50!black,rotate around={-10:(-0.125,0.265)}] (-0.125,0.265) ellipse (0.07 and 0.019); -\fill[\sloth@body!50!black,rotate around={-16:(-0.14,0.21)}] (-0.14,0.21) ellipse (0.07 and 0.017); -\fill[\sloth@body!50!black,rotate around={-22:(-0.16,0.165)}] (-0.16,0.165) ellipse (0.07 and 0.015); -\fill[\sloth@body!50!black,rotate around={10:(0.125,0.265)}] (0.125,0.265) ellipse (0.07 and 0.019); -\fill[\sloth@body!50!black,rotate around={16:(0.14,0.21)}] (0.14,0.21) ellipse (0.07 and 0.017); -\fill[\sloth@body!50!black,rotate around={22:(0.16,0.165)}] (0.16,0.165) ellipse (0.07 and 0.015); +\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@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]; +% +\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname slothhookbody\endcsname +\csname tikzlinghookbody\endcsname % } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty index c084e99bcb6..7e72e3bb2cf 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/snowman.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings-snowmans package (part of the tikzlings collection) -% A package to bring snowmans into tikz +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings-snowmans} - [2019/04/07 v0.2 Draw snowmans in TikZ] +\ProvidesPackage{tikzlings-snowmans}[2020/04/22 version v0.3 Draw snowmans in TikZ] \RequirePackage{tikz} \RequirePackage{tikzlings-addons} @@ -27,9 +23,15 @@ \snowman@draw% \end{scope}% \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookforeground\endcsname + \csname tikzlinghookforeground\endcsname + % } \newif\ifsnowman@threeD +\newif\ifsnowman@back +\newif\ifsnowman@globalwarming \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -60,6 +62,11 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3D/.code = \snowman@threeDtrue, + back/.code = \snowman@backtrue, + globalwarming/.code= \snowman@globalwarmingtrue + \def\snowman@globalwarming{#1}, + globalwarming/.default = blue!10!white, + global warming/.forward to = /snowman/globalwarming, } \def\snowman@draw{% @@ -77,7 +84,7 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% -\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% \pgfmathsetmacro{\xscalefactor}{\tmpscaleA} \pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % @@ -95,38 +102,89 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Body parts (center: x=0.925) +% Body parts % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\snowman@part@draw[\snowman@body,rotate around={-50:(0.5,1.1)}] (0.5,1.1) ellipse (0.3 and 0.12); -\snowman@part@draw[\snowman@body,rotate around={50:(-0.5,1.1)}] (-0.5,1.1) ellipse (0.3 and 0.12); -% -% Body + Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\snowman@part@draw[\snowman@body] (0,0.5) ellipse (0.6 and 0.5); -\snowman@part@draw[\snowman@body] (0,1.1) ellipse (0.5 and 0.4); -\snowman@part@draw[\snowman@body] (0,1.7) circle (0.4); -% -% Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\fill[\snowman@mouth] (0,1.5) circle (0.016); -\fill[\snowman@mouth] (0.04,1.507) circle (0.016); -\fill[\snowman@mouth] (-0.04,1.507) circle (0.016); -\fill[\snowman@mouth] (0.08,1.522) circle (0.016); -\fill[\snowman@mouth] (-0.08,1.522) circle (0.016); -\fill[\snowman@mouth] (0.12,1.543) circle (0.016); -\fill[\snowman@mouth] (-0.12,1.543) circle (0.016); -% -% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\snowman@part@draw[\snowman@eye] (-0.155,1.8) circle (0.04); -\snowman@part@draw[\snowman@eye] (0.155,1.8) circle (0.04); -% -% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\snowman@part@draw[\snowman@nose] (0,1.67) circle (0.05) (0,1.72) -- (0,1.62) -- (0.15,1.64) -- cycle; -% -% buttons %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\snowman@part@draw[\snowman@buttons] (0,1.15) circle (0.04); -\snowman@part@draw[\snowman@buttons] (0,0.95) circle (0.04); -\snowman@part@draw[\snowman@buttons] (0,0.75) circle (0.04); +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname snowmanhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +% Global warming %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsnowman@globalwarming + % + % Puddle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\snowman@globalwarming] (0,1.15) ellipse[x radius=1.6,y radius=1.15]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\snowman@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]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@nose] (-0.6,1.54) -- (-0.6,1.4) -- (-0.8,1.42) -- cycle; + \snowman@part@draw[\snowman@nose] (-0.6,1.47) circle[radius=0.07]; + % + % 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]; +% +% normal snowman %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\else + % + % Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@body] (0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=-50]; + \snowman@part@draw[\snowman@body] (-0.5,1.1) ellipse[x radius=0.3, y radius=0.12, rotate=50]; + % + % 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]; + % + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname snowmanhookbelly\endcsname + \csname tikzlinghookbelly\endcsname + % + % Show details only from the front %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \ifsnowman@back\else + % + % Mouth% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \fill[\snowman@mouth] (0,1.5) circle[radius=0.016]; + \fill[\snowman@mouth] (0.04,1.507) circle[radius=0.016]; + \fill[\snowman@mouth] (-0.04,1.507) circle[radius=0.016]; + \fill[\snowman@mouth] (0.08,1.522) circle[radius=0.016]; + \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]; + % + % 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]; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \snowman@part@draw[\snowman@nose] (0,1.67) circle[radius=0.05] (0,1.72) -- (0,1.62) -- (0.15,1.64) -- cycle; + % + % 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]; + % +\fi\fi +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname snowmanhookbody\endcsname +\csname tikzlinghookbody\endcsname % } diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty new file mode 100644 index 00000000000..59eb70428b6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-squirrels.sty @@ -0,0 +1,162 @@ +% !TeX root = ./examples/squirrel.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This package is part of the TikZlings package +% A package to bring cute little animals and other beings into tikz +% Maintained by samcarter +% +% Project repository and bug tracker: +% https://github.com/samcarter/tikzlings +% +% Released under the LaTeX Project Public License v1.3c or later +% See http://www.latex-project.org/lppl.txt +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-squirrels}[2020/04/22 version v0.3 Drawing squirrels in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\squirrel}[1][]{% + \begin{scope}% + \tikzset{/squirrel/.cd,#1}% + \squirrel@draw% + \end{scope}% + \thing[#1]% + % adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \csname squirrelhookforeground\endcsname + \csname tikzlinghookforeground\endcsname +} + +\newif\ifsquirrel@threeD +\newif\ifsquirrel@back + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /squirrel/.search also={/tikz,/pgf,/thing}, + /squirrel/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\squirrel@body{#1}, + body = brown!40!gray!90!red, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \squirrel@threeDtrue, + back/.code = \squirrel@backtrue, +} + +\def\squirrel@draw{% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.53,0.1) rectangle (1.12,2.15); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% store the current scale factor +% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf@xx/1cm)*(\pgf@yy/1cm)-(\pgf@xy/1cm)*(\pgf@yx/1cm)))}% +\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} +\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsquirrel@threeD + \def\squirrel@part@draw[##1]{\shade[ball color=##1]} +\else + \def\squirrel@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname squirrelhookbackground\endcsname +\csname tikzlinghookbackground\endcsname +% +% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@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]; +% +% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsquirrel@back\else + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] + (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; +\fi +% +% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsquirrel@back\else + \squirrel@part@draw[\squirrel@body!85!white] (0.35,0.5) .. controls (0.35,0.22) and (-0.35,0.22) .. (-0.35,0.5) .. controls (-0.35,0.7) and (-0.17,1.2) .. (0,1.2) .. controls (0.17,1.2) and (0.35,0.7) .. (0.35,0.5) -- cycle; +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname squirrelhookbelly\endcsname +\csname tikzlinghookbelly\endcsname +% +% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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]; +% +\ifsquirrel@back + % Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \squirrel@part@draw[\squirrel@body!70!brown!50!darkgray] + (0.9795, 1.089) .. controls (0.9795, 1.089) and (1.0684, 1.2135) .. (1.0837, 1.2877) .. controls (1.1483, 1.6164) and (0.7470, 1.8317) .. (0.5217, 1.7097) .. controls (0.3005, 1.5585) and (0.3397, 1.2578) .. (0.3951, 1.0501) .. controls (0.4419, 0.9023) and (0.5439, 0.6908) .. (0.4287, 0.5889) .. controls (0.3845, 0.5503) and (0.2295, 0.4255) .. (0.0123, 0.3869) .. controls (0.3032, 0.1931) and (1.0822, 0.6445) .. (0.8789, 1.0501) .. controls (0.8607, 1.114) and (0.8154, 1.1881) .. (0.8716, 1.2309) .. controls (0.9325, 1.2193) and (0.9536, 1.1463) .. (0.9795, 1.089) -- cycle; +\else +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@part@draw[\squirrel@body!70!brown!60!black] (0,1.66) ellipse[x radius=0.06, y radius=0.03]; +% +% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@part@draw[white] (0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; +\squirrel@part@draw[white] (-0.07,1.78) ellipse[x radius=0.05, y radius=0.07]; +\squirrel@part@draw[black] (0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; +\squirrel@part@draw[black] (-0.07,1.76) ellipse[x radius=0.017, y radius=0.027]; +% +% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fill[white] (-0.025,1.567) rectangle ++(0.02,0.03); +\fill[white] (0.025,1.567) rectangle ++(-0.02,0.03); +\draw[\squirrel@body!70!brown!60!black,line width=\scalingfactor*0.4pt] (-0.15,1.61) .. controls (-0.15,1.61) and (-0.15,1.52) .. (0.0,1.61) .. controls (0.15,1.52) and (0.15,1.61) .. (0.15,1.61); +% +% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\squirrel@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]; +% +\fi +% +% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\csname squirrelhookbody\endcsname +\csname tikzlinghookbody\endcsname +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty index 5a4499a590e..1ae5e70edb1 100644 --- a/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty @@ -1,8 +1,8 @@ % !TeX root = ./examples/tikzlings.tex %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% The tikzlings -% A collection of packages to draw animals in tikz +% This is the main part of the TikZlings package +% A package to bring cute little animals and other beings into tikz % Maintained by samcarter % % Project repository and bug tracker: @@ -11,12 +11,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 0.2 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzlings} - [2019/04/07 v0.2 Collection of packages to draw animals and other beings in TikZ] +\ProvidesPackage{tikzlings}[2020/04/22 version v0.3 Collection of packages to draw animals and other beings in TikZ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -39,6 +35,9 @@ \RequirePackage{tikzlings-hippos} \RequirePackage{tikzlings-rhinos} \RequirePackage{tikzlings-pandas} +\RequirePackage{tikzlings-bees} +\RequirePackage{tikzlings-anteaters} +\RequirePackage{tikzlings-squirrels} \RequirePackage{tikzlings-addons} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -59,9 +58,9 @@ \pgfmathsetseed{\number\pdfrandomseed} \fi -\pgfmathdeclarerandomlist{tikzlings}{{\bear}{\penguin}{\marmot}{\owl}{\koala}{\coati}{\snowman}{\mouse}{\moles}{\sloth}{\pig}{\cat}{\hippo}{\rhino}} +\pgfmathdeclarerandomlist{tikzlings}{{\bear}{\penguin}{\marmot}{\owl}{\koala}{\coati}{\snowman}{\mouse}{\moles}{\sloth}{\pig}{\cat}{\hippo}{\rhino}{\bee}{\anteater}} \newcommand{\tikzling}[1][]{% - \pgfmathrandomitem{\tikzling@random}{tikzlings}% - \tikzling@random[#1] + \pgfmathrandomitem{\tikzling@random}{tikzlings}% + \tikzling@random[#1] } |