From 1f825a1d4a63908fb04cf83a3f531201d2023847 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 7 Apr 2019 21:21:00 +0000 Subject: tikzducks (7apr19) git-svn-id: svn://tug.org/texlive/trunk@50840 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/tex/latex/tikzducks/tikzducks.sty | 204 +++++++++++++++++---- .../tex/latex/tikzducks/tikzlibraryducks.code.tex | 4 +- 2 files changed, 171 insertions(+), 37 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty index f7aa6f85a02..f9a075af08d 100644 --- a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty +++ b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty @@ -11,12 +11,12 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.0 -% Nov 8, 2018 +% Version 1.1 +% April 7, 2019 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ProvidesPackage{tikzducks} - [2018/11/09 v1.0 Draw rubber ducks in TikZ] + [2019/04/07 v1.1 Draw rubber ducks in TikZ] \RequirePackage{tikz} \usetikzlibrary{patterns} % for the wizard hat @@ -64,6 +64,8 @@ \newif\ifduck@tie \newif\ifduck@cape \newif\ifduck@stripes +\newif\ifduck@bowtie +\newif\ifduck@lapel % Headgear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifduck@alien \newif\ifduck@hat @@ -85,6 +87,8 @@ \newif\ifduck@harlequin \newif\ifduck@strawhat \newif\ifduck@helmet +\newif\ifduck@viking +\newif\ifduck@devil % Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifduck@glasses \newif\ifduck@sunglasses @@ -125,6 +129,10 @@ \newif\ifduck@cheese \newif\ifduck@shovel \newif\ifduck@pickaxe +\newif\ifduck@umbrella +\newif\ifduck@umbrellaclosed +\newif\ifduck@handbag +\newif\ifduck@cocktail \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -180,7 +188,14 @@ cape/.default = red, stripes/.code = \duck@stripestrue \def\duck@stripes{#1}, - stripes/.default = \stripes , + stripes/.default = \stripes , + bowtie/.code = \duck@bowtietrue + \def\duck@bowtie{#1}, + bow tie/.forward to = /duck/bowtie, + bowtie/.default = black, + lapel/.code = \duck@lapeltrue + \def\duck@lapel{#1}, + lapel/.default = black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % hair styles @@ -301,6 +316,14 @@ helmet/.code = \duck@helmettrue \def\duck@helmet{#1}, helmet/.default = gray, + devil/.code = \duck@deviltrue + \def\duck@devil{#1}, + devil/.default = red, + viking/.code = \duck@vikingtrue + \def\duck@viking{#1} + \duck@deviltrue + \def\duck@devil{brown!20!white}, + viking/.default = gray, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Accessories @@ -430,7 +453,7 @@ crozier/.default = brown, davidlikespineapplepizza/.code = \duck@davidlikespineapplepizzatrue \duck@speechtrue - \def\duck@speech{\scalebox{\yscalefactor}{\scalebox{0.9}{\tiny ih, che schifo!}}}, + \def\duck@speech{\scalebox{\scalingfactor}{\scalebox{0.9}{\tiny ih, che schifo!}}}, david likes pineapple pizza/.forward to = /duck/davidlikespineapplepizza, wing/.code = \duck@wingtrue \def\duck@wing{#1}, @@ -468,7 +491,18 @@ shovel/.default = gray, pickaxe/.code = \duck@pickaxetrue \def\duck@pickaxe{#1}, - pickaxe/.default = gray, + pickaxe/.default = gray, + umbrella/.code = \duck@umbrellatrue + \def\duck@umbrella{#1}, + umbrella/.default = cyan, + umbrellaclosed/.code = \duck@umbrellaclosedtrue + \def\duck@umbrellaclosed{#1}, + umbrellaclosed/.default = cyan, + umbrella closed/.forward to = /duck/umbrellaclosed, + handbag/.code = \duck@handbagtrue + \def\duck@handbag{#1}, + handbag/.default = red!70!black, + cocktail/.code = \duck@cocktailtrue, } \def\duck@draw{ @@ -502,12 +536,13 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % store the current scale factor -% from https://tex.stackexchange.com/a/86900/36296 +% from https://github.com/samcarter/tikzlings/issues/3#issuecomment-461373494 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\pgfgettransformentries{\myxscale}{\@tempa}{\@tempa}{\myyscale}{\@tempa}{\@tempa} -\gdef\yscalefactor{\myyscale} -\gdef\xscalefactor{\myxscale} +\pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}% +\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}% +\pgfmathsetmacro{\xscalefactor}{\tmpscaleA} +\pgfmathsetmacro{\yscalefactor}{\tmpscaleD} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -528,6 +563,11 @@ \ifduck@sheep \fill[\duck@sheep] (0.65,1.95) circle (0.15) (0.5,1.75) circle (0.15) (0.46,1.51) circle (0.15) (0.37,1.) circle (0.15) (0.23,0.8) circle (0.15) (0.2,0.6) circle (0.15) (0.25,0.45) circle (0.15) (0.35,0.30) circle (0.15) (0.55,0.25) circle (0.15) (0.75,0.2) circle (0.15) (0.95,0.16) circle (0.15) (1.15,0.2) circle (0.15) (1.35,0.23) circle (0.15) (1.55,0.3) circle (0.15) (1.75,0.38) circle (0.15) (1.95,0.5) circle (0.15) (2.05,0.65) circle (0.15) (2.1,0.85) circle (0.15) (2.05,1.0) circle (0.15) (2.0,1.15) circle (0.15) (1.85,1.35) circle (0.15) (1.6,1.25) circle (0.15) (1.35,1.25) circle (0.15) (1.3,1.5) circle (0.15) (1.3,1.7) circle (0.15) (1.2,1.9) circle (0.15) (0.85,2.05) circle (0.15) (1.05,2.0) circle (0.15); \fi +% +% devil (back horn) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@devil + \fill[\duck@devil] (0.7723,2.3756) .. controls (0.6369,2.1184) and (0.7916,2.0228) .. (0.8360,1.9897) .. controls (0.8744,1.9675) and (0.8774,1.9511) .. (0.8853,1.9173) .. controls (0.8853,1.8595) and (0.8407,1.8127) .. (0.7856,1.8127) .. controls (0.7535,1.8178) and (0.7240,1.8231) .. (0.6965,1.8545) .. controls (0.6965,1.8545) and (0.4451,2.2259) .. (0.7723,2.3756) -- cycle; +\fi % %\end{pgfonlayer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -620,6 +660,16 @@ \end{pgfinterruptboundingbox} \fi % +% bowtie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@bowtie + \fill[\duck@bowtie] (0.4382, 1.1105) .. controls (0.3984, 1.0671) and (0.3911, 0.9535) .. (0.4116, 0.9176) .. controls (0.4958, 0.9064) and (0.565, 0.9487) .. (0.565, 0.9487) -- (0.6448, 0.9398) .. controls (0.6448, 0.9398) and (0.6777, 0.8844) .. (0.804, 0.8689) .. controls (0.8323, 0.9056) and (0.8422, 1.0026) .. (0.8284, 1.0551) .. controls (0.7881, 1.0942) and (0.6537, 1.0285) .. (0.6537, 1.0285) -- (0.5739, 1.0374) .. controls (0.5739, 1.0374) and (0.5436, 1.0956) .. (0.4382, 1.1105) -- cycle; +\fi +% +% lapel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@lapel + \fill[\duck@lapel] (0.490,1.145) .. controls (0.3984,1.13) and (0.3515,1.08) .. (0.3515,1.08) -- (0.4265,1.0192) -- (0.35,0.98) -- (0.513,0.700) -- (1.0089,0.9162) -- (0.9547,0.9868) -- (1.1194,0.9782) -- (1.0822,1.135) .. controls (0.9616,1.1) and (0.8648,1.0300) .. (0.513,0.700) -- cycle; +\fi +% % stripes for football jersey %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@stripes \duck@stripes @@ -641,7 +691,7 @@ \ifduck@neckerchief \fill[\duck@neckerchief] (0.3650,1.0892) .. controls (0.4127,1.1589) and (0.4900,1.1450) .. (0.4900,1.1450) .. controls (0.6500,0.9300) and (1.1366,1.2400) .. (1.3675,1.2649) .. controls (1.4131,1.2533) and (1.4052,1.2446) .. (1.4099,1.2124) .. controls (1.3028,1.0810) and (0.7415,0.8930) .. (0.6807,0.9076) .. controls (0.8257,0.7387) and (0.6347,0.7168) .. (0.7151,0.4426) .. controls (0.6059,0.5672) and (0.5513,0.6588) .. (0.5938,0.8388) .. controls (0.5871,0.6953) and (0.4493,0.7565) .. (0.4716,0.4967) .. controls (0.3682,0.6697) and (0.3820,0.7984) .. (0.5321,0.9351) .. controls (0.4635,0.9699) and (0.4115,1.0215) .. (0.3650,1.0892) -- cycle; - \fill[\duck@woggle, rounded corners=\yscalefactor*1, rotate=-10] (0.33,1.05) rectangle (0.55,0.98); + \fill[\duck@woggle, rounded corners=\scalingfactor*1, rotate=-10] (0.33,1.05) rectangle (0.55,0.98); \fi % % buttons (same argument as for the necklace) @@ -723,8 +773,8 @@ \ifdefined\duck@hair\let\duck@eyebrow=\duck@hair\fi \fi% \ifduck@eyebrow - \fill[\duck@eyebrow, rounded corners=\yscalefactor*1, rotate=60] (1.92,0.21) rectangle (1.98,-0.01); - \fill[\duck@eyebrow, rounded corners=\yscalefactor*1, rotate=100] (1.67,-0.77) rectangle (1.73,-0.95); + \fill[\duck@eyebrow, rounded corners=\scalingfactor*1, rotate=60] (1.92,0.21) rectangle (1.98,-0.01); + \fill[\duck@eyebrow, rounded corners=\scalingfactor*1, rotate=100] (1.67,-0.77) rectangle (1.73,-0.95); \fi % % beard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -755,9 +805,15 @@ % % hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@hat - \fill[\duck@hat,rotate=-15] (0.44,2.1) ellipse (0.6 and 0.1); - \fill[\duck@hat,rotate=-15] (0.07,2.1) rectangle (0.81,2.4); - \fill[\duck@hat,rotate=-15] (0.44,2.4) ellipse (0.37 and 0.08); + \ifdefined\duck@hair % with hair + \fill[\duck@hat,rotate=-15] (0.44,2.1) ellipse (0.7 and 0.1); + \fill[\duck@hat,rotate=-15] (0.0,2.1) rectangle (0.88,2.4); + \fill[\duck@hat,rotate=-15] (0.44,2.4) ellipse (0.44 and 0.08); + \else % without hair + \fill[\duck@hat,rotate=-15] (0.44,2.1) ellipse (0.6 and 0.1); + \fill[\duck@hat,rotate=-15] (0.07,2.1) rectangle (0.81,2.4); + \fill[\duck@hat,rotate=-15] (0.44,2.4) ellipse (0.37 and 0.08); + \fi \fi % % cap %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -797,7 +853,7 @@ \fill[\duck@graduate,rotate=-15] (0.44,2.1) ellipse (0.37 and 0.1); \fill[\duck@graduate,rotate=-15] (0.07,2.1) rectangle (0.81,2.3); \fill[\duck@graduate] (0.3,2.25) -- (1.05,2.35) -- (1.7,1.95) -- (0.92,1.85) -- cycle; - \fill[\duck@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[\duck@tassel,rounded corners=\scalingfactor*1] (1.12,1.89) -- (1.01,2.1) -- (1.09,2.11) -- (1.2,1.9) -- (1.2,1.3) -- (1.12,1.3) -- cycle; \fill[\duck@tassel] (1.16,1.3) ellipse (0.06 and 0.12); \fi % @@ -912,6 +968,18 @@ \fill[\duck@helmet!50!white] (0.502,1.845) circle (0.015) (0.586,1.835) circle (0.015) (0.684,1.822) circle (0.015) (0.791,1.799) circle (0.015) (0.899,1.770) circle (0.015) (1.003,1.741) circle (0.015) (1.099,1.706) circle (0.015) (1.185,1.673) circle (0.015) (1.276,1.629) circle (0.015) (1.360,1.581) circle (0.015) (0.676,1.606) circle (0.015) (0.695,1.666) circle (0.015) (0.714,1.729) circle (0.015) (0.784,1.889) circle (0.015) (0.835,1.968) circle (0.015) (0.896,2.034) circle (0.015) (0.957,2.081) circle (0.015) (1.020,2.115) circle (0.015) (1.422,1.535) circle (0.015) (0.502,1.845) circle (0.015); \fi % +% Viking %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@viking + \fill[\duck@viking] (1.4331,1.5155) .. controls (1.4365,1.7226) and (1.3866,2.0493) .. (1.0429,2.1279) .. controls (0.7050,2.2052) and (0.4794,1.9294) .. (0.4481,1.8183) .. controls (0.6062,1.8381) and (1.1506,1.7480) .. (1.4331,1.5155) -- cycle; + \fill[\duck@viking!70!black] (1.0282,2.1360) .. controls (0.9395,2.1312) and (0.8696,2.0652) .. (0.8152,2.0010) .. controls (0.7824,1.9609) and (0.7546,1.9169) .. (0.7309,1.8709) .. controls (0.6510,1.8859) and (0.5703,1.8971) .. (0.4892,1.9024) .. controls (0.4595,1.8831) and (0.4114,1.7962) .. (0.4743,1.7961) .. controls (0.5446,1.7868) and (0.6149,1.7767) .. (0.6845,1.7629) .. controls (0.6845,1.7629) and (0.6845,1.7629) .. (0.7590,1.7471) .. controls (0.9991,1.6922) and (1.2114,1.6182) .. (1.4111,1.4722) .. controls (1.4369,1.4960) and (1.4536,1.5229) .. (1.4475,1.5553) .. controls (1.4417,1.5927) and (1.4030,1.6066) .. (1.3766,1.6276) .. controls (1.2054,1.7408) and (1.0085,1.8089) .. (0.8095,1.8546) .. controls (0.8733,1.9674) and (0.9684,2.0703) .. (1.0932,2.1138) .. controls (1.0751,2.1288) and (1.0515,2.1362) .. (1.0282,2.1360) -- cycle; + \fill[\duck@viking!50!white] (0.502,1.845) circle (0.015) (0.586,1.835) circle (0.015) (0.684,1.822) circle (0.015) (0.791,1.799) circle (0.015) (0.899,1.770) circle (0.015) (1.003,1.741) circle (0.015) (1.099,1.706) circle (0.015) (1.185,1.673) circle (0.015) (1.276,1.629) circle (0.015) (1.360,1.581) circle (0.015) (0.784,1.889) circle (0.015) (0.835,1.968) circle (0.015) (0.896,2.034) circle (0.015) (0.957,2.081) circle (0.015) (1.020,2.115) circle (0.015) (1.422,1.535) circle (0.015); +\fi +% +% devil (front horn) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@devil + \fill[\duck@devil] (1.2185,2.3521) .. controls (1.3540,2.0950) and (1.1993,1.9994) .. (1.1548,1.9663) .. controls (1.1165,1.9441) and (1.1134,1.9277) .. (1.1056,1.8938) .. controls (1.1056,1.8361) and (1.1502,1.7893) .. (1.2052,1.7893) .. controls (1.2373,1.7944) and (1.2669,1.7996) .. (1.2944,1.8311) .. controls (1.2944,1.8311) and (1.5458,2.2025) .. (1.2185,2.3521) -- cycle; +\fi +% %\end{pgfonlayer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -939,8 +1007,8 @@ \ifduck@squareglasses \fill[\duck@squareglasses,rotate=-17] (0.43,1.8) rectangle (0.8,1.84); \fill[\duck@squareglasses,rotate=-17] (0.12,1.8) rectangle (0.22,1.84); - \fill[\duck@squareglasses,rotate=-20,rounded corners=\yscalefactor*2,even odd rule] (-0.16,1.62) -- (-0.18,1.85) -- (0.05,1.87) -- (0.04,1.62) -- cycle [rounded corners=\yscalefactor*1.5] (-0.14,1.64) -- (-0.16,1.83) -- (0.03,1.85) -- (0.02,1.64) -- cycle; - \fill[\duck@squareglasses,rotate=-20,rounded corners=\yscalefactor*2,even odd rule] (0.12,1.63) -- (0.10,1.88) -- (0.36,1.90) -- (0.35,1.65) -- cycle [rounded corners=\yscalefactor*1.5] (0.14,1.65) -- (0.12,1.86) -- (0.34,1.88) -- (0.33,1.67) -- cycle; + \fill[\duck@squareglasses,rotate=-20,rounded corners=\scalingfactor*2,even odd rule] (-0.16,1.62) -- (-0.18,1.85) -- (0.05,1.87) -- (0.04,1.62) -- cycle [rounded corners=\scalingfactor*1.5] (-0.14,1.64) -- (-0.16,1.83) -- (0.03,1.85) -- (0.02,1.64) -- cycle; + \fill[\duck@squareglasses,rotate=-20,rounded corners=\scalingfactor*2,even odd rule] (0.12,1.63) -- (0.10,1.88) -- (0.36,1.90) -- (0.35,1.65) -- cycle [rounded corners=\scalingfactor*1.5] (0.14,1.65) -- (0.12,1.86) -- (0.34,1.88) -- (0.33,1.67) -- cycle; \fi % % icecream %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -960,9 +1028,9 @@ % % signpost %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@signpost - \fill[\duck@signcolour, rounded corners=\yscalefactor*1, rotate=-20] (0.8,0.75) rectangle (0.9,1.75); - \fill[\duck@signcolour, rounded corners=\yscalefactor*1, rotate=-20] (0.4,1.7) rectangle (1.3,2.4); - \fill[\duck@signback, rounded corners=\yscalefactor*1, rotate=-20] (0.45,1.75) rectangle (1.25,2.35); + \fill[\duck@signcolour, rounded corners=\scalingfactor*1, rotate=-20] (0.8,0.75) rectangle (0.9,1.75); + \fill[\duck@signcolour, rounded corners=\scalingfactor*1, rotate=-20] (0.4,1.7) rectangle (1.3,2.4); + \fill[\duck@signback, rounded corners=\scalingfactor*1, rotate=-20] (0.45,1.75) rectangle (1.25,2.35); \node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (1.5,1.65) {\duck@signpost}; \fi % @@ -988,20 +1056,20 @@ % % cricket bat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@cricket - \fill[\duck@cricket, rounded corners=\yscalefactor*2, rotate=-30] (0.4,1.2) rectangle (0.7,2.2); - \fill[\duck@cricket, rounded corners=\yscalefactor*1, rotate=-30] (0.5,0.8) rectangle (0.6,1.3); + \fill[\duck@cricket, rounded corners=\scalingfactor*2, rotate=-30] (0.4,1.2) rectangle (0.7,2.2); + \fill[\duck@cricket, rounded corners=\scalingfactor*1, rotate=-30] (0.5,0.8) rectangle (0.6,1.3); \fi % % rollingpin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@rollingpin - \fill[\duck@rollingpin, rounded corners=\yscalefactor*2, rotate=-60] (-0.18,0.85) rectangle (0.08,1.75); - \fill[\duck@rollingpin, rounded corners=\yscalefactor*1, rotate=-60] (-0.1,0.65) rectangle (0.0,1.95); + \fill[\duck@rollingpin, rounded corners=\scalingfactor*2, rotate=-60] (-0.18,0.85) rectangle (0.08,1.75); + \fill[\duck@rollingpin, rounded corners=\scalingfactor*1, rotate=-60] (-0.1,0.65) rectangle (0.0,1.95); \fi % % lightsaber %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@lightsaber - \fill[\duck@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); + \fill[\duck@lightsaber, rounded corners=\scalingfactor*1, rotate=-30] (0.5,0.9) rectangle (0.6,2.5); + \fill[gray!80!black, rounded corners=\scalingfactor*1, rotate=-30] (0.47,0.7) rectangle (0.63,1.2); \fi % % cake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1052,13 +1120,13 @@ % % Hockey stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@hockey - \fill[\duck@hockey, rounded corners=\yscalefactor*1, rotate=-30] (0.5,0.6) rectangle (0.6,2.1); - \fill[\duck@hockey, rounded corners=\yscalefactor*3] (0.2,0.2) rectangle (0.85,0.4); + \fill[\duck@hockey, rounded corners=\scalingfactor*1, rotate=-30] (0.5,0.6) rectangle (0.6,2.1); + \fill[\duck@hockey, rounded corners=\scalingfactor*3] (0.2,0.2) rectangle (0.85,0.4); \fi % % baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@baguette - \fill[\duck@baguette!70!white, rounded corners=\yscalefactor*4, rotate=-30] (0.4,0.72) rectangle (0.7,2.0); + \fill[\duck@baguette!70!white, rounded corners=\scalingfactor*4, rotate=-30] (0.4,0.72) rectangle (0.7,2.0); \fill[\duck@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); \fi % @@ -1120,7 +1188,7 @@ \fill[red!50!yellow] \duckpathtorch; \fill[red!25!yellow, scale=0.67, xshift=17, yshift=15] \duckpathtorch; \fill[white!50!yellow, scale=0.4, xshift=53.5, yshift=45.3] \duckpathtorch; - \fill[\duck@torch,rounded corners=\yscalefactor*1] + \fill[\duck@torch,rounded corners=\scalingfactor*1] (1.1,0.96) -- (0.77,0.25) -- (0.83,0.25) -- (1.3,0.86) -- cycle; \fill[\duck@torch,rotate=-28] (0.62,1.32) ellipse (0.2 and 0.08); @@ -1175,12 +1243,12 @@ % % stethoscope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@stethoscope - \fill[\duck@stethoscope,rounded corners=\yscalefactor*0.5,rotate=-18] (0.08,0.7) rectangle (0.13,1.24); + \fill[\duck@stethoscope,rounded corners=\scalingfactor*0.5,rotate=-18] (0.08,0.7) rectangle (0.13,1.24); \fill[\duck@stethoscope] (0.35,0.7) circle (0.1); \begin{scope} - \fill[\duck@stethoscope,rounded corners=\yscalefactor*0.5,rotate=-30] (0.53,1.3) rectangle (0.58,1.72); + \fill[\duck@stethoscope,rounded corners=\scalingfactor*0.5,rotate=-30] (0.53,1.3) rectangle (0.58,1.72); \clip[rotate=-30] (0.36,0.89) -- (0.36,1.36) -- (0.79,1.36) -- (0.79,0.89) -- (0.65,0.89) -- (0.65,0.96) -- (0.5,0.96) -- (0.5,0.89) -- cycle ; - \fill [\duck@stethoscope,rounded corners=\yscalefactor*3,rotate=-30,even odd rule] (0.775,1.35) rectangle (0.375,0.9) [rounded corners=\yscalefactor*2] (0.725,1.3) rectangle (0.425,0.95); + \fill [\duck@stethoscope,rounded corners=\scalingfactor*3,rotate=-30,even odd rule] (0.775,1.35) rectangle (0.375,0.9) [rounded corners=\scalingfactor*2] (0.725,1.3) rectangle (0.425,0.95); \end{scope} \fi % @@ -1227,6 +1295,38 @@ \fill[\duck@pickaxe] (-0.0085, 0.6858) .. controls (0.6422, 0.3523) and (0.7609, 0.3068) .. (1.4114, 0.1108) .. controls (0.6589, 0.1246) and (0.5556, 0.1887) .. (-0.0085, 0.6858) -- cycle; \fi % +% umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@umbrella + \path (0.2,0.4) rectangle (2.22,2.7); + \begin{pgfinterruptboundingbox} + \fill[gray] (0.6922,0.5942) -- (0.7426,0.6103) .. controls (0.8276,0.3884) and (0.8855,0.4523) .. (0.9333,0.6543) -- (0.9334,0.6545) -- (0.9335,0.6547) .. controls (1.0347,1.0671) and (1.2906,1.9565) .. (1.2906,1.9565) -- (1.3415,1.9419) .. controls (1.3415,1.9419) and (1.0855,1.0519) .. (0.9849,0.6423) -- (0.9848,0.6420) .. controls (0.9240,0.3633) and (0.7874,0.3312) .. (0.6922,0.5942) -- cycle; + \fill[\duck@umbrella] (0.2185,1.9927) .. controls (0.3559,2.1962) and (0.6837,2.0720) .. (0.6761,1.8240) .. controls (0.8398,2.0111) and (1.1891,1.9216) .. (1.1685,1.6915) .. controls (1.3000,1.8765) and (1.6639,1.7626) .. (1.6607,1.5356) .. controls (1.7865,1.7271) and (2.1350,1.6950) .. (2.1626,1.4589) .. controls (2.4996,2.5771) and (0.5644,3.2631) .. (0.2185,1.9927) -- cycle; + \end{pgfinterruptboundingbox} +\fi +% +% closed umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@umbrellaclosed + \fill[gray] (1.3401,0.6996) -- (1.2872,0.7019) .. controls (1.2840,0.9395) and (1.2076,0.8995) .. (1.0930,0.7264) -- (1.0929,0.7262) -- (1.0928,0.7261) .. controls (0.8555,0.3739) and (0.9223,0.4608) .. (0.9223,0.4608) -- (0.8795,0.4920) .. controls (0.8795,0.4920) and (0.8131,0.4057) .. (1.0488,0.7554) -- (1.0489,0.7556) .. controls (1.2022,0.9963) and (1.3414,0.9793) .. (1.3401,0.6996) -- cycle; + \fill[\duck@umbrellaclosed] (0.6827,0.1263) -- (0.8038,0.6188) -- (0.9548,0.6494) -- (0.9520,0.8231) -- (1.1945,0.6529) -- (1.0218,0.5885) -- (1.0465,0.4566) -- cycle; +\fi +% +% handbag %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@handbag + \fill[\duck@handbag] (0.7811,0.1751) -- (1.4913,0.3097) -- (1.3315,0.7086) -- (0.7832,0.6152) -- cycle; + \fill[\duck@handbag!70!black] (0.8857,0.4354) .. controls (0.7861,0.9811) and (1.1796,1.0719) .. (1.2866,0.5155) -- (1.2043,0.4996) .. controls (1.1247,0.8952) and (0.9051,0.8883) .. (0.9676,0.4536) -- cycle; +\fi +% +% cocktail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@cocktail + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse (0.12 and 0.03); + \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse (0.03 and 0.2); + \fill[cyan!10!white] (0.92,0.6) -- (0.75,0.9) -- (1.18,0.83) -- cycle; + \fill[gray!60!white] (0.928,0.64) -- (0.85,0.77) -- (1.08,0.77) -- cycle; + \fill[green!40!brown!60!white] (0.94,0.71) circle (0.04); + \fill[red!80!black] (0.94,0.72) circle (0.01); +\fi +% % wing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@wing \fill[\duck@wing] \duckpathwing; @@ -1493,6 +1593,40 @@ (1.4338,1.0258) -- cycle } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Picture mode ducks +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\picduck}{% + % bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \qbezier(6.5,29.5)(-1,17.5)(16.8,27.3) + \qbezier(6.5,29.5)(9,30.5)(11.4,28.0) + \qbezier(11.4,28.0)(13.5,26.5)(16.8,27.3) + % head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \qbezier(06.5,29.5)(6,41.5)(16.8,42.4) + \qbezier(16.8,42.4)(29,41)(25.3,24) + % body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \qbezier(7.8,23.2)(8,22.8)(8,22.5) + \qbezier(8,22.5)(-5,9)(8,3) + \qbezier(8,3)(22,-2)(35,6.5) + \qbezier(35,6.5)(46,15)(35,28.3) + \qbezier(35,28.3)(30,25)(25.3,24) + % right eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \qbezier(13,32)(13.8,34.5)(16,34) + \qbezier(16,34)(17.3,33.2)(16.7,31) + \qbezier(16.7,31)(16,29.1)(14.5,29.3) + \qbezier(14.5,29.3)(12.7,29.5)(13,32) + \put(15.3,31.3){\circle*{1.8}} + % left eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \qbezier(7.7,33.2)(8.4,35.7)(10.3,35) + \qbezier(10.3,35)(11.2,34)(10.4,32.2) + \qbezier(10.4,32.2)(9.7,30.7)(8.7,30.7) + \qbezier(8.7,30.7)(7.2,30.9)(7.7,33.2) + \put(9.5,32.7){\circle*{1.5}} +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 32237378723223 % 23737232212232237822 diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex index fe0b7c234af..25927172f0f 100644 --- a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex +++ b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex @@ -10,8 +10,8 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.0 -% Nov 8, 2018 +% Version 1.1 +% April 7, 2019 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{tikzducks} -- cgit v1.2.3