diff options
author | Karl Berry <karl@freefriends.org> | 2018-11-09 21:54:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-11-09 21:54:05 +0000 |
commit | 05a427a48fbea0f9183ca423dd19d4cbd5feb7a2 (patch) | |
tree | 0b736e6408d4684ab23ed146ad387fd7706a43cc /Master/texmf-dist/tex/latex | |
parent | dd7f41a8a44bf912af9c15f9719f9dadc6339617 (diff) |
tikzlings (9nov18)
git-svn-id: svn://tug.org/texlive/trunk@49113 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
12 files changed, 2267 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty new file mode 100644 index 00000000000..649b2dc3841 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-addons.sty @@ -0,0 +1,773 @@ +% !TeX root = ./testing/test.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-addons package (part of the tikzlings collection) +% A package to draw litlle things with 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-addons} + [2018/11/09 v0.1 Draw additional items for the tikzlings] + +\RequirePackage{tikz} +\usetikzlibrary{patterns} % for the wizard hat + +\newcommand*{\thing}[1][]{% + \begin{scope}% + \tikzset{/thing/.cd,#1}% + \thing@draw% + \end{scope}% +} + +% Hats %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifthing@hat +\newif\ifthing@tophat +\newif\ifthing@beret +\newif\ifthing@strawhat +\newif\ifthing@harlequin +\newif\ifthing@witch +\newif\ifthing@magichat +\newif\ifthing@crown +\newif\ifthing@queencrown +\newif\ifthing@kingcrown +\newif\ifthing@santa +\newif\ifthing@chef +\newif\ifthing@graduate +\newif\ifthing@alien +% Communication %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifthing@book +\newif\ifthing@signpost +\newif\ifthing@speech +\newif\ifthing@think +% Food %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifthing@pizza +\newif\ifthing@davidlikespineapplepizza +\newif\ifthing@cheese +\newif\ifthing@baguette +\newif\ifthing@cake +\newif\ifthing@icecream +\newif\ifthing@milkshake +\newif\ifthing@wine +% Sport %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifthing@cricket +\newif\ifthing@hockey +\newif\ifthing@football +% Other %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifthing@crystalball +\newif\ifthing@magicwand +\newif\ifthing@rollingpin +\newif\ifthing@lightsaber +\newif\ifthing@torch +\newif\ifthing@basket +\newif\ifthing@easter +\newif\ifthing@crozier +\newif\ifthing@shovel +\newif\ifthing@pickaxe + +\tikzset{% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % General + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /thing/.search also={% + /tikz,/pgf, + /bear,/coati,/koala,/marmot,/mouse,/owl,/penguin,/snowman,/mole,/sloth, + }, + %/thing/.unknown/.code=\relax, % bad idea, prevents tikz/pgf keys + /thing/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Hats + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + hat/.code = \thing@hattrue + \def\thing@hat{#1}, + hat/.default = blue!40!black, + tophat/.code = \thing@tophattrue + \def\thing@tophat{#1}, + top hat/.forward to = /thing/tophat, + tophat/.default = black!90!white, + beret/.code = \thing@berettrue + \def\thing@beret{#1}, + beret/.default = black, + strawhat/.code = \thing@strawhattrue + \def\thing@strawhat{#1}, + straw hat/.forward to = /thing/strawhat, + strawhat/.default = gray!30!white, + ribbon/.code = \def\thing@ribbon{#1}, + ribbon = black, + harlequin/.code = \thing@harlequintrue + \def\thing@harlequin{#1}, + harlequin/.default = blue, + niuqelrah/.code = \def\thing@niuqelrah{#1}, + niuqelrah = red, + witch/.code = \thing@witchtrue + \def\thing@witch{#1}, + witch/.default = black, + magichat/.code = \thing@magichattrue + \def\thing@magichat{#1}, + magic hat/.forward to = /thing/magichat, + magichat/.default = violet, + magicstars/.code = \def\thing@magicstars{#1}, + magic stars/.forward to = /thing/magicstars, + magicstars = yellow!80!brown, + crown/.code = \thing@crowntrue + \def\thing@crown{#1}, + crown/.default = yellow!90!orange, + queencrown/.code = \thing@queencrowntrue + \def\thing@queencrown{#1}, + queen crown/.forward to = /thing/queencrown, + queencrown/.default = yellow, + kingcrown/.code = \thing@kingcrowntrue + \def\thing@kingcrown{#1}, + king crown/.forward to = /thing/kingcrown, + kingcrown/.default = gray, + santa/.code = \thing@santatrue + \def\thing@santa{#1}, + santa/.default = red!80!black, + chef/.code = \thing@cheftrue + \def\thing@chef{#1}, + chef/.default = gray!20!white, + graduate/.code = \thing@graduatetrue + \def\thing@graduate{#1}, + graduate/.default = black, + tassel/.code = \def\thing@tassel{#1}, + tassel = red, + alien/.code = \thing@alientrue + \def\thing@alien{#1}, + alien/.default = green, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Communication + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + book/.code = \thing@booktrue + \def\thing@book{#1}, + bookcolour/.code = \def\thing@bookcolour{#1}, + book colour/.forward to = /thing/bookcolour, + book color/.forward to = /thing/bookcolour, + bookcolor/.forward to = /thing/bookcolour, + bookcolour = brown, + signpost/.code = \thing@signposttrue + \def\thing@signpost{#1}, + sign post/.forward to = /thing/signpost, + signcolour/.code = \def\thing@signcolour{#1}, + sign colour/.forward to = /thing/signcolour, + sign color/.forward to = /thing/signcolour, + signcolor/.forward to = /thing/signcolour, + signcolour = brown!50!black, + signback/.code = \def\thing@signback{#1}, + sign back/.forward to = /thing/signback, + signback = green!40!black, + speech/.code = \thing@speechtrue + \def\thing@speech{#1}, + think/.code = \thing@thinktrue + \def\thing@think{#1}, + bubblecolour/.code = \def\thing@bubblecolour{#1}, + bubble colour/.forward to = /thing/bubblecolour, + bubble color/.forward to = /thing/bubblecolour, + bubblecolor/.forward to = /thing/bubblecolour, + bubblecolour = gray!30!white, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Food + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + pizza/.code = \thing@pizzatrue, + davidlikespineapplepizza/.code = \thing@davidlikespineapplepizzatrue + \thing@speechtrue + \def\thing@speech{\scalebox{\yscalefactor}{\scalebox{0.9}{\tiny ih, che schifo!}}}, + david likes pineapple pizza/.forward to = /thing/davidlikespineapplepizza, + cheese/.code = \thing@cheesetrue + \def\thing@cheese{#1}, + cheese/.default = yellow!30!orange!60!white, + baguette/.code = \thing@baguettetrue + \def\thing@baguette{#1}, + baguette/.default = brown, + cake/.code = \thing@caketrue + \def\thing@cake{#1}, + cake/.default = violet, + icecream/.code = \thing@icecreamtrue + \def\thing@cone{#1}, + ice cream/.forward to = /thing/icecream, + icecream/.default = brown!60!gray, + flavoura/.code = \def\thing@flavoura{#1}, + flavour a/.forward to = /thing/flavoura, + flavoura = brown!50!black, + flavourb/.code = \def\thing@flavourb{#1}, + flavour b/.forward to = /thing/flavourb, + flavourb = white!70!brown, + flavourc/.code = \def\thing@flavourc{#1}, + flavour c/.forward to = /thing/flavourc, + flavourc = red!50!white, + milkshake/.code = \thing@milkshaketrue + \def\thing@milkshake{#1}, + milkshake/.default = red!20!white, + wine/.code = \thing@winetrue + \def\thing@wine{#1}, + wine/.default = red!70!black, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Sport + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + cricket/.code = \thing@crickettrue + \def\thing@cricket{#1}, + cricket/.default = brown, + hockey/.code = \thing@hockeytrue + \def\thing@hockey{#1}, + hockey/.default = brown, + football/.code = \thing@footballtrue + \def\thing@football{#1}, + football/.default = white, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % other items + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + crystalball/.code = \thing@crystalballtrue + \def\thing@crystalball{#1}, + crystal ball/.forward to = /thing/crystalball, + crystalball/.default = cyan, + magicwand/.code = \thing@magicwandtrue, + magic want/.forward to = /thing/magicwand, + rollingpin/.code = \thing@rollingpintrue + \def\thing@rollingpin{#1}, + rolling pin/.forward to = /thing/rollingpin, + rollingpin/.default = brown, + lightsaber/.code = \thing@lightsabertrue + \def\thing@lightsaber{#1}, + light saber/.forward to = /thing/lightsaber, + lightsaber/.default = green, + torch/.code = \thing@torchtrue + \def\thing@torch{#1}, + torch/.default = gray, + basket/.code = \thing@baskettrue + \def\thing@basket{#1}, + basket/.default = brown!70!gray, + easter/.code = \thing@eastertrue + \thing@baskettrue + \def\thing@basket{#1}, + easter/.default = brown!70!gray, + egga/.code = \def\thing@egga{#1}, + egg a/.forward to = /thing/egga, + egga = blue, + eggb/.code = \def\thing@eggb{#1}, + egg b/.forward to = /thing/eggb, + eggb = green, + eggc/.code = \def\thing@eggc{#1}, + egg c/.forward to = /thing/eggc, + eggc = red, + crozier/.code = \thing@croziertrue + \def\thing@crozier{#1}, + crozier/.default = brown, + shovel/.code = \thing@shoveltrue + \def\thing@shovel{#1}, + shovel/.default = gray, + pickaxe/.code = \thing@pickaxetrue + \def\thing@pickaxe{#1}, + pickaxe/.default = gray, +} + +\def\thing@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% store the current scale factor +% from https://tex.stackexchange.com/a/86900/36296 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pgfgettransformentries{\myxscale}{\@tempa}{\@tempa}{\myyscale}{\@tempa}{\@tempa} +\gdef\yscalefactor{\myyscale} +\gdef\xscalefactor{\myxscale} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Hats +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +\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,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); +\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); + \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.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.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.1,2.2) rectangle (0.78,2.3); + \fill[\thing@strawhat,rotate=-15] (0.44,2.3) ellipse (0.34 and 0.08); + \end{scope} +\fi +% +% Harlequin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@harlequin + \begin{scope}[xshift=-26] + \path (0.19,1.85) rectangle (1.85,2.67); + \begin{pgfinterruptboundingbox} + \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); + \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.05,2.2)--(0.45,3.2)--(0.82,2.2); + \end{scope} +\fi +% +% magic hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@magichat + \begin{scope}[xshift=-26] + \path[preaction={fill, \thing@magichat!100},rotate=-5, + pattern=fivepointed stars, pattern color=\thing@magicstars!100] + (0.36,1.95)--(0.86,2.95)--(1.20,1.85); + \end{scope} +\fi +% +% crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@crown + \fill[\thing@crown] (-0.1885,2.0616) .. controls (-0.1885,2.0616) and (-0.1479,2.1763) .. (-0.2291,2.465) -- (-0.0355,2.2378) -- (0.1141,2.3943) -- (0.201,2.1961) -- (0.4688,2.3318) .. controls (0.2677,2.1132) and (0.2944,1.9764) .. (0.2944, 1.9764) .. controls (0.1524,1.9202) and (-0.0743,1.9601) .. (-0.1885,2.0616) -- cycle; +\fi +% +% Queen crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@queencrown + \begin{scope}[xshift=-26] + \fill[\thing@queencrown] (0.7370,2.0732) .. controls (0.6966,2.2091) and (0.6769,2.3503) .. + (0.6354,2.4859) .. controls (0.6149,2.5164) and (0.5958,2.5732) .. + (0.6498,2.5808) .. controls (0.6973,2.5907) and (0.7091,2.5350) .. + (0.6926,2.5016) .. controls (0.6967,2.4544) and (0.7188,2.4109) .. + (0.7340,2.3665) .. controls (0.7415,2.3472) and (0.7619,2.2862) .. + (0.7676,2.3381) .. controls (0.7755,2.3852) and (0.7871,2.4329) .. + (0.7833,2.4808) .. controls (0.7597,2.5148) and (0.7834,2.5720) .. + (0.8294,2.5570) .. controls (0.8775,2.5457) and (0.8536,2.4937) .. + (0.8436,2.4638) .. controls (0.8502,2.3973) and (0.8640,2.3313) .. + (0.8798,2.2664) .. controls (0.9047,2.2750) and (0.9168,2.3261) .. + (0.9342,2.3514) .. controls (0.9492,2.3853) and (0.9714,2.4171) .. + (0.9773,2.4540) .. controls (0.9645,2.4873) and (0.9766,2.5358) .. + (1.0204,2.5303) .. controls (1.0646,2.5298) and (1.0691,2.4725) .. + (1.0443,2.4460) .. controls (1.0440,2.3935) and (1.0580,2.3419) .. + (1.0671,2.2905) .. controls (1.0706,2.2719) and (1.0788,2.2126) .. + (1.0985,2.2554) .. controls (1.1269,2.3087) and (1.1558,2.3623) .. + (1.1772,2.4187) .. controls (1.1697,2.4515) and (1.1716,2.5081) .. + (1.2210,2.5018) .. controls (1.2706,2.4969) and (1.2686,2.4403) .. + (1.2406,2.4126) .. controls (1.2279,2.3600) and (1.2211,2.3057) .. + (1.2172,2.2518) .. controls (1.2296,2.2439) and (1.2538,2.2943) .. + (1.2693,2.3112) .. controls (1.2908,2.3467) and (1.3228,2.3784) .. + (1.3316,2.4200) .. controls (1.3203,2.4624) and (1.3708,2.5014) .. + (1.4051,2.4678) .. controls (1.4448,2.4342) and (1.3945,2.3994) .. + (1.3765,2.3710) .. controls (1.3022,2.2536) and (1.2440,2.1265) .. + (1.1686,2.0097) .. controls (0.9649,1.9465) and (0.8367,1.9955) .. + (0.7370,2.0732) -- cycle; + \end{scope} +\fi +% +% King crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@kingcrown + \begin{scope}[xshift=-26] + \fill[\thing@kingcrown] (0.6572,2.0396) .. controls (0.6637,2.0838) and (0.6716,2.1289) .. + (0.6684,2.1735) .. controls (0.6481,2.2496) and (0.5923,2.3131) .. + (0.5818,2.3921) .. controls (0.5738,2.4607) and (0.6167,2.5343) .. + (0.6862,2.5502) .. controls (0.7548,2.5703) and (0.8210,2.5304) .. + (0.8720,2.4881) .. controls (0.8984,2.4712) and (0.9239,2.4324) .. + (0.9486,2.4249) .. controls (0.9524,2.4691) and (0.9566,2.5158) .. + (0.9844,2.5527) .. controls (1.0052,2.5845) and (1.0390,2.6282) .. + (1.0820,2.6127) .. controls (1.1212,2.5899) and (1.1378,2.5421) .. + (1.1478,2.5003) .. controls (1.1576,2.4639) and (1.1336,2.4180) .. + (1.1349,2.3906) .. controls (1.2050,2.4269) and (1.2847,2.4629) .. + (1.3654,2.4429) .. controls (1.4292,2.4285) and (1.4864,2.3679) .. + (1.4793,2.2998) .. controls (1.4859,2.2404) and (1.4407,2.1925) .. + (1.4006,2.1551) .. controls (1.3681,2.1232) and (1.3290,2.0951) .. + (1.3072,2.0544) .. controls (1.2904,2.0121) and (1.2805,1.9674) .. + (1.2738,1.9225) .. controls (1.1221,1.8892) and (0.9586,1.8836) .. + (0.8112,1.9386) .. controls (0.7535,1.9608) and (0.6999,1.9945) .. + (0.6572,2.0396) -- cycle; + \end{scope} +\fi +% +% Santa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@santa + \begin{scope}[xshift=-26] + \fill[\thing@santa] + (0.430,1.803) .. controls (0.590,2.174) and (0.837,2.065) .. + (1.118,1.954) .. controls (1.679,1.731) and (1.328,1.193) .. + (1.647,1.057) .. controls (1.638,1.255) and (1.745,2.104) .. + (1.168,2.270) .. controls (0.867,2.356) and (0.536,2.280) .. + (0.430,1.803) -- cycle; + \fill[white!80!brown] + (0.44,1.733) .. controls (0.211,2.299) and (1.082,2.188) .. + (1.456,1.759) .. controls (1.534,1.637) and (1.480,1.545) .. + (1.400,1.566) .. controls (1.265,1.714) and (0.577,2.267) .. + (0.44,1.733) -- cycle; + \fill[white!80!brown] (1.6,1.0) circle (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.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); + \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.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=\yscalefactor*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); + \end{scope} +\fi +% +% alien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@alien + \fill[\thing@alien,rotate around={15:(-0.175,2.115)}] (-0.2,1.93) rectangle (-0.15,2.3); + \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); +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Communication +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% book %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@book + \begin{scope}[xshift=-25,yshift=1] + \fill[\thing@bookcolour,rotate=-20] + (0.40,1.20) rectangle (0.80,0.60); + \node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (0.88,0.70) {\thing@book};% + \end{scope} +\fi +% +% signpost %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@signpost + \begin{scope}[scale=1.7,xshift=-26,yshift=-7] + \fill[\thing@signcolour, rounded corners=\yscalefactor*1, rotate=-20] (0.8,0.75) rectangle (0.9,1.75); + \fill[\thing@signcolour, rounded corners=\yscalefactor*1, rotate=-20] (0.4,1.7) rectangle (1.3,2.4); + \fill[\thing@signback, rounded corners=\yscalefactor*1, rotate=-20] (0.45,1.75) rectangle (1.25,2.35); + \node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (1.5,1.65) {\thing@signpost}; + \end{scope} +\fi +% +% 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.2,1.54) -- (0.2,1.35) -- (0.0,1.6) -- cycle; + \node at (-0.5,1.8) {\thing@speech}; + \end{scope} +\fi +% +% 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); + \node at (2,2.4) {\thing@think}; + \end{scope} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Food +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); + \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); + \end{scope} +\fi +% +% Cheese %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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); +\fi +% +% baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@baguette + \begin{scope}[xshift=-38,yshift=7,rotate=-20] + \fill[\thing@baguette!70!white, rounded corners=\yscalefactor*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); + \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] (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!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); + \end{scope} +\fi +% +% icecream %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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); + \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); + \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); + \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[red!90!black,rotate=20] (1.2,0.58) rectangle (1.22,0.85); + \end{scope} +\fi +% +% 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); + \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); + \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); + \end{scope} + \end{scope} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Sport +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% cricket bat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@cricket + \begin{scope}[xshift=-26] + \fill[\thing@cricket, rounded corners=\yscalefactor*2, rotate=-30] (0.4,1.2) rectangle (0.7,2.2); + \fill[\thing@cricket, rounded corners=\yscalefactor*1, rotate=-30] (0.5,0.8) rectangle (0.6,1.3); + \end{scope} +\fi +% +% Hockey stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@hockey + \begin{scope}[xshift=-22] + \fill[\thing@hockey, rounded corners=\yscalefactor*1, rotate=-30] (0.5,0.6) rectangle (0.6,2.1); + \fill[\thing@hockey, rounded corners=\yscalefactor*3] (0.2,0.2) rectangle (0.85,0.4); + \end{scope} +\fi +% +% football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@football + \begin{scope}[xshift=-26] + \fill[\thing@football] (1.2,0.33) circle (0.32); + \begin{scope} + \clip (1.2,0.33) circle (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} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% other items +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% crystal ball %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@crystalball + \shade[ball color=\thing@crystalball,opacity=0.7] (0,0.8) circle (0.33); +\fi +% +% magic wand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@magicwand + \begin{scope}[xshift=-16,yshift=2] + \fill[black,rotate=-30] (0.27,1.23) rectangle (0.37,0.65); + \fill[white,rotate=-30] (0.27,1.13) rectangle (0.37,1.03); + \end{scope} +\fi +% +% rollingpin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@rollingpin + \begin{scope}[xshift=-30,yshift=2] + \fill[\thing@rollingpin, rounded corners=\yscalefactor*2, rotate=-60] (-0.18,0.85) rectangle (0.08,1.75); + \fill[\thing@rollingpin, rounded corners=\yscalefactor*1, rotate=-60] (-0.1,0.65) rectangle (0.0,1.95); + \end{scope} +\fi +% +% lightsaber %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@lightsaber + \begin{scope}[xshift=-26] + \fill[\thing@lightsaber, rounded corners=\yscalefactor*1, rotate=-30] (0.5,0.9) rectangle (0.6,2.5); + \fill[gray!80!black, rounded corners=\yscalefactor*1, rotate=-30] (0.47,0.7) rectangle (0.63,1.2); + \end{scope} +\fi +% +% torch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@torch + \begin{scope}[xshift=-26] + \fill[red!50!yellow] + (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. + (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. + (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. + (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. + (1.4338,1.025) -- cycle; + \fill[red!25!yellow, scale=0.67, xshift=17, yshift=15] + (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. + (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. + (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. + (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. + (1.4338,1.025) -- cycle;; + \fill[white!50!yellow, scale=0.4, xshift=53.5, yshift=45.3] + (1.4338,1.025) .. controls (1.4308,0.8877) and (1.3468,0.8997) .. + (1.2447,0.748) .. controls (1.1427,0.8982) and (1.0721,0.8892) .. + (1.0646,1.024) .. controls (1.0541,1.1714) and (1.2642,1.1654) .. + (1.2492,1.386) .. controls (1.3093,1.3110) and (1.4383,1.2705) .. + (1.4338,1.025) -- cycle;; + \fill[\thing@torch,rounded corners=\yscalefactor*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); + \end{scope} +\fi% +% +% basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@basket + \begin{scope}[xshift=-28.5] + \fill[\thing@basket, start angle=180, end angle=360, x radius=0.35, y radius=0.35] (0.65,0.61) arc -- cycle; + \fill[\thing@basket, start angle=180, end angle=0, even odd rule] [x radius=0.35, y radius=0.5] (0.65,0.6) arc -- cycle [x radius=0.3, y radius=0.45] (0.7,0.6) arc -- cycle; + \fill[\thing@basket, even odd rule] (1,0.6) ellipse (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); + \end{scope} +\fi% +% +% easter basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@easter + \begin{scope}[xshift=-28.5] + \begin{scope} + \clip [start angle=180, end angle=0, x radius=0.3, y radius=0.45] (0.7,0.6) arc -- cycle [start angle=180, end angle=360, x radius=0.3, y radius=0.07] (0.7,0.6) arc -- cycle; + \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); + \end{scope} + \end{scope} +\fi% +% +% crozier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifthing@crozier + \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); + \end{scope} + \fill[\thing@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0); + \end{scope} +\fi +% +% 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; +\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; +\fi +% +}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty new file mode 100644 index 00000000000..33367c1b045 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-bears.sty @@ -0,0 +1,117 @@ +% !TeX root = ./examples/bear.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-bears package (part of the tikzlings collection) +% A package to bring little teddy bears 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-bears} + [2018/11/09 v0.1 Draw teddy bears in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\bear}[1][]{% + \begin{scope}% + \tikzset{/bear/.cd,#1}% + \bear@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifbear@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /bear/.search also={/tikz,/pgf,/thing}, + /bear/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\bear@body{#1}, + body = brown, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \bear@threeDtrue, +} + +\def\bear@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.8, 0.0) rectangle (0.8, 2.13); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifbear@threeD + \def\bear@part@draw[##1]{\shade[ball color=##1]} +\else + \def\bear@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0.925) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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); +% +% 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); +% +% 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); +% +% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\bear@part@draw[\bear@body!70!black] (0, 1.55) circle (0.5); +% +% 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); +% +% 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); +% +% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fill[\bear@body!30!black] (0.145, 1.38) arc [start angle=-20, end angle=-160, radius=0.16] -- (-0.14, 1.38) -- (-0.14, 1.38) arc [start angle=-160, end angle=-20, radius=0.144] -- cycle; +% +}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty new file mode 100644 index 00000000000..e9d2f7898a2 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-coatis.sty @@ -0,0 +1,165 @@ +% !TeX root = ./examples/coati.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-coatis package (part of the tikzlings collection) +% A package to bring little coatis 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-coatis} + [2018/11/09 v0.1 Drawing coatis in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\coati}[1][]{% + \begin{scope}% + \tikzset{/coati/.cd,#1}% + \coati@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifcoati@threeD +\newif\ifcoati@sideward + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /coati/.search also={/tikz,/pgf,/thing}, + /coati/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\coati@body{#1}, + body = brown!50!darkgray!97!yellow, + rotatehead/.code = \def\coati@rotatehead{#1}, + rotate head/.forward to = /coati/rotatehead, + rotatehead = 0, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \coati@threeDtrue, + sideward/.code = \coati@sidewardtrue, +} + +\def\coati@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.84,0.1) rectangle (1.63,2.26); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifcoati@threeD + \def\coati@part@draw[##1]{\shade[ball color=##1]} +\else + \def\coati@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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} +% +% 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); +% +% 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; +% +% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{scope}[rotate around={\coati@rotatehead:(0,1.68)}] +% +% Sidewards head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifcoati@sideward + % + % Left Ear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!45!white!95!orange,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); + % + % 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; + % + % 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; + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!50!black] (-0.605, 1.453) circle (0.09); + % + % 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); + % + % 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); +% +% 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; + % + % 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; + % + % Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \coati@part@draw[\coati@body!50!black] (0, 1.248) circle (0.09); + % + % 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); + % + % 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); + % +\fi +\end{scope} +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty new file mode 100644 index 00000000000..bca27c6d9cb --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-koalas.sty @@ -0,0 +1,161 @@ +% !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) +% 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-koalas} + [2018/11/09 v0.1 Drawing koalas in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} +\usetikzlibrary{shadows.blur} +\usetikzlibrary{fadings} + +\tikzfading[name=koala@blush,inner color=transparent!50,outer color=transparent!100] + +\newcommand*{\koala}[1][]{% + \begin{scope}% + \tikzset{/koala/.cd,#1}% + \koala@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifkoala@blush +\newif\ifkoala@sleeping +\newif\ifkoala@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /koala/.search also={/tikz,/pgf,/thing}, + /koala/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\koala@body{#1}, + body = gray!75!white, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + blush/.code = \koala@blushtrue, + sleeping/.code = \koala@sleepingtrue, + 3D/.code = \koala@threeDtrue, +} + +\def\koala@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.88,0.1) rectangle (0.88, 2.35); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifkoala@threeD + \def\koala@part@draw[##1]{\shade[ball color=##1]} +\else + \def\koala@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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); +% +% 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); +% +% 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; +% +% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\koala@part@draw[\koala@body] (0,1.67) ellipse (0.55 and 0.45); +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\koala@part@draw[\koala@body!40!black] (-0.15, 1.57) to [out=-110,in=180] (0, 1.42) to[out=0,in=-70] (0.15, 1.57) to [out=110,in=-45] (0.075, 1.71) to[out=135,in=45] (-0.075, 1.71) to[out=-135,in=70] cycle; +% +% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifkoala@sleeping + \fill[\koala@body!50!black] (0.2534, 1.675) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={20:(0.2925, 1.6925)}] (0.29, 1.68) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-20:(0.2143, 1.6925)}] (0.2168, 1.68) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={40:(0.3255, 1.7025)}] (0.323, 1.69) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-40:(0.1813, 1.7025)}] (0.1838, 1.69) rectangle ++(0.005, 0.03); + \fill[\koala@body!50!black] (-0.2534, 1.675) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-20:(-0.2925, 1.6925)}] (-0.29, 1.68) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={20:(-0.2143, 1.6925)}] (-0.2168, 1.68) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={-40:(-0.3255, 1.7025)}] (-0.323, 1.69) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black,rotate around={40:(-0.1813, 1.7025)}] (-0.1838, 1.69) rectangle ++(-0.005, 0.03); + \fill[\koala@body!50!black, 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); +\fi +% +% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifkoala@threeD + \fill[black] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16] -- (-0.1, 1.39) -- (-0.1, 1.39) arc [start angle=-130, end angle=-50, radius=0.144] -- cycle; +\else + \fill[\koala@body!40!black] (0.115, 1.39) arc [start angle=-40, end angle=-140, radius=0.16] -- (-0.1, 1.39) -- (-0.1, 1.39) arc [start angle=-130, end angle=-50, radius=0.144] -- cycle; +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% optional +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +\fi +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty new file mode 100644 index 00000000000..49bee258299 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-marmots.sty @@ -0,0 +1,209 @@ +% !TeX root = ./examples/marmot.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-marmots package (part of the tikzlings collection) +% A package to bring little marmots 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-marmots} + [2018/11/09 v0.1 Drawing marmots in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} +\usetikzlibrary{shadows.blur} +\usetikzlibrary{fadings} + +\tikzfading[name=marmot@blush,inner color=transparent!50,outer color=transparent!100] + +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +\ifluatex + \let\pdfrandomseed\randomseed +\fi + +\ifxetex + \pgfmathsetseed{\time} +\else + \pgfmathsetseed{\number\pdfrandomseed} +\fi + +\newcommand*{\marmot}[1][]{% + \begin{scope}% + \tikzset{/marmot/.cd,#1}% + \marmot@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifmarmot@blush +\newif\ifmarmot@whiskers +\newif\ifmarmot@teeth +\newif\ifmarmot@threeD +\newif\ifmarmot@shadow +\newif\ifmarmot@askphil +\newif\ifmarmot@leftstep +\newif\ifmarmot@rightstep + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /marmot/.search also={/tikz,/pgf,/thing}, + /marmot/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\marmot@body{#1}, + body = brown, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + blush/.code = \marmot@blushtrue, + whiskers/.code = \marmot@whiskerstrue + \def\marmot@whiskers{#1}, + whiskers/.default = gray, + teeth/.code = \marmot@teethtrue + \def\marmot@teeth{#1}, + teeth/.default = white, + 3D/.code = \marmot@threeDtrue, + shadow/.code = \marmot@shadowtrue, + askphil/.code = \marmot@askphiltrue, + ask phil/.forward to = /marmot/askphil, + leftstep/.code = \marmot@leftsteptrue, + left step/.forward to = /marmot/leftstep, + rightstep/.code = \marmot@rightsteptrue, + right step/.forward to = /marmot/rightstep, +} + +\def\marmot@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.625,0.1) rectangle (0.905, 2.17); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@threeD + \def\marmot@part@draw[##1]{\shade[ball color=##1]} +\else + \def\marmot@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% shadow +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\ifmarmot@askphil + \pgfmathparse{int(random(1,120))} + \let\marmot@random=\pgfmathresult + \ifnum\marmot@random>17 + \marmot@shadowtrue + \fi +\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); +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@leftstep + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.25) ellipse (0.23 and 0.09); +\else + \marmot@part@draw[\marmot@body!50!black] (-0.255,0.2) ellipse (0.23 and 0.09); +\fi + +\ifmarmot@rightstep + \marmot@part@draw[\marmot@body!50!black] (0.255,0.25) ellipse (0.23 and 0.09); +\else + \marmot@part@draw[\marmot@body!50!black] (0.255,0.2) ellipse (0.23 and 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); +% +% 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; +% +% 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; +% +% 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; +% +% 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); +% +% Muzzle %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\marmot@part@draw[\marmot@body!50!white] (0,1.47) ellipse (0.23 and 0.13); +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\marmot@part@draw[\marmot@body!50!black] (0,1.6) circle (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); +% +% 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 ; +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% optional +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +\fi +% +% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@whiskers + \foreach \X in {10,20,33}{% + \fill[\marmot@whiskers] (0,1.6) + (\X:0.08) to[out=\X,in={180-\X}] ++({\X-20}:0.3) --++(0,0.005) to[out={180-\X},in=\X] cycle (0,1.6) + ({180-\X}:0.08) to[out={180-\X},in=\X] ++({200-\X}:0.3) --++(0,0.005) to[out=\X,in={180-\X}] cycle; + } +\fi +% +% Teeth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmarmot@teeth + \fill[\marmot@body!50!black] (0.048,1.413) rectangle (-0.048,1.373); + \fill[\marmot@teeth] (-0.045,1.407) rectangle (-0.004,1.376); + \fill[\marmot@teeth] (0.045,1.407) rectangle (0.004,1.376); +\fi +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty new file mode 100644 index 00000000000..60fc08220a0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-mice.sty @@ -0,0 +1,124 @@ +% !TeX root = ./examples/mouse.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-mice package (part of the tikzlings collection) +% A package to bring little mice 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-mice} + [2018/11/09 v0.1 Drawing mice in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\mouse}[1][]{% + \begin{scope}% + \tikzset{/mouse/.cd,#1}% + \mouse@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifmouse@threeD +\newif\ifmouse@rotatearms + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /mouse/.search also={/tikz,/pgf,/thing}, + /mouse/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\mouse@body{#1}, + body = gray!90!white, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \mouse@threeDtrue, + rotatearms/.code = \mouse@rotatearmstrue + \def\mouse@rotatearms{#1}, + rotate arms/.forward to = /mouse/rotatearms, + rotatearms = 20, +} + +\def\mouse@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.625,0.1) rectangle (0.905, 2.17); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmouse@threeD + \def\mouse@part@draw[##1]{\shade[ball color=##1]} +\else + \def\mouse@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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); +% +% 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; +% +% 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; +% +% 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; +% +% 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); +% +% Wiskers %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\foreach \X in {10,20,33}{% + \fill[\mouse@body!50!black] (0,1.2) + (\X:0.08) to[out=\X,in={180-\X}] ++({\X-20}:0.3) --++(0,0.01) to[out={180-\X},in=\X] cycle (0,1.2) + ({180-\X}:0.08) to[out={180-\X},in=\X] ++({200-\X}:0.3) --++(0,0.01) to[out=\X,in={180-\X}] cycle; +} +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\mouse@part@draw[\mouse@body!50!black] (0, 1.248) circle (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); +% +} + diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty new file mode 100644 index 00000000000..228385a129b --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-moles.sty @@ -0,0 +1,133 @@ +% !TeX root = ./examples/mole.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-moles package (part of the tikzlings collection) +% A package to bring little moles 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-moles} + [2018/11/09 v0.1 Drawing moles in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\moles}[1][]{% + \begin{scope}% + \tikzset{/mole/.cd,#1}% + \mole@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifmole@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /mole/.search also={/tikz,/pgf,/thing}, + /mole/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\mole@body{#1}, + body = gray, + feet/.code = \def\mole@feet{#1}, + feet = red!20!white!50!brown, + hands/.code = \def\mole@hands{#1}, + hands = red!20!white!50!brown, + muzzle/.code = \def\mole@muzzle{#1}, + muzzle = red!20!white!50!brown, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \mole@threeDtrue, +} + +\def\mole@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.625,0.1) rectangle (0.905, 2.17); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifmole@threeD + \def\mole@part@draw[##1]{\shade[ball color=##1]} +\else + \def\mole@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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; +% +% 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; +% +% 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; +% +% 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; +% +% 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); +% +% 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); +% +% 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); +% +% 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); +\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); +\fi +% +% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fill[\mole@body!60!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 ; +% +}
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty new file mode 100644 index 00000000000..c448b824c5a --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-owls.sty @@ -0,0 +1,125 @@ +% !TeX root = ./examples/owl.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-owls package (part of the tikzlings collection) +% A package to draw litlle owls with 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-owls} + [2018/11/09 v0.1 Draw owls in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\owl}[1][]{% + \begin{scope}% + \tikzset{/owl/.cd,#1}% + \owl@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifowl@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /owl/.search also={/tikz,/pgf,/thing}, + /owl/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\owl@body{#1}, + body = brown!70!black, + eye/.code = \def\owl@eye{#1}, + eye = white!90!gray, + pupil/.code = \def\owl@pupil{#1}, + pupil = brown!30!black, + bill/.code = \def\owl@bill{#1}, + bill = orange, + feet/.code = \def\owl@feet{#1}, + feet = orange, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \owl@threeDtrue, +} + +\def\owl@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.73, 0.08) rectangle (0.73, 2.24); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifowl@threeD + \def\owl@part@draw[##1]{\shade[ball color=##1]} +\else + \def\owl@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0.925) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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; +% +% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\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; +% +% head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\owl@part@draw[\owl@body] (0,1.55) ellipse (0.7 and 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); +% +% Bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\owl@part@draw[\owl@bill] (0, 1.4) -- (-0.1, 1.3) -- (0, 1.15) -- (0.1, 1.3) -- cycle; +% +% 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 diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty new file mode 100644 index 00000000000..ce7098621c4 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-penguins.sty @@ -0,0 +1,117 @@ +% !TeX root = ./examples/pingu.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-penguins package (part of the tikzlings collection) +% A package to bring penguins 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-penguins} + [2018/11/09 v0.1 Draw penguins in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\penguin}[1][]{% + \begin{scope}% + \tikzset{/penguin/.cd,#1}% + \penguin@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifpenguin@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /penguin/.search also={/tikz,/pgf,/thing}, + /penguin/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\penguin@body{#1}, + body = black, + belly/.code = \def\penguin@belly{#1}, + belly = white!95!black, + feet/.code = \def\penguin@feet{#1}, + feet = yellow!50!orange, + bill/.code = \def\penguin@bill{#1}, + bill = orange, + eye/.code = \def\penguin@eye{#1}, + eye = white!95!black, + pupil/.code = \def\penguin@pupil{#1}, + pupil = black, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \penguin@threeDtrue, +} + +\def\penguin@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.865, 0.15) rectangle (0.865, 2.13); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifpenguin@threeD + \def\penguin@part@draw[##1]{\shade[ball color=##1]} +\else + \def\penguin@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0.925) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +% 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); +% +% 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; +% +% 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); +% +% 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 diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty new file mode 100644 index 00000000000..fd19630bdbd --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-sloths.sty @@ -0,0 +1,160 @@ +% !TeX root = ./examples/sloth.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-sloths package (part of the tikzlings collection) +% A package to bring little sloths 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-sloths} + [2018/11/09 v0.1 Drawing sloths in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\definecolor{slothcol}{RGB}{168,156,123} + +\newcommand*{\sloth}[1][]{% + \begin{scope}% + \tikzset{/sloth/.cd,#1}% + \sloth@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifsloth@sleeping +\newif\ifsloth@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /sloth/.search also={/tikz,/pgf,/thing}, + /sloth/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\sloth@body{#1}, + body = slothcol, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + sleeping/.code = \sloth@sleepingtrue, + 3D/.code = \sloth@threeDtrue, +} + +\def\sloth@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.7,0.12) rectangle (0.7, 2.27); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsloth@threeD + \def\sloth@part@draw[##1]{\shade[ball color=##1]} +\else + \def\sloth@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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; +% +% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\sloth@part@draw[\sloth@body] +( 0.50,1.67) .. controls ( 0.50,1.91) and ( 0.27,2.10) .. +( 0.00,2.10) .. controls (-0.27,2.10) and (-0.50,1.91) .. (-0.50,1.67) .. controls (-0.50,1.43) and (-0.33,1.28) .. +( 0.00,1.28) .. controls ( 0.33,1.28) and ( 0.50,1.43) .. +( 0.50,1.67) -- cycle; +\sloth@part@draw[\sloth@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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fill[\sloth@body!60!black] (0.3785,1.5336) .. controls (0.3012,1.5864) and (0.1829,1.6693) .. (0.1377,1.7234) .. controls (0.1184,1.7464) and (0.1624,1.8242) .. (0.1906,1.8137) .. controls (0.2673,1.7851) and (0.3597,1.7125) .. (0.3994,1.6531) .. controls (0.4129,1.6328) and (0.3785,1.5336) .. (0.3785,1.5336) -- cycle; +\fill[\sloth@body!60!black] (-0.3785,1.5336) .. controls (-0.3012,1.5864) and (-0.1829,1.6693) .. (-0.1377,1.7234) .. controls (-0.1184,1.7464) and (-0.1624,1.8242) .. (-0.1906,1.8137) .. controls (-0.2673,1.7851) and (-0.3597,1.7125) .. (-0.3994,1.6531) .. controls (-0.4129,1.6328) and (-0.3785,1.5336) .. (-0.3785,1.5336) -- cycle; +% +% 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); +\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); +\fi +% +% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\sloth@part@draw[\sloth@body!40!black] (0,1.665) ellipse (0.078 and 0.048); +% +% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\fill[\sloth@body!40!black] (0.115, 1.54) arc [start angle=-40, end angle=-140, radius=0.16] -- (-0.1, 1.54) -- (-0.1, 1.54) arc [start angle=-130, end angle=-50, radius=0.144] -- cycle; +% +% 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,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); +% +% 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); +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty new file mode 100644 index 00000000000..b1f9cb02fe6 --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings-snowmans.sty @@ -0,0 +1,121 @@ +% !TeX root = ./examples/snowman.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings-snowmans package (part of the tikzlings collection) +% A package to bring snowmans 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings-snowmans} + [2018/11/09 v0.1 Draw snowmans in TikZ] + +\RequirePackage{tikz} +\RequirePackage{tikzlings-addons} + +\newcommand*{\snowman}[1][]{% + \begin{scope}% + \tikzset{/snowman/.cd,#1}% + \snowman@draw% + \end{scope}% + \thing[#1]% +} + +\newif\ifsnowman@threeD + +\tikzset{ + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % Pass unknown keys on to tikz + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + /snowman/.search also={/tikz,/pgf,/thing}, + /snowman/.cd, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % body + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + body/.code = \def\snowman@body{#1}, + body = white!95!black, + eye/.code = \def\snowman@eye{#1}, + eye = black, + nose/.code = \def\snowman@nose{#1}, + nose = orange, + mouth/.code = \def\snowman@mouth{#1}, + mouth = black, + buttons/.code = \def\snowman@buttons{#1}, + buttons = black, + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % + % options + % + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + 3D/.code = \snowman@threeDtrue, +} + +\def\snowman@draw{% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% minimal bounding box size +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\path (-0.75, 0.0) rectangle (0.75, 2.13); +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% switch between 2D and 3D, from +% https://chat.stackexchange.com/transcript/message/45991801#45991801 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifsnowman@threeD + \def\snowman@part@draw[##1]{\shade[ball color=##1]} +\else + \def\snowman@part@draw[##1]{\fill[##1]} +\fi +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Body parts (center: x=0.925) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% 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); +% +} diff --git a/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty new file mode 100644 index 00000000000..a3c302e1ece --- /dev/null +++ b/Master/texmf-dist/tex/latex/tikzlings/tikzlings.sty @@ -0,0 +1,62 @@ +% !TeX root = ./examples/tikzlings.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The tikzlings +% A collection of packages to draw animals in 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 +% +% Version 0.1 +% Nov 9, 2018 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{tikzlings} + [2018/11/09 v0.1 Collection of packages to draw animals and other beings in TikZ] + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% load sub-packages +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{tikz} +\RequirePackage{tikzlings-bears} +\RequirePackage{tikzlings-penguins} +\RequirePackage{tikzlings-marmots} +\RequirePackage{tikzlings-owls} +\RequirePackage{tikzlings-koalas} +\RequirePackage{tikzlings-coatis} +\RequirePackage{tikzlings-snowmans} +\RequirePackage{tikzlings-mice} +\RequirePackage{tikzlings-moles} +\RequirePackage{tikzlings-sloths} +\RequirePackage{tikzlings-addons} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Drawing a random tikzling +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} + +\ifluatex + \let\pdfrandomseed\randomseed +\fi + +\ifxetex + \pgfmathsetseed{\time} +\else + \pgfmathsetseed{\number\pdfrandomseed} +\fi + +\pgfmathdeclarerandomlist{tikzlings}{{\bear}{\penguin}{\marmot}{\owl}{\koala}{\coati}{\snowman}{\mouse}{\moles}{\sloth}} + +\newcommand{\tikzling}[1][]{% + \pgfmathrandomitem{\tikzling@random}{tikzlings}% + \tikzling@random[#1] +} |