summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tikzducks
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-04-04 20:19:15 +0000
committerKarl Berry <karl@freefriends.org>2018-04-04 20:19:15 +0000
commitf4df1fcd0cb6d4913a9139700175a5c9024190f9 (patch)
treeb1f6b46ebb25a16b7413a2339715c05a502c30a9 /Master/texmf-dist/tex/latex/tikzducks
parentbc1cf504905de3a2eaccd42628b1b8ec251eb6d1 (diff)
tikzducks (4apr18)
git-svn-id: svn://tug.org/texlive/trunk@47289 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/tikzducks')
-rw-r--r--Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty1294
-rw-r--r--Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex27
2 files changed, 831 insertions, 490 deletions
diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
index 69bab18b0ae..8f9ee6da15b 100644
--- a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
+++ b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
@@ -1,3 +1,4 @@
+% !TeX root = ./testing/test.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The tikzducks package
@@ -10,20 +11,19 @@
% Released under the LaTeX Project Public License v1.3c or later
% See http://www.latex-project.org/lppl.txt
%
-% Version 0.5a
-% Nov 23, 2017
+% Version 0.6
+% April 04, 2018
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
\ProvidesPackage{tikzducks}
+ [2018/04/04 v0.6 Draw rubber ducks in TikZ]
-\RequirePackage{xcolor}
\RequirePackage{tikz}
\usetikzlibrary{patterns} % for the wizard hat
\usetikzlibrary{calc} % for the sports jerseys
-\RequirePackage{ifpdf}
\RequirePackage{ifluatex}
+\RequirePackage{ifxetex}
%\pgfdeclarelayer{backgroundlayer}
%\pgfdeclarelayer{bodylayer}
@@ -33,8 +33,11 @@
%
%\pgfsetlayers{backgroundlayer,bodylayer,clothinglayer,hairlayer,hatlayer,main}
-\newcommand*{\duck}[1][]{\tikzset{%
- /duck/.cd,#1}\duck@draw%
+\newcommand*{\duck}[1][]{%
+ \begin{scope}%
+ \tikzset{/duck/.cd,#1}%
+ \duck@draw%
+ \end{scope}%
}
\newif\ifduck@name
@@ -49,6 +52,8 @@
\newif\ifduck@recedinghair
\newif\ifduck@eyebrow
\newif\ifduck@beard
+\newif\ifduck@mohican
+\newif\ifduck@mullet
% clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@tshirt
\newif\ifduck@jacket
@@ -67,12 +72,16 @@
\newif\ifduck@graduate
\newif\ifduck@beret
\newif\ifduck@crown
+\newif\ifduck@queencrown
+\newif\ifduck@kingcrown
\newif\ifduck@peakedcap
\newif\ifduck@bunny
\newif\ifduck@tophat
+\newif\ifduck@darthvader
% Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@glasses
\newif\ifduck@sunglasses
+\newif\ifduck@squareglasses
\newif\ifduck@icecream
\newif\ifduck@book
\newif\ifduck@magicwand
@@ -93,169 +102,243 @@
\newif\ifduck@speech
\newif\ifduck@think
\newif\ifduck@torch
+\newif\ifduck@easter
+\newif\ifduck@basket
+\newif\ifduck@buttons
+\newif\ifduck@sheep
+\newif\ifduck@horsetail
+\newif\ifduck@crozier
+\newif\ifduck@davidlikespineapplepizza
-\tikzset{
- /duck/.cd,
- name/.code = \duck@nametrue \def\duck@name{#1},
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % Environment
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- water/.code = \duck@watertrue \def\duck@water{#1},
- % setting default
- water/.default = blue,
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % body parts
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- body/.code = \def\duck@body{#1},
- head/.code = \def\duck@head{#1},
- eye/.code = \def\duck@eye{#1},
- pupil/.code = \def\duck@pupil{#1},
- bill/.code = \def\duck@bill{#1},
- grumpy/.code = \duck@grumpytrue,
- % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- body = yellow!70!brown,
- eye = white!85!yellow,
- pupil = black,
- bill = orange!50!brown,
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % clothing
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- tshirt/.code = \duck@tshirttrue \def\duck@tshirt{#1},
- jacket/.code = \duck@jackettrue \def\duck@jacket{#1},
- tie/.code = \duck@tietrue \def\duck@tie{#1},
- cape/.code = \duck@capetrue \def\duck@cape{#1},
- stripes/.code = \duck@stripestrue \def\duck@stripes{#1},
- % setting default %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- tshirt/.default = white,
- jacket/.default = blue,
- tie/.default = blue,
- cape/.default = red,
- stripes/.default = \stripes ,
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % hair styles
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- shorthair/.code = \duck@shorthairtrue \def\duck@hair{#1},
- longhair/.code = \duck@longhairtrue \def\duck@hair{#1},
- crazyhair/.code = \duck@crazyhairtrue \def\duck@hair{#1},
- recedinghair/.code = \duck@recedinghairtrue \def\duck@hair{#1},
- eyebrow/.code = \duck@eyebrowtrue \def\duck@eyebrow{#1},
- beard/.code = \duck@beardtrue \def\duck@beard{#1},
- % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- shorthair/.default = brown,
- longhair/.default = brown,
- crazyhair/.default = brown,
- recedinghair/.default = brown,
- eyebrow/.default = brown,
- beard/.default = brown,
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % Headgear
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- alien/.code = \duck@alientrue \def\duck@alien{#1},
- hat/.code = \duck@hattrue \def\duck@hat{#1},
- cap/.code = \duck@captrue \def\duck@cap{#1},
- santa/.code = \duck@santatrue \def\duck@santa{#1},
- chef/.code = \duck@cheftrue \def\duck@chef{#1},
- graduate/.code = \duck@graduatetrue \def\duck@graduate{#1},
- tassel/.code = \def\duck@tassel{#1},
- beret/.code = \duck@berettrue \def\duck@beret{#1},
- unicorn/.code = \duck@unicorntrue \def\duck@unicorn{#1},
- magichat/.code = \duck@magichattrue \def\duck@magichat{#1},
- magicstars/.code = \def\duck@magicstars{#1},
- witch/.code = \duck@witchtrue \def\duck@witch{#1},
- crown/.code = \duck@crowntrue \def\duck@crown{#1},
- bunny/.code = \duck@bunnytrue \def\duck@bunny{#1},
- inear/.code = \def\duck@inear{#1},
- peakedcap/.code = \duck@peakedcaptrue \def\duck@peakedcap{#1},
- tophat/.code = \duck@tophattrue \def\duck@tophat{#1},
- % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- alien/.default = green,
- hat/.default = brown,
- cap/.default = blue,
- santa/.default = red!80!black,
- chef/.default = gray!20!white,
- graduate/.default = black,
- tassel = red,
- beret/.default = black,
- unicorn/.default = pink,
- magichat/.default = violet,
- magicstars = yellow!80!brown,
- witch/.default = black,
- crown/.default = yellow,
- bunny/.default = \duck@body,
- inear = \duck@bunny!50!white,
- peakedcap/.default= blue,
- tophat/.default = black,
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % Accessories
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- glasses/.code = \duck@glassestrue \def\duck@glasses{#1},
- sunglasses/.code = \duck@sunglassestrue \def\duck@sunglasses{#1},
- icecream/.code = \duck@icecreamtrue \def\duck@cone{#1},
- flavoura/.code = \def\duck@flavoura{#1},
- flavourb/.code = \def\duck@flavourb{#1},
- flavourc/.code = \def\duck@flavourc{#1},
- book/.code = \duck@booktrue \def\duck@book{#1},
- bookcolour/.code = \def\duck@bookcolour{#1},
- signpost/.code = \duck@signposttrue \def\duck@signpost{#1},
- signcolour/.code = \def\duck@signcolour{#1},
- signback/.code = \def\duck@signback{#1},
- magicwand/.code = \duck@magicwandtrue,
- cricket/.code = \duck@crickettrue \def\duck@cricket{#1},
- rollingpin/.code = \duck@rollingpintrue \def\duck@rollingpin{#1},
- lightsaber/.code = \duck@lightsabertrue \def\duck@lightsaber{#1},
- cake/.code = \duck@caketrue \def\duck@cake{#1},
- pizza/.code = \duck@pizzatrue,
- hockey/.code = \duck@hockeytrue \def\duck@hockey{#1},
- baguette/.code = \duck@baguettetrue \def\duck@baguette{#1},
- football/.code = \duck@footballtrue \def\duck@football{#1},
- mask/.code = \duck@masktrue \def\duck@mask{#1},
- necklace/.code = \duck@necklacetrue \def\duck@necklace{#1},
- milkshake/.code = \duck@milkshaketrue \def\duck@milkshake{#1},
- wine/.code = \duck@winetrue \def\duck@wine{#1},
- prison/.code = \duck@prisontrue \def\duck@prison{#1},
- speech/.code = \duck@speechtrue \def\duck@speech{#1},
- think/.code = \duck@thinktrue \def\duck@think{#1},
- bubblecolour/.code = \def\duck@bubblecolour{#1},
- torch/.code = \duck@torchtrue \def\duck@torch{#1},
- % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- glasses/.default = black,
- sunglasses/.default = black,
- icecream/.default = brown!60!gray,
- flavoura = brown!50!black,
- flavourb = white!70!brown,
- flavourc = red!50!white,
- bookcolour = brown,
- signcolour = brown!50!black,
- signback = green!40!black,
- cricket/.default = brown,
- rollingpin/.default = brown,
- lightsaber/.default = green,
- cake/.default = violet,
- hockey/.default = brown,
- baguette/.default = brown,
- football/.default = white,
- mask/.default = black,
- necklace/.default = white!80!gray,
- milkshake/.default = red!20!white,
- wine/.default = red!70!black,
- prison/.default = gray,
- bubblecolour = gray!30!white,
- torch/.default = gray,
+ \tikzset{
+ %
+ % Pass unknown keys on to tikz
+ %
+ /duck/.search also={/tikz,/pgf},
+ /duck/.cd,
+ name/.code= \duck@nametrue \def\duck@name{#1},
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Environment
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ water/.code = \duck@watertrue \def\duck@water{#1},
+ % setting default
+ water/.default = blue,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % body parts
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ body/.code = \def\duck@body{#1},
+ head/.code = \def\duck@head{#1},
+ eye/.code = \def\duck@eye{#1},
+ pupil/.code = \def\duck@pupil{#1},
+ bill/.code = \def\duck@bill{#1},
+ grumpy/.code = \duck@grumpytrue,
+ % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ body = yellow!70!brown,
+ eye = white!85!yellow,
+ pupil = black,
+ bill = orange!50!brown,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % clothing
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ tshirt/.code = \duck@tshirttrue \def\duck@tshirt{#1},
+ jacket/.code = \duck@jackettrue \def\duck@jacket{#1},
+ tie/.code = \duck@tietrue \def\duck@tie{#1},
+ cape/.code = \duck@capetrue \def\duck@cape{#1},
+ stripes/.code = \duck@stripestrue \def\duck@stripes{#1},
+ % setting default %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ tshirt/.default = white,
+ jacket/.default = blue,
+ tie/.default = blue,
+ cape/.default = red,
+ stripes/.default = \stripes ,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % hair styles
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ shorthair/.code = \duck@shorthairtrue \def\duck@hair{#1},
+ short hair/.forward to=/duck/shorthair,
+ longhair/.code = \duck@longhairtrue \def\duck@hair{#1},
+ long hair/.forward to=/duck/longhair,
+ crazyhair/.code = \duck@crazyhairtrue \def\duck@hair{#1},
+ crazy hair/.forward to=/duck/crazyhair,
+ recedinghair/.code = \duck@recedinghairtrue \def\duck@hair{#1},
+ receding hair/.forward to=/duck/recedinghair,
+ eyebrow/.code = \duck@eyebrowtrue \def\duck@eyebrow{#1},
+ beard/.code = \duck@beardtrue \def\duck@beard{#1},
+ mohican/.code = \duck@mohicantrue \def\duck@hair{#1},
+ mullet/.code = \duck@mullettrue \def\duck@hair{#1},
+ % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ shorthair/.default = brown,
+ longhair/.default = brown,
+ crazyhair/.default = brown,
+ recedinghair/.default= brown,
+ eyebrow/.default = brown,
+ beard/.default = brown,
+ mohican/.default = brown,
+ mullet/.default = brown,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Headgear
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ alien/.code = \duck@alientrue \def\duck@alien{#1},
+ hat/.code = \duck@hattrue \def\duck@hat{#1},
+ cap/.code = \duck@captrue \def\duck@cap{#1},
+ santa/.code = \duck@santatrue \def\duck@santa{#1},
+ chef/.code = \duck@cheftrue \def\duck@chef{#1},
+ graduate/.code = \duck@graduatetrue \def\duck@graduate{#1},
+ tassel/.code = \def\duck@tassel{#1},
+ beret/.code = \duck@berettrue \def\duck@beret{#1},
+ unicorn/.code = \duck@unicorntrue \def\duck@unicorn{#1},
+ magichat/.code = \duck@magichattrue \def\duck@magichat{#1},
+ magic hat/.forward to=/duck/magichat,
+ magicstars/.code = \def\duck@magicstars{#1},
+ magic stars/.forward to=/duck/magicstars,
+ witch/.code = \duck@witchtrue \def\duck@witch{#1},
+ crown/.code = \duck@crowntrue \def\duck@crown{#1},
+ queencrown/.code = \duck@queencrowntrue \def\duck@queencrown{#1},
+ queen crown/.forward to=/duck/queencrown,
+ kingcrown/.code = \duck@kingcrowntrue \def\duck@kingcrown{#1},
+ king crown/.forward to=/duck/kingcrown,
+ bunny/.code = \duck@bunnytrue \def\duck@bunny{#1},
+ inear/.code = \def\duck@inear{#1},
+ in ear/.forward to=/duck/inear,
+ peakedcap/.code = \duck@peakedcaptrue \def\duck@peakedcap{#1},
+ peaked cap/.forward to=/duck/peakedcap,
+ tophat/.code = \duck@tophattrue \def\duck@tophat{#1},
+ top hat/.forward to=/duck/tophat,
+ darthvader/.code = \duck@darthvadertrue \def\duck@darthvader{#1},
+ darth vader/.forward to=/duck/darthvader,
+ % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ alien/.default = green,
+ hat/.default = brown,
+ cap/.default = blue,
+ santa/.default = red!80!black,
+ chef/.default = gray!20!white,
+ graduate/.default = black,
+ tassel = red,
+ beret/.default = black,
+ unicorn/.default = pink,
+ magichat/.default = violet,
+ magicstars = yellow!80!brown,
+ witch/.default = black,
+ crown/.default = yellow,
+ queencrown/.default= yellow,
+ kingcrown/.default = gray,
+ bunny/.default = \duck@body,
+ inear = \duck@bunny!50!white,
+ peakedcap/.default = blue,
+ tophat/.default = black,
+ darthvader/.default= black,
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %
+ % Accessories
+ %
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ glasses/.code = \duck@glassestrue \def\duck@glasses{#1},
+ sunglasses/.code = \duck@sunglassestrue \def\duck@sunglasses{#1},
+ squareglasses/.code = \duck@squareglassestrue \def\duck@squareglasses{#1},
+ square glasses/.forward to=/duck/squareglasses,
+ icecream/.code = \duck@icecreamtrue \def\duck@cone{#1},
+ ice cream/.forward to=/duck/icecream,
+ flavoura/.code = \def\duck@flavoura{#1},
+ flavour a/.forward to=/duck/flavoura,
+ flavourb/.code = \def\duck@flavourb{#1},
+ flavour b/.forward to=/duck/flavourb,
+ flavourc/.code = \def\duck@flavourc{#1},
+ flavour c/.forward to=/duck/flavourc,
+ book/.code = \duck@booktrue \def\duck@book{#1},
+ bookcolour/.code = \def\duck@bookcolour{#1},
+ book colour/.forward to=/duck/bookcolour,
+ signpost/.code = \duck@signposttrue \def\duck@signpost{#1},
+ sign post/.forward to=/duck/signpost,
+ signcolour/.code = \def\duck@signcolour{#1},
+ sign colour/.forward to=/duck/signcolour,
+ signback/.code = \def\duck@signback{#1},
+ sign back/.forward to=/duck/signback,
+ magicwand/.code = \duck@magicwandtrue,
+ magic want/.forward to=/duck/magicwand,
+ cricket/.code = \duck@crickettrue \def\duck@cricket{#1},
+ rollingpin/.code = \duck@rollingpintrue \def\duck@rollingpin{#1},
+ rolling pin/.forward to=/duck/rollingpin,
+ lightsaber/.code = \duck@lightsabertrue \def\duck@lightsaber{#1},
+ light saber/.forward to=/duck/lightsaber,
+ cake/.code = \duck@caketrue \def\duck@cake{#1},
+ pizza/.code = \duck@pizzatrue,
+ hockey/.code = \duck@hockeytrue \def\duck@hockey{#1},
+ baguette/.code = \duck@baguettetrue \def\duck@baguette{#1},
+ football/.code = \duck@footballtrue \def\duck@football{#1},
+ mask/.code = \duck@masktrue \def\duck@mask{#1},
+ necklace/.code = \duck@necklacetrue \def\duck@necklace{#1},
+ milkshake/.code = \duck@milkshaketrue \def\duck@milkshake{#1},
+ wine/.code = \duck@winetrue \def\duck@wine{#1},
+ prison/.code = \duck@prisontrue \def\duck@prison{#1},
+ speech/.code = \duck@speechtrue \def\duck@speech{#1},
+ think/.code = \duck@thinktrue \def\duck@think{#1},
+ bubblecolour/.code = \def\duck@bubblecolour{#1},
+ bubble colour/.forward to=/duck/bubblecolour,
+ torch/.code = \duck@torchtrue \def\duck@torch{#1},
+ basket/.code = \duck@baskettrue \def\duck@basket{#1},
+ easter/.code = \duck@eastertrue
+ \duck@baskettrue \def\duck@basket{#1},
+ egga/.code = \def\duck@egga{#1},
+ egg a/.forward to=/duck/egga,
+ eggb/.code = \def\duck@eggb{#1},
+ egg b/.forward to=/duck/eggb,
+ eggc/.code = \def\duck@eggc{#1},
+ egg c/.forward to=/duck/eggc,
+ buttons/.code = \duck@buttonstrue \def\duck@buttons{#1},
+ sheep/.code = \duck@sheeptrue \def\duck@sheep{#1},
+ horsetail/.code = \duck@horsetailtrue \def\duck@horsetail{#1},
+ crozier/.code = \duck@croziertrue \def\duck@crozier{#1},
+ davidlikespineapplepizza/.code = \duck@davidlikespineapplepizzatrue
+ \duck@speechtrue \def\duck@speech{\scalebox{\yscalefactor}{\scalebox{0.9}{\tiny ih, che schifo!}}},
+ david likes pineapple pizza/.forward to=/duck/davidlikespineapplepizza,
+ % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ glasses/.default = black,
+ sunglasses/.default= black,
+ squareglasses/.default = black,
+ icecream/.default = brown!60!gray,
+ flavoura = brown!50!black,
+ flavourb = white!70!brown,
+ flavourc = red!50!white,
+ bookcolour = brown,
+ signcolour = brown!50!black,
+ signback = green!40!black,
+ cricket/.default = brown,
+ rollingpin/.default= brown,
+ lightsaber/.default= green,
+ cake/.default = violet,
+ hockey/.default = brown,
+ baguette/.default = brown,
+ football/.default = white,
+ mask/.default = black,
+ necklace/.default = white!80!gray,
+ milkshake/.default = red!20!white,
+ wine/.default = red!70!black,
+ prison/.default = gray,
+ bubblecolour = gray!30!white,
+ torch/.default = gray,
+ basket/.default = brown!70!gray,
+ easter/.default = brown!70!gray,
+ egga = blue,
+ eggb = green,
+ eggc = red,
+ buttons/.default = black,
+ sheep/.default = \duck@body,
+ horsetail/.default = brown,
+ crozier/.default = brown,
}
\def\duck@draw{
+%\begin{scope}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% minimal bounding box size
@@ -269,13 +352,25 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@name
- \coordinate (\duck@name-wing) at (0.8,0.7);
- \coordinate (\duck@name-head) at (0.9,2);
- \coordinate (\duck@name-bill) at (0.5,1.3);
+ \coordinate (\duck@name-wing) at (0.8,0.7);
+ \coordinate (\duck@name-head) at (0.9,2);
+ \coordinate (\duck@name-bill) at (0.5,1.3);
+ \coordinate (\duck@name-tail) at (1.82,1.41);
\fi
\coordinate (wing) at (0.8,0.7);
\coordinate (head) at (0.9,2);
\coordinate (bill) at (0.5,1.3);
+\coordinate (tail) at (1.82,1.41);
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% 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}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -286,12 +381,17 @@
%
% water %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@water
- \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (0.88 and 0.35) (1.00,0.40) ellipse (0.75 and 0.25);
- \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.05 and 0.50) (1.00,0.40) ellipse (0.95 and 0.42);
- \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.23 and 0.63) (1.00,0.40) ellipse (1.17 and 0.57);
- \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.42 and 0.77) (1.00,0.40) ellipse (1.38 and 0.73);
+ \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (0.88 and 0.35) (1.00,0.40) ellipse (0.75 and 0.25);
+ \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.05 and 0.50) (1.00,0.40) ellipse (0.95 and 0.42);
+ \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.23 and 0.63) (1.00,0.40) ellipse (1.17 and 0.57);
+ \fill[\duck@water, even odd rule] (1.00,0.40) ellipse (1.42 and 0.77) (1.00,0.40) ellipse (1.38 and 0.73);
\fi
%
+% sheep %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\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
+%
%\end{pgfonlayer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -302,41 +402,41 @@
%
% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{pgfinterruptboundingbox}
- \fill[\duck@body] \duckpathbody;
+ \fill[\duck@body] \duckpathbody;
\end{pgfinterruptboundingbox}
%
% head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifdefined\duck@head\else\let\duck@head=\duck@body\fi
\fill[\duck@head]
- (0.90,1.50) ellipse (0.50 and 0.625);
+ (0.90,1.50) ellipse (0.50 and 0.625);
%
% bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@grumpy
- \fill[\duck@bill] \duckpathgrumpybill;
+ \fill[\duck@bill] \duckpathgrumpybill;
\else
- \fill[\duck@bill] \duckpathbill;
+ \fill[\duck@bill] \duckpathbill;
\fi
%
% Superhero mask %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% has to be behind the eyes
\ifduck@mask
- \begin{scope}
- \clip (0.90,1.50) ellipse (0.50 and 0.625);
- \fill[\duck@mask,rotate=-15] (-0.1,1.59) rectangle (1.3,1.88);
- \end{scope}
+ \begin{scope}
+ \clip (0.90,1.50) ellipse (0.50 and 0.625);
+ \fill[\duck@mask,rotate=-15] (-0.1,1.59) rectangle (1.3,1.88);
+ \end{scope}
\fi%
%
% right eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[\duck@eye, rotate=-20]
- (0.23,1.7675) ellipse (0.0893 and 0.125);
+ (0.23,1.7675) ellipse (0.0893 and 0.125);
\fill[\duck@pupil, rotate=-20]
- (0.26,1.7575) ellipse (0.0357 and 0.0714);
+ (0.26,1.7575) ellipse (0.0357 and 0.0714);
%
% left eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[\duck@eye, rotate=-20]
- (-0.06,1.74) ellipse (0.0786 and 0.1143);
+ (-0.06,1.74) ellipse (0.0786 and 0.1143);
\fill[\duck@pupil, rotate=-20]
- (-0.03,1.73) ellipse (0.0286 and 0.0643);
+ (-0.03,1.73) ellipse (0.0286 and 0.0643);
%
%\end{pgfonlayer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -348,38 +448,47 @@
%
% tshirt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@tshirt
- \begin{pgfinterruptboundingbox}
- \fill[\duck@tshirt] \duckpathtshirt;
- \end{pgfinterruptboundingbox}
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@tshirt] \duckpathtshirt;
+ \end{pgfinterruptboundingbox}
\fi
%
% tie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@tie
- \fill[\duck@tie,rotate=-12] (0.32,0.7) rectangle (0.43,1.15);
+ \fill[\duck@tie,rotate=-12] (0.32,0.7) rectangle (0.43,1.15);
\fi
%
% jacket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@jacket
- \begin{pgfinterruptboundingbox}
- \fill[\duck@jacket] \duckpathjacket;
- \end{pgfinterruptboundingbox}
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@jacket] \duckpathjacket;
+ \end{pgfinterruptboundingbox}
\fi
%
% stripes for football jersey %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@stripes
- \duck@stripes
+ \duck@stripes
\fi
%
% superhero cape %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cape
- \begin{pgfinterruptboundingbox}
- \fill[\duck@cape] \duckpathcape;
- \end{pgfinterruptboundingbox}
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@cape] \duckpathcape;
+ \end{pgfinterruptboundingbox}
\fi
%
% necklace (not really clothing, but needs to be below the hair) %%%%%
\ifduck@necklace
- \fill[\duck@necklace] (0.5000,1.112) circle (0.032) (0.5100,1.050) circle (0.032) (0.5200,0.990) circle (0.032) (0.5400,0.931) circle (0.032) (0.5825,0.885) circle (0.032) (0.6450,0.885) circle (0.032) (0.7000,0.910) circle (0.032) (0.7500,0.945) circle (0.032) (0.8000,0.980) circle (0.032) (0.8500,1.020) circle (0.032) (0.9000,1.050) circle (0.032) (0.9500,1.080) circle (0.032) (1.0000,1.110) circle (0.032) (1.0550,1.130) circle (0.032) (1.1100,1.150) circle (0.032) (1.1650,1.165) circle (0.032) (1.2200,1.180) circle (0.032) (1.2750,1.195) circle (0.032) (1.3300,1.210) circle (0.032);
+ \fill[\duck@necklace] (0.5000,1.112) circle (0.032) (0.5100,1.050) circle (0.032) (0.5200,0.990) circle (0.032) (0.5400,0.931) circle (0.032) (0.5825,0.885) circle (0.032) (0.6450,0.885) circle (0.032) (0.7000,0.910) circle (0.032) (0.7500,0.945) circle (0.032) (0.8000,0.980) circle (0.032) (0.8500,1.020) circle (0.032) (0.9000,1.050) circle (0.032) (0.9500,1.080) circle (0.032) (1.0000,1.110) circle (0.032) (1.0550,1.130) circle (0.032) (1.1100,1.150) circle (0.032) (1.1650,1.165) circle (0.032) (1.2200,1.180) circle (0.032) (1.2750,1.195) circle (0.032) (1.3300,1.210) circle (0.032);
+\fi
+%
+% buttons (same argument as for the necklace)
+\ifduck@buttons
+ \ifduck@jacket
+ \fill[\duck@buttons] (0.49,0.6) circle (0.05) (0.46,0.45) circle (0.05) (0.45,0.3) circle (0.05);
+ \else
+ \fill[\duck@buttons] (0.53,0.75) circle (0.05) (0.5,0.6) circle (0.05) (0.47,0.45) circle (0.05);
+ \fi
\fi
%
%\end{pgfonlayer}
@@ -392,54 +501,70 @@
%
% short hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@shorthair
- \path (0.1,0.1) rectangle (2.1,2.25);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathshorthair;
- \end{pgfinterruptboundingbox}
+ \path (0.1,0.1) rectangle (2.1,2.25);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathshorthair;
+ \end{pgfinterruptboundingbox}
\fi
%
% long hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@longhair
- \path (0.1,0.1) rectangle (2.1,2.25);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathlonghair;
- \end{pgfinterruptboundingbox}
+ \path (0.1,0.1) rectangle (2.1,2.25);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathlonghair;
+ \end{pgfinterruptboundingbox}
\fi
%
% crazy hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@crazyhair
- \path (0.1,0.1) rectangle (2.1,2.4);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathcrazyhair;
- \end{pgfinterruptboundingbox}
+ \path (0.1,0.1) rectangle (2.1,2.4);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathcrazyhair;
+ \end{pgfinterruptboundingbox}
\fi
%
% receding hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@recedinghair
- \path (0.1,0.1) rectangle (2.1,2.18);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathrecedinghair;
- \end{pgfinterruptboundingbox}
+ \path (0.1,0.1) rectangle (2.1,2.18);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathrecedinghair;
+ \end{pgfinterruptboundingbox}
+\fi
+%
+% mohican hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@mohican
+ \path (0.1,0.1) rectangle (2.1,2.24);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathmohican;
+ \end{pgfinterruptboundingbox}
+\fi
+%
+% mullet hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@mullet
+ \path (0.1,0.1) rectangle (2.1,2.17);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@hair] \duckpathmullet;
+ \end{pgfinterruptboundingbox}
\fi
%
% eye brow %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pgfkeys{/duck/eyebrow/.@def/.get=\duck@test}
\ifx\duck@eyebrow\duck@test
- \ifdefined\duck@hair\let\duck@eyebrow=\duck@hair\fi
+ \ifdefined\duck@hair\let\duck@eyebrow=\duck@hair\fi
\fi%
\ifduck@eyebrow
- \fill[\duck@eyebrow, rounded corners=1, rotate=60] (1.92,0.21) rectangle (1.98,-0.01);
- \fill[\duck@eyebrow, rounded corners=1, rotate=100] (1.67,-0.77) rectangle (1.73,-0.95);
-\fi
+ \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);
+\fi
%
% beard %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pgfkeys{/duck/beard/.@def/.get=\duck@test}
\ifx\duck@beard\duck@test
- \ifdefined\duck@hair\let\duck@beard=\duck@hair\fi
+ \ifdefined\duck@hair\let\duck@beard=\duck@hair\fi
\fi%
\ifduck@beard
- \fill[\duck@beard] (1.3,1.3) circle (0.12) (1.2,1.15) circle (0.12) (0.5,1.05) circle (0.1) (0.525,0.90) circle (0.12) (0.525,0.75) circle (0.12) (0.65,0.65) circle (0.14) (0.75,0.75) circle (0.12) (0.85,0.85) circle (0.12) (0.95,0.95) circle (0.12) (1.05,1.05) circle (0.12) (1.15,1.25) circle (0.12) (1,1.20) circle (0.12) (0.85,1.20) circle (0.12) (0.75,1.15) circle (0.12) (0.65,1.10) circle (0.12) (0.58,1.07) circle (0.12) (0.44,1.46) circle (0.06) (0.52,1.45) circle (0.06) (0.6, 1.41) circle (0.06) (0.68,1.36) circle (0.06) (0.76,1.34) circle (0.06) (0.86,1.26) circle (0.12) (0.38,1.44) circle (0.03) (1,1.28) circle (0.12);
- \fill[\duck@beard] (1.3,1.3) -- (0.5,1.05) -- (0.65,0.65) -- cycle;
+ \fill[\duck@beard] (1.3,1.3) circle (0.12) (1.2,1.15) circle (0.12) (0.5,1.05) circle (0.1) (0.525,0.90) circle (0.12) (0.525,0.75) circle (0.12) (0.65,0.65) circle (0.14) (0.75,0.75) circle (0.12) (0.85,0.85) circle (0.12) (0.95,0.95) circle (0.12) (1.05,1.05) circle (0.12) (1.15,1.25) circle (0.12) (1,1.20) circle (0.12) (0.85,1.20) circle (0.12) (0.75,1.15) circle (0.12) (0.65,1.10) circle (0.12) (0.58,1.07) circle (0.12) (0.44,1.46) circle (0.06) (0.52,1.45) circle (0.06) (0.6, 1.41) circle (0.06) (0.68,1.36) circle (0.06) (0.76,1.34) circle (0.06) (0.86,1.26) circle (0.12) (0.38,1.44) circle (0.03) (1,1.28) circle (0.12);
+ \fill[\duck@beard] (1.3,1.3) -- (0.5,1.05) -- (0.65,0.65) -- cycle;
\fi%
%
%\end{pgfonlayer}
@@ -452,122 +577,139 @@
%
% alien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@alien
- \fill[\duck@alien,rotate=-25] (0.09,2.1) rectangle (0.16,2.6);
- \fill[\duck@alien,rotate=5] (0.79,1.86) rectangle (0.86,2.25);
- \fill[\duck@alien] (1.20,2.30) circle (0.07);
- \fill[\duck@alien] (0.62,2.35) circle (0.07);
+ \fill[\duck@alien,rotate=-25] (0.09,2.1) rectangle (0.16,2.6);
+ \fill[\duck@alien,rotate=5] (0.79,1.86) rectangle (0.86,2.25);
+ \fill[\duck@alien] (1.20,2.30) circle (0.07);
+ \fill[\duck@alien] (0.62,2.35) circle (0.07);
\fi
%
% 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);
+ \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
%
% cap %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cap
- \fill[\duck@cap, start angle=0, end angle=150, radius=0.5] (1.4,1.75) arc;
- \fill[\duck@cap,rotate=-15] (0.3,2.05) ellipse (0.6 and 0.15);
-\fi
+ \fill[\duck@cap, start angle=0, end angle=150, radius=0.5] (1.4,1.75) arc;
+ \fill[\duck@cap,rotate=-15] (0.3,2.05) ellipse (0.6 and 0.15);
+\fi
%
% Santa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@santa
- \fill[\duck@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);
+ \fill[\duck@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);
\fi
%
% Chef hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@chef
- \fill[\duck@chef,rotate=-15] (0.44,2.1) ellipse (0.37 and 0.08);
- \fill[\duck@chef,rotate=-15] (0.07,2.1) rectangle (0.81,2.55);
- \fill[\duck@chef] (1.01,2.47) circle (0.17);
- \fill[\duck@chef] (1.24,2.35) circle (0.15);
- \fill[\duck@chef] (0.77,2.40) circle (0.12);
- \fill[\duck@chef] (1.39,2.20) circle (0.12);
+ \fill[\duck@chef,rotate=-15] (0.44,2.1) ellipse (0.37 and 0.08);
+ \fill[\duck@chef,rotate=-15] (0.07,2.1) rectangle (0.81,2.55);
+ \fill[\duck@chef] (1.01,2.47) circle (0.17);
+ \fill[\duck@chef] (1.24,2.35) circle (0.15);
+ \fill[\duck@chef] (0.77,2.40) circle (0.12);
+ \fill[\duck@chef] (1.39,2.20) circle (0.12);
\fi
%
% graduate hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@graduate
- \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=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);
+ \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] (1.16,1.3) ellipse (0.06 and 0.12);
\fi
%
% beret %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@beret
- \fill[\duck@beret,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17);
- \fill[\duck@beret,rotate=-25] (0.13,2.25) ellipse (0.55 and 0.17);
- \fill[\duck@beret,rotate=-25] (0.13,2.4) circle (0.08);
+ \fill[\duck@beret,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17);
+ \fill[\duck@beret,rotate=-25] (0.13,2.25) ellipse (0.55 and 0.17);
+ \fill[\duck@beret,rotate=-25] (0.13,2.4) circle (0.08);
\fi
%
% unicorn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@unicorn
- \fill[\duck@unicorn,rotate=25] (1.48,1.4375)--(1.60,1.9)--(1.72,1.4375);
- \fill[\duck@body!100,rotate=25] (1.50,1.43)--(1.60,1.8375)--(1.70,1.43);
+ \fill[\duck@unicorn,rotate=25] (1.48,1.4375)--(1.60,1.9)--(1.72,1.4375);
+ \fill[\duck@body!100,rotate=25] (1.50,1.43)--(1.60,1.8375)--(1.70,1.43);
\fi
%
% magic hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@magichat
- \path[preaction={fill, \duck@magichat!100},rotate=-5,
- pattern=fivepointed stars, pattern color=\duck@magicstars!100]
- (0.36,1.95)--(0.86,2.95)--(1.20,1.85);
+ \path[preaction={fill, \duck@magichat!100},rotate=-5,
+ pattern=fivepointed stars, pattern color=\duck@magicstars!100]
+ (0.36,1.95)--(0.86,2.95)--(1.20,1.85);
\fi
%
% witch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@witch
- \fill[\duck@witch,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17);
- \fill[\duck@witch,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2);
+ \fill[\duck@witch,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17);
+ \fill[\duck@witch,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2);
\fi
%
% crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@crown
- \path (0.7,1.95) rectangle (1.4,2.45);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@crown,rotate=-10,xshift=-10,yshift=3] \duckpathcrown;
- \end{pgfinterruptboundingbox}
+ \path (0.7,1.95) rectangle (1.4,2.45);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@crown] \duckpathcrown;
+ \end{pgfinterruptboundingbox}
+\fi
+%
+% Queen crown
+\ifduck@queencrown
+ \fill[\duck@queencrown] \duckpathqueencrown;
+\fi
+% King crown
+\ifduck@kingcrown
+ \fill[\duck@kingcrown] \duckpathkingcrown;
\fi
%
% Bunny ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@bunny
- \path (0.55,1.9) rectangle (1.2,2.55);
- \begin{pgfinterruptboundingbox}
- \begin{scope}
- \clip[rotate=-5] (0.68,2.38) ellipse (0.3 and 0.4);
- \fill[\duck@bunny,rotate=-5] (1.06,2.2) ellipse (0.3 and 0.4) (0.28,2.26) ellipse (0.3 and 0.4);
- \end{scope}
-
- \begin{scope}
- \clip[rotate=-5] (0.68,2.38) ellipse (0.25 and 0.35);
- \fill[\duck@inear,rotate=-5] (1.06,2.2) ellipse (0.25 and 0.35) (0.28,2.26) ellipse (0.25 and 0.35);
- \end{scope}
- \end{pgfinterruptboundingbox}
+ \path (0.55,1.9) rectangle (1.2,2.55);
+ \begin{pgfinterruptboundingbox}
+ \begin{scope}
+ \clip[rotate=-5] (0.68,2.38) ellipse (0.3 and 0.4);
+ \fill[\duck@bunny,rotate=-5] (1.06,2.2) ellipse (0.3 and 0.4) (0.28,2.26) ellipse (0.3 and 0.4);
+ \end{scope}
+
+ \begin{scope}
+ \clip[rotate=-5] (0.68,2.38) ellipse (0.25 and 0.35);
+ \fill[\duck@inear,rotate=-5] (1.06,2.2) ellipse (0.25 and 0.35) (0.28,2.26) ellipse (0.25 and 0.35);
+ \end{scope}
+ \end{pgfinterruptboundingbox}
\fi
%
% peaked cap %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@peakedcap
- \fill[\duck@peakedcap,rotate=-15] (0.35,2.05) ellipse (0.5 and 0.15);
- \fill[\duck@peakedcap,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17);
- \fill[\duck@peakedcap,rotate=-35] (-0.25,2.2) ellipse (0.55 and 0.17);
+ \fill[\duck@peakedcap,rotate=-15] (0.35,2.05) ellipse (0.5 and 0.15);
+ \fill[\duck@peakedcap,rotate=-25] (0.13,2.15) ellipse (0.5 and 0.17);
+ \fill[\duck@peakedcap,rotate=-35] (-0.25,2.2) ellipse (0.55 and 0.17);
\fi
%
% tophat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@tophat
- \fill[\duck@tophat,rotate=-15] (0.44,2.1) ellipse (0.48 and 0.1);
- \fill[\duck@tophat,rotate=-15] (0.12,2.1) -- (0.75,2.1) -- (0.81,2.55) -- (0.07,2.55) -- cycle;
- \fill[\duck@tophat,rotate=-15] (0.44,2.55) ellipse (0.37 and 0.08);
+ \fill[\duck@tophat,rotate=-15] (0.44,2.1) ellipse (0.48 and 0.1);
+ \fill[\duck@tophat,rotate=-15] (0.12,2.1) -- (0.75,2.1) -- (0.81,2.55) -- (0.07,2.55) -- cycle;
+ \fill[\duck@tophat,rotate=-15] (0.44,2.55) ellipse (0.37 and 0.08);
+\fi
+%
+% darth vader %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@darthvader
+ \path (0.1,0.1) rectangle (2.1,2.22);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@darthvader] \duckpathdarthvader;
+ \end{pgfinterruptboundingbox}
\fi
%
%\end{pgfonlayer}
@@ -580,186 +722,260 @@
% sunglasses %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@sunglasses
\fill[\duck@sunglasses,rotate=-17] (0.42,1.8) rectangle (0.8,1.84);
- \fill[\duck@sunglasses,rotate=-17] (0.12,1.8) rectangle (0.22,1.84);
- \fill[\duck@sunglasses,rotate=-20] (0.23,1.7675) circle (0.14);
- \fill[\duck@sunglasses,rotate=-20] (-0.06,1.74) circle (0.13);
+ \fill[\duck@sunglasses,rotate=-17] (0.12,1.8) rectangle (0.22,1.84);
+ \fill[\duck@sunglasses,rotate=-20] (0.23,1.7675) circle (0.14);
+ \fill[\duck@sunglasses,rotate=-20] (-0.06,1.74) circle (0.13);
\fi
%
% glasses %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@glasses
\fill[\duck@glasses,rotate=-17] (0.42,1.8) rectangle (0.8,1.84);
- \fill[\duck@glasses,rotate=-17] (0.12,1.8) rectangle (0.22,1.84);
- \fill[\duck@glasses,rotate=-20,even odd rule] (0.23,1.7675) circle (0.14) (0.23,1.7675) circle (0.11);
- \fill[\duck@glasses,rotate=-20,even odd rule] (-0.06,1.74) circle (0.13) (-0.06,1.74) circle (0.095);
+ \fill[\duck@glasses,rotate=-17] (0.12,1.8) rectangle (0.22,1.84);
+ \fill[\duck@glasses,rotate=-20,even odd rule] (0.23,1.7675) circle (0.14) (0.23,1.7675) circle (0.11);
+ \fill[\duck@glasses,rotate=-20,even odd rule] (-0.06,1.74) circle (0.13) (-0.06,1.74) circle (0.095);
+\fi
+%
+% square glasses
+\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;
\fi
%
% icecream %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@icecream
- \fill[\duck@cone,rotate=-20] (0.35,1.20)--(0.50,0.60)--(0.75,1.20);
- \fill[\duck@flavoura] (0.85,1.03) circle (0.12);
- \fill[\duck@flavourb] (1.05,0.95) circle (0.12);
- \fill[\duck@flavourc] (0.95,1.1) circle (0.12);
+ \fill[\duck@cone,rotate=-20] (0.35,1.20)--(0.50,0.60)--(0.75,1.20);
+ \fill[\duck@flavoura] (0.85,1.03) circle (0.12);
+ \fill[\duck@flavourb] (1.05,0.95) circle (0.12);
+ \fill[\duck@flavourc] (0.95,1.1) circle (0.12);
\fi
%
% book %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@book
- \fill[\duck@bookcolour,rotate=-20]
- (0.40,1.20) rectangle (0.80,0.60);
- \node[rotate=-20, color=white] at (0.88,0.70) {\duck@book};%
+ \fill[\duck@bookcolour,rotate=-20]
+ (0.40,1.20) rectangle (0.80,0.60);
+ \node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (0.88,0.70) {\duck@book};%
\fi
%
% signpost %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@signpost
- \fill[\duck@signcolour, rounded corners=1, rotate=-20] (0.8,0.75) rectangle (0.9,1.75);
- \fill[\duck@signcolour, rounded corners=1, rotate=-20] (0.4,1.7) rectangle (1.3,2.4);
- \fill[\duck@signback, rounded corners=1, rotate=-20] (0.45,1.75) rectangle (1.25,2.35);
- \node[rotate=-20, color=white] at (1.5,1.65) {\duck@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);
+ \node[rotate=-20*\yscalefactor/\xscalefactor, color=white] at (1.5,1.65) {\duck@signpost};
\fi
%
% speech bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@speech
- \fill[\duck@bubblecolour] (-0.5,1.8) ellipse (0.7 and 0.3);
- \fill[\duck@bubblecolour] (-0.2,1.54) -- (0.2,1.35) -- (0.0,1.6) -- cycle;
- \node at (-0.5,1.8) {\duck@speech};
+ \fill[\duck@bubblecolour] (-0.5,1.8) ellipse (0.7 and 0.3);
+ \fill[\duck@bubblecolour] (-0.2,1.54) -- (0.2,1.35) -- (0.0,1.6) -- cycle;
+ \node at (-0.5,1.8) {\duck@speech};
\fi
%
% think bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@think
- \fill[\duck@bubblecolour] (2,2.4) ellipse (0.7 and 0.35);
- \fill[\duck@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) {\duck@think};
+ \fill[\duck@bubblecolour] (2,2.4) ellipse (0.7 and 0.35);
+ \fill[\duck@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) {\duck@think};
\fi
%
% magic wand %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@magicwand
- \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);
+ \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);
\fi
%
% cricket bat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cricket
- \fill[\duck@cricket, rounded corners=2, rotate=-30] (0.4,1.2) rectangle (0.7,2.2);
- \fill[\duck@cricket, rounded corners=1, rotate=-30] (0.5,0.8) rectangle (0.6,1.3);
+ \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);
\fi
%
% rollingpin %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@rollingpin
- \fill[\duck@rollingpin, rounded corners=2, rotate=-60] (-0.18,0.85) rectangle (0.08,1.75);
- \fill[\duck@rollingpin, rounded corners=1, rotate=-60] (-0.1,0.65) rectangle (0.0,1.95);
+ \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);
\fi
%
% lightsaber %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@lightsaber
- \fill[\duck@lightsaber, rounded corners=1, rotate=-30] (0.5,0.9) rectangle (0.6,2.5);
- \fill[gray!80!black, rounded corners=1, rotate=-30] (0.47,0.7) rectangle (0.63,1.2);
+ \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);
\fi
%
% cake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cake
- \fill[\duck@cake] (1.00,0.50) ellipse (0.4 and 0.2);
- \fill[\duck@cake] (0.6,0.5) rectangle (1.4,0.7);
- \fill[\duck@cake] (1.00,0.70) ellipse (0.4 and 0.2);
- \fill[\duck@cake!50!white] (0.75,0.75) rectangle (0.8,0.95);
- \fill[\duck@cake!50!white] (1.2,0.75) rectangle (1.25,0.95);
- \fill[\duck@cake!50!white] (0.975,0.65) rectangle (1.025,0.85);
- \fill[white!85!yellow] (1.0,0.93) ellipse (0.03 and 0.06);
- \fill[white!85!yellow] (1.225,1.03) ellipse (0.03 and 0.06);
- \fill[white!85!yellow] (0.775,1.03) ellipse (0.03 and 0.06);
+ \fill[\duck@cake] (1.00,0.50) ellipse (0.4 and 0.2);
+ \fill[\duck@cake] (0.6,0.5) rectangle (1.4,0.7);
+ \fill[\duck@cake] (1.00,0.70) ellipse (0.4 and 0.2);
+ \fill[\duck@cake!50!white] (0.75,0.75) rectangle (0.8,0.95);
+ \fill[\duck@cake!50!white] (1.2,0.75) rectangle (1.25,0.95);
+ \fill[\duck@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);
\fi
%
% pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@pizza
- \fill[brown] (1.00,0.60) ellipse (0.4 and 0.2);
- \fill[red!70!black] (1.00,0.60) ellipse (0.34 and 0.16);
- \fill[white!85!yellow] (1.15,0.65) ellipse (0.065 and 0.04);
- \fill[white!85!yellow] (0.81,0.57) ellipse (0.065 and 0.04);
- \fill[white!85!yellow] (0.95,0.68) ellipse (0.065 and 0.04);
- \fill[white!85!yellow] (1.02,0.54) ellipse (0.065 and 0.04);
- \fill[green!40!brown] (1.09,0.54) ellipse (0.07 and 0.02);
- \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse (0.07 and 0.02);
- \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse (0.07 and 0.02);
- \fill[green!40!brown] (1.00,0.60) ellipse (0.03 and 0.06);
+ \fill[brown] (1.00,0.60) ellipse (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);
+\fi
+% no pizza %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@davidlikespineapplepizza
+ \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);
\fi
%
+%
+%
% Hockey stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@hockey
- \fill[\duck@hockey, rounded corners=1, rotate=-30] (0.5,0.6) rectangle (0.6,2.1);
- \fill[\duck@hockey, rounded corners=3] (0.2,0.2) rectangle (0.85,0.4);
+ \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);
\fi
%
% baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@baguette
- \fill[\duck@baguette!70!white, rounded corners=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);
+ \fill[\duck@baguette!70!white, rounded corners=\yscalefactor*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
%
% football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@football
- \fill[\duck@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}
+ \fill[\duck@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}
\fi
%
% milkshake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@milkshake
- \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[\duck@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);
+ \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[\duck@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);
\fi
%
% wine %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@wine
- \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[\duck@wine, rotate=-10] (0.8,1.1) ellipse (0.15 and 0.36);
- \end{scope}
+ \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[\duck@wine, rotate=-10] (0.8,1.1) ellipse (0.15 and 0.36);
+ \end{scope}
\fi
%
% prison duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@prison
- \fill[\duck@prison] (1.5,0.25) circle (0.3);
- \fill[\duck@prison, even odd rule] (1.2,0.1) ellipse (0.10 and 0.07) (1.2,0.1) ellipse (0.06 and 0.04) (1.05,-0.05) ellipse (0.10 and 0.07) (1.05,-0.05) ellipse (0.06 and 0.04) (0.87,-0.2) ellipse (0.10 and 0.07) (0.87,-0.2) ellipse (0.06 and 0.04);
- \fill[\duck@prison, even odd rule] (0.72,-0.2) ellipse (0.10 and 0.07) (0.72,-0.2) ellipse (0.06 and 0.04);
- \fill[\duck@prison,even odd rule,rotate=70](0.4,-1.05) ellipse (0.1 and 0.07) (0.4,-1.05) ellipse (0.06 and 0.04) (0.2,-0.95) ellipse (0.1 and 0.07) (0.2,-0.95) ellipse (0.06 and 0.04) (0.22,-0.58) ellipse (0.1 and 0.07) (0.22,-0.58) ellipse (0.06 and 0.04);
- \fill[\duck@prison,even odd rule,rotate=110](-0.33,-0.55) ellipse (0.1 and 0.07) (-0.33,-0.55) ellipse (0.06 and 0.04);
- \begin{scope}
- \clip[rotate=-12] (0.45,0.15) rectangle (0.63,0.25);
- \fill[\duck@prison,even odd rule,rotate=110](-0.07,-0.6) ellipse (0.1 and 0.07) (-0.07,-0.6) ellipse (0.06 and 0.04);
- \end{scope}
+ \fill[\duck@prison] (1.5,0.25) circle (0.3);
+ \fill[\duck@prison, even odd rule] (1.2,0.1) ellipse (0.10 and 0.07) (1.2,0.1) ellipse (0.06 and 0.04) (1.05,-0.05) ellipse (0.10 and 0.07) (1.05,-0.05) ellipse (0.06 and 0.04) (0.87,-0.2) ellipse (0.10 and 0.07) (0.87,-0.2) ellipse (0.06 and 0.04);
+ \fill[\duck@prison, even odd rule] (0.72,-0.2) ellipse (0.10 and 0.07) (0.72,-0.2) ellipse (0.06 and 0.04);
+ \fill[\duck@prison,even odd rule,rotate=70](0.4,-1.05) ellipse (0.1 and 0.07) (0.4,-1.05) ellipse (0.06 and 0.04) (0.2,-0.95) ellipse (0.1 and 0.07) (0.2,-0.95) ellipse (0.06 and 0.04) (0.22,-0.58) ellipse (0.1 and 0.07) (0.22,-0.58) ellipse (0.06 and 0.04);
+ \fill[\duck@prison,even odd rule,rotate=110](-0.33,-0.55) ellipse (0.1 and 0.07) (-0.33,-0.55) ellipse (0.06 and 0.04);
+ \begin{scope}
+ \clip[rotate=-12] (0.45,0.15) rectangle (0.63,0.25);
+ \fill[\duck@prison,even odd rule,rotate=110](-0.07,-0.6) ellipse (0.1 and 0.07) (-0.07,-0.6) ellipse (0.06 and 0.04);
+ \end{scope}
\fi
%
% torch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@torch
- \fill[red!50!yellow, xscale=0.015, yscale=-0.015,xshift=130,yshift=-5600] \duckpathtorch;
- \fill[red!25!yellow, xscale=0.01, yscale=-0.01,xshift=1300,yshift=-6600] \duckpathtorch;
- \fill[white!50!yellow, xscale=0.006, yscale=-0.006,xshift=3700,yshift=-8600] \duckpathtorch;
- \fill[\duck@torch,rounded corners=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);
+ \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]
+ (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);
+\fi%
+%
+% sheep %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@sheep
+ \begin{scope}
+ \clip[rotate=-5] (1.2,1.7) ellipse (0.3 and 0.4);
+ \fill[\duck@bill,rotate=-5] (0.8,1.5) ellipse (0.3 and 0.4);
+ \end{scope}
+\fi
+%
+% basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@basket
+ \fill[\duck@basket, start angle=180, end angle=360, x radius=0.35, y radius=0.35] (0.65,0.61) arc -- cycle;
+ \fill[\duck@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[\duck@basket, even odd rule] (1,0.6) ellipse (0.35 and 0.1) (1,0.6) ellipse (0.3 and 0.07);
+ \fill[\duck@basket!75!black] (1,0.6) ellipse (0.3 and 0.07);
+\fi%
+%
+% easter basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@easter
+ \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[\duck@eggb, rotate=-5] (0.95,0.72) ellipse (0.09 and 0.13);
+ \fill[\duck@egga, rotate=10] (0.94,0.42) ellipse (0.09 and 0.13);
+ \fill[\duck@eggc, rotate=-30] (0.7,1.08) ellipse (0.09 and 0.13);
+ \end{scope}
\fi%
%
+% horse tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\pgfkeys{/duck/horsetail/.@def/.get=\duck@test}
+\ifx\duck@horsetail\duck@test
+ \ifdefined\duck@hair\let\duck@horsetail=\duck@hair\fi
+\fi%
+\ifduck@horsetail
+ \path (0.1,0.1) rectangle (2.82,2.14);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@horsetail] \duckpathhorsetail;
+ \end{pgfinterruptboundingbox}
+\fi
+%
+% crozier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@crozier
+ \begin{scope}
+ \clip [rotate=-20] (0.6,2.3) rectangle (1.1,1.999);
+ \fill[even odd rule,\duck@crozier] (1.5,1.6) circle (0.2) (1.5,1.6) circle (0.1);
+ \end{scope}
+ \fill[\duck@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);
+\fi
%
%\draw (current bounding box.north west) rectangle (current bounding box.south east);% For debugging bounding boxes
%
+%\end{scope}
}% from `\def\duck@draw{` at the very beginning
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -767,17 +983,18 @@
% Random ducks
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\pgfmathsetseed{\time}
-\ifpdf % filters pdflatex and lualatex
- \ifluatex
- \pgfmathsetseed{\number\randomseed}
- \else % filters only pdflatex
- \pgfmathsetseed{\number\pdfrandomseed}
- \fi
+\ifluatex
+ \let\pdfrandomseed\randomseed
\fi
-\pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}}
-\pgfmathdeclarerandomlist{accessories}{{glasses}{sunglasses}{icecream}{book}{signpost}{magicwand}{cricket}{rollingpin}{lightsaber}{cake}{pizza}{hockey}{baguette}{football}{mask}{necklace}{milkshake}{wine}{prison}}
+\ifxetex
+ \pgfmathsetseed{\time}
+\else
+ \pgfmathsetseed{\number\pdfrandomseed}
+\fi
+
+\pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{mohican}{mullet}{beard}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}{queencrown}{kingcrown}}
+\pgfmathdeclarerandomlist{accessories}{{glasses}{sunglasses}{icecream}{book}{signpost}{magicwand}{cricket}{rollingpin}{lightsaber}{cake}{pizza}{hockey}{baguette}{football}{mask}{necklace}{milkshake}{wine}{prison}{cape}{torch}{crozier}{easter}}
\newcommand{\shuffleducks}{%
\pgfmathrandomitem{\head}{head}%
@@ -787,8 +1004,8 @@
}
\newcommand{\randuck}{%
- \shuffleducks%
- \duck[\randomhead, \randomaccessories]%
+ \shuffleducks%
+ \duck[\randomhead, \randomaccessories]%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -802,110 +1019,207 @@
% body parts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\duckpathbody}{%
- (0.513,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
+ (0.513,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
(0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) ..
(1.818,1.419) .. controls (0.938, 0.946) and ( 1.240,1.379) ..
(0.513,1.145) -- cycle
}
\newcommand{\duckpathgrumpybill}{%
- (0.406,1.472) .. controls (0.643,1.530) and (0.643,1.530) ..
- (0.800,1.300) .. controls (0.083,0.850) and (0.269,1.369) ..
- (0.406,1.472) -- cycle
+ (0.406,1.472) .. controls (0.643,1.530) and (0.643,1.530) ..
+ (0.800,1.300) .. controls (0.083,0.850) and (0.269,1.369) ..
+ (0.406,1.472) -- cycle
}
\newcommand{\duckpathbill}{%
- (0.406,1.472) .. controls (0.643,1.530) and (0.541,1.303) ..
- (0.910,1.370) .. controls (0.083,0.850) and (0.269,1.369) ..
- (0.406,1.472) -- cycle
+ (0.406,1.472) .. controls (0.643,1.530) and (0.541,1.303) ..
+ (0.910,1.370) .. controls (0.083,0.850) and (0.269,1.369) ..
+ (0.406,1.472) -- cycle
}
% clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\duckpathtshirt}{%
- (0.490,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
- (0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) ..
- (1.818,1.419) .. controls (0.938, 0.976) and ( 1.240,1.279) ..
- (0.590,1.000) -- cycle
+ (0.490,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
+ (0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) ..
+ (1.818,1.419) .. controls (0.938, 0.976) and ( 1.240,1.279) ..
+ (0.590,1.000) -- cycle
}
\newcommand{\duckpathjacket}{%
- (0.500,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
- (0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) ..
- (1.818,1.419) .. controls (0.938, 0.946) and ( 1.240,1.378) ..
- (0.513,0.700) -- cycle
+ (0.500,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) ..
+ (0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) ..
+ (1.818,1.419) .. controls (0.938, 0.946) and ( 1.240,1.378) ..
+ (0.513,0.700) -- cycle
}
% hair styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\duckpathshorthair}{%
- (1.3947,1.4175) .. controls (1.4546,1.4518) and (1.4699,1.6566) ..
- (1.4343,1.7992) .. controls (1.2528,2.5033) and (0.2339,2.2710) ..
- (0.4151,1.5907) .. controls (0.4345,1.8709) and (0.7421,2.0999) ..
- (0.9494,1.9054) .. controls (1.2241,1.6476) and (1.3316,1.3814) ..
- (1.3947,1.4175) -- cycle
+ (1.3947,1.4175) .. controls (1.4546,1.4518) and (1.4699,1.6566) ..
+ (1.4343,1.7992) .. controls (1.2528,2.5033) and (0.2339,2.2710) ..
+ (0.4151,1.5907) .. controls (0.4345,1.8709) and (0.7421,2.0999) ..
+ (0.9494,1.9054) .. controls (1.2241,1.6476) and (1.3316,1.3814) ..
+ (1.3947,1.4175) -- cycle
}
\newcommand{\duckpathlonghair}{%
- (1.4508,0.7565) .. controls (1.5146,0.7888) and (1.5854,0.8216) ..
- (1.6247,0.8831) .. controls (1.5859,0.8847) and (1.4726,0.9457) ..
- (1.5587,0.9706) .. controls (1.6317,0.9685) and (1.7016,1.0046) ..
- (1.7314,1.0734) .. controls (1.7931,1.1660) and (1.6616,1.1176) ..
- (1.6277,1.1566) .. controls (1.6853,1.1741) and (1.7840,1.1829) ..
- (1.8123,1.2244) .. controls (1.7022,1.2488) and (1.5688,1.2663) ..
- (1.5063,1.3739) .. controls (1.4619,1.5143) and (1.4696,1.6649) ..
- (1.4340,1.8076) .. controls (1.2524,2.5117) and (0.2335,2.2794) ..
- (0.4060,1.5991) .. controls (0.4341,1.8793) and (0.6629,2.1130) ..
- (0.9011,1.9578) .. controls (1.2427,1.7382) and (1.3350,1.4214) ..
- (1.0905,1.0610) .. controls (1.0597,1.0109) and (1.1103,0.9166) ..
- (1.1805,0.8670) .. controls (1.2507,0.8174) and (1.3503,0.7853) ..
- (1.4508,0.7565) -- cycle;
+ (1.4508,0.7565) .. controls (1.5146,0.7888) and (1.5854,0.8216) ..
+ (1.6247,0.8831) .. controls (1.5859,0.8847) and (1.4726,0.9457) ..
+ (1.5587,0.9706) .. controls (1.6317,0.9685) and (1.7016,1.0046) ..
+ (1.7314,1.0734) .. controls (1.7931,1.1660) and (1.6616,1.1176) ..
+ (1.6277,1.1566) .. controls (1.6853,1.1741) and (1.7840,1.1829) ..
+ (1.8123,1.2244) .. controls (1.7022,1.2488) and (1.5688,1.2663) ..
+ (1.5063,1.3739) .. controls (1.4619,1.5143) and (1.4696,1.6649) ..
+ (1.4340,1.8076) .. controls (1.2524,2.5117) and (0.2335,2.2794) ..
+ (0.4060,1.5991) .. controls (0.4341,1.8793) and (0.6629,2.1130) ..
+ (0.9011,1.9578) .. controls (1.2427,1.7382) and (1.3350,1.4214) ..
+ (1.0905,1.0610) .. controls (1.0597,1.0109) and (1.1103,0.9166) ..
+ (1.1805,0.8670) .. controls (1.2507,0.8174) and (1.3503,0.7853) ..
+ (1.4508,0.7565) -- cycle;
}
\newcommand{\duckpathcrazyhair}{%
- (0.1977,1.9023) .. controls (0.2633,2.0599) and (0.4819,2.0547) ..
- (0.4713,2.0879) .. controls (0.4647,2.2106) and (0.2516,2.2392) ..
- (0.2516,2.2392) .. controls (0.4352,2.2933) and (0.7427,1.9304) ..
- (0.5743,2.3885) .. controls (0.6017,2.3633) and (0.8307,2.1739) ..
- (0.8082,2.4245) .. controls (0.8271,2.2885) and (0.9195,2.2400) ..
- (0.9933,2.2673) .. controls (1.0814,2.6593) and (0.9688,2.0034) ..
- (1.3350,2.3615) .. controls (1.3657,2.3292) and (1.1627,2.1043) ..
- (1.3424,2.1387) .. controls (1.3102,1.8312) and (1.5049,2.2623) ..
- (1.5049,2.2623) .. controls (1.5049,2.2623) and (1.4675,2.0493) ..
- (1.4287,1.9560) .. controls (1.4287,1.9560) and (1.6830,1.9470) ..
- (1.7178,1.8823) .. controls (1.1926,1.8054) and (2.0160,1.7277) ..
- (1.4923,1.7275) .. controls (1.5366,1.6685) and (1.3013,1.6009) ..
- (1.6500,1.5946) .. controls (0.8836,1.5797) and (1.2764,1.9221) ..
- (0.8957,2.0442) .. controls (0.5516,2.0958) and (0.5228,1.8527) ..
- (0.4695,1.7963) .. controls (0.4825,1.9607) and (0.3601,1.9095) ..
- (0.1977,1.9023) -- cycle
+ (0.1977,1.9023) .. controls (0.2633,2.0599) and (0.4819,2.0547) ..
+ (0.4713,2.0879) .. controls (0.4647,2.2106) and (0.2516,2.2392) ..
+ (0.2516,2.2392) .. controls (0.4352,2.2933) and (0.7427,1.9304) ..
+ (0.5743,2.3885) .. controls (0.6017,2.3633) and (0.8307,2.1739) ..
+ (0.8082,2.4245) .. controls (0.8271,2.2885) and (0.9195,2.2400) ..
+ (0.9933,2.2673) .. controls (1.0814,2.6593) and (0.9688,2.0034) ..
+ (1.3350,2.3615) .. controls (1.3657,2.3292) and (1.1627,2.1043) ..
+ (1.3424,2.1387) .. controls (1.3102,1.8312) and (1.5049,2.2623) ..
+ (1.5049,2.2623) .. controls (1.5049,2.2623) and (1.4675,2.0493) ..
+ (1.4287,1.9560) .. controls (1.4287,1.9560) and (1.6830,1.9470) ..
+ (1.7178,1.8823) .. controls (1.1926,1.8054) and (2.0160,1.7277) ..
+ (1.4923,1.7275) .. controls (1.5366,1.6685) and (1.3013,1.6009) ..
+ (1.6500,1.5946) .. controls (0.8836,1.5797) and (1.2764,1.9221) ..
+ (0.8957,2.0442) .. controls (0.5516,2.0958) and (0.5228,1.8527) ..
+ (0.4695,1.7963) .. controls (0.4825,1.9607) and (0.3601,1.9095) ..
+ (0.1977,1.9023) -- cycle
}
\newcommand{\duckpathrecedinghair}{%
- (1.3385,1.4841) .. controls (1.4243,1.4529) and (1.4877,1.7127) ..
- (1.3964,1.8658) .. controls (1.1071,2.3511) and (0.5189,2.1609) ..
- (0.4381,1.6816) .. controls (0.4575,1.9618) and (0.9007,2.2059) ..
- (1.1308,2.0390) .. controls (1.4703,1.7469) and (1.0343,1.5949) ..
- (1.3385,1.4841) -- cycle
+ (1.3385,1.4841) .. controls (1.4243,1.4529) and (1.4877,1.7127) ..
+ (1.3964,1.8658) .. controls (1.1071,2.3511) and (0.5189,2.1609) ..
+ (0.4381,1.6816) .. controls (0.4575,1.9618) and (0.9007,2.2059) ..
+ (1.1308,2.0390) .. controls (1.4703,1.7469) and (1.0343,1.5949) ..
+ (1.3385,1.4841) -- cycle
+}
+
+\newcommand{\duckpathmohican}{%
+ (0.7632,1.7935) .. controls (0.9223,2.3084) and (1.3870,1.8580) ..
+ (1.3920,1.5854) .. controls (1.4233,2.1466) and (0.6812,2.5808) ..
+ (0.6725,1.8166) .. controls (0.6725,1.8166) and (0.7615,1.7926) ..
+ (0.7632,1.7935) -- cycle
+}
+
+\newcommand{\duckpathmullet}{%
+ (1.3723,1.2684) .. controls (1.3723,1.2684) and (1.5129,1.5571) ..
+ (1.4435,1.7815) .. controls (1.2652,2.3572) and (0.3342,2.2633) ..
+ (0.4106,1.5424) .. controls (0.4204,1.6825) and (0.5692,1.9195) ..
+ (0.5692,1.9195) .. controls (0.5692,1.9195) and (0.8475,1.8402) ..
+ (1.1031,1.7844) .. controls (1.0808,1.6260) and (1.1130,1.4754) ..
+ (1.1130,1.4754) .. controls (1.1956,1.4198) and (1.3001,1.3369) ..
+ (1.3723,1.2684) -- cycle
+}
+
+% Acessoires %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newcommand{\duckpathqueencrown}{%
+ (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
+}
+
+\newcommand{\duckpathkingcrown}{%
+ (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
+}
+
+\newcommand{\duckpathdarthvader}{%
+ (0.4264,1.9092) .. controls (0.4347,1.9248) and (0.4612,1.9186) ..
+ (0.4969,1.9783) .. controls (0.5499,2.0670) and (0.7559,2.2377) ..
+ (0.9889,2.2057) .. controls (1.2691,2.1668) and (1.4075,1.8829) ..
+ (1.4176,1.7421) .. controls (1.4279,1.5955) and (1.5246,1.3484) ..
+ (1.5246,1.3484) --
+ (0.9846,1.2036) .. controls (1.0898,1.2735) and (1.0667,1.5598) ..
+ (1.0555,1.6034) .. controls (0.9758,1.9147) and (0.8121,1.8681) ..
+ (0.7174,1.7694) .. controls (0.5671,2.0370) and (0.4103,1.7556) ..
+ (0.4132,1.472) --
+ (0.3529,1.415) .. controls (0.3529,1.43938) and (0.3893,1.8379)..
+ (0.4264,1.9092) -- cycle
+}
+
+\newcommand{\duckpathhorsetail}{%
+ (1.7248,1.3553) .. controls (2.0530,1.3369) and (2.1427,1.1604) ..
+ (2.2915,0.9970) .. controls (2.4759,0.7946) and (2.9531,0.8890) ..
+ (2.7668,0.9003) .. controls (2.4670,0.9184) and (2.5158,1.1488) ..
+ (2.3907,1.3152) .. controls (2.2788,1.4641) and (1.9414,1.5945) ..
+ (1.7248,1.3553) -- cycle
}
\newcommand{\duckpathcape}{%
- (0.225,0.966) .. controls (1.314,0.961) and (2.070,0.650) .. (2.042,1.245) .. controls (1.863,1.164) and (1.844,1.173) .. (1.792,1.340) .. controls (1.635,1.235) and (1.620,1.268) .. (1.567,1.393) .. controls (1.358,1.086) and (0.664,1.096) .. (0.460,1.110) .. controls (0.461,1.133) and (0.305,1.077) .. (0.235,0.966) -- cycle
+ (0.225,0.966) .. controls (1.314,0.961) and (2.070,0.650) ..
+ (2.042,1.245) .. controls (1.863,1.164) and (1.844,1.173) ..
+ (1.792,1.340) .. controls (1.635,1.235) and (1.620,1.268) ..
+ (1.567,1.393) .. controls (1.358,1.086) and (0.664,1.096) ..
+ (0.460,1.110) .. controls (0.461,1.133) and (0.305,1.077) ..
+ (0.235,0.966) -- cycle
}
\newcommand{\duckpathcrown}{%
- (0.71,2.06) .. controls (0.71,2.06) and (0.73,2.18) ..
- (0.60,2.45) -- (0.83,2.26) -- (0.95,2.44) -- (1.07,2.26) -- (1.31,2.44) .. controls (1.15,2.19) and (1.20,2.06) ..
- (1.20,2.06) .. controls (1.07,1.98) and (0.84,1.98) ..
- (0.71,2.06) -- cycle
+ (0.7365,2.0616) .. controls (0.7365,2.0616) and (0.7771,2.1763) ..
+ (0.6959,2.4650) -- (0.8895,2.2378) -- (1.0391,2.3943) --
+ (1.1260,2.1961) --
+ (1.3938,2.3318) .. controls (1.1927,2.1132) and (1.2194,1.9764) ..
+ (1.2194,1.9764) .. controls (1.0774,1.9202) and (0.8507,1.9601) ..
+ (0.7365,2.0616) -- cycle;
}
\newcommand{\duckpathtorch}{%
- (90.5,127.8) .. controls (90.3,137.0) and (84.7,136.2) ..
- (77.9,146.3) .. controls (71.1,136.3) and (66.4,136.9) ..
- (65.9,127.9) .. controls (65.2,118.1) and (79.2,118.5) ..
- (78.2,103.8) .. controls (82.2,108.8) and (90.8,111.5) ..
- (90.5,127.8) -- cycle;
+ (1.4338,1.0258) .. controls (1.4308,0.8877) and (1.3468,0.8997) ..
+ (1.2447,0.7481) .. controls (1.1427,0.8982) and (1.0721,0.8892) ..
+ (1.0646,1.0243) .. controls (1.0541,1.1714) and (1.2642,1.1654) ..
+ (1.2492,1.3860) .. controls (1.3093,1.3110) and (1.4383,1.2705) ..
+ (1.4338,1.0258) -- cycle;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -950,48 +1264,48 @@
%
% stripes for sports jerseys
%
-% code contributed by Carla Maggi
+% code contributed by Carla Maggi
% https://tex.stackexchange.com/a/387126/36296
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand*{\stripes}[1][]{\tikzset{%
- /stripes/.cd,#1}\stripes@draw%
+ /stripes/.cd,#1}\stripes@draw%
}
\tikzset{
- /stripes/.cd,
- color/.code = \def\stripes@color{#1},
- distance/.code = \def\stripes@distance{#1},
- width/.code = \def\stripes@width{#1},
- height/.code = \def\stripes@height{#1},
- initialx/.code = \def\stripes@initialx{#1},
- initialy/.code = \def\stripes@initialy{#1},
- rotate/.code = \def\stripes@rotate{#1},
- emblem/.code = \def\stripes@emblem{#1},
- % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- color = black,
- distance = 0.3,
- width = 0.15,
- height = 2.7,
- initialx = 0.1,
- initialy = -0.3,
- rotate = -10,
- emblem = \empty
+ /stripes/.cd,
+ color/.code = \def\stripes@color{#1},
+ distance/.code = \def\stripes@distance{#1},
+ width/.code = \def\stripes@width{#1},
+ height/.code = \def\stripes@height{#1},
+ initialx/.code = \def\stripes@initialx{#1},
+ initialy/.code = \def\stripes@initialy{#1},
+ rotate/.code = \def\stripes@rotate{#1},
+ emblem/.code = \def\stripes@emblem{#1},
+ % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ color = black,
+ distance = 0.3,
+ width = 0.15,
+ height = 2.7,
+ initialx = 0.1,
+ initialy = -0.3,
+ rotate = -10,
+ emblem = \empty
}
\def\stripes@draw{%
- \path (0.1,0.1) rectangle (2.1,1.45);
- \begin{pgfinterruptboundingbox}
- \begin{scope}
- \clip \duckpathjacket;
- \foreach \shifta in {0,\stripes@distance,...,2.4}{%
- \fill[\stripes@color,rotate around={\stripes@rotate:(1.2,0.9)}]
- ($(\stripes@initialx,\stripes@initialy)+(\shifta,0)$) rectangle ($(\stripes@initialx,\stripes@initialy)+(\shifta,0)+(\stripes@width,\stripes@height)$);
- }
- \end{scope}
- \end{pgfinterruptboundingbox}
- \node at (wing) {\stripes@emblem };
+ \path (0.1,0.1) rectangle (2.1,1.45);
+ \begin{pgfinterruptboundingbox}
+ \begin{scope}
+ \clip \duckpathjacket;
+ \foreach \shifta in {0,\stripes@distance,...,2.4}{%
+ \fill[\stripes@color,rotate around={\stripes@rotate:(1.2,0.9)}]
+ ($(\stripes@initialx,\stripes@initialy)+(\shifta,0)$) rectangle ($(\stripes@initialx,\stripes@initialy)+(\shifta,0)+(\stripes@width,\stripes@height)$);
+ }
+ \end{scope}
+ \end{pgfinterruptboundingbox}
+ \node at (wing) {\stripes@emblem };
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%.........................%%%%%%%%%%%%%%%%%%%.........................
@@ -1028,4 +1342,4 @@
%................%%%%%%%%.................%%%...%%%%%%................
%....................%%%%%%%%......%%%%%%%%%%%%%%%....................
%..........................%%%%%%%%%%%%%%%%%..........................
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
new file mode 100644
index 00000000000..df926510254
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
@@ -0,0 +1,27 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% TikZ library for the tikzducks package
+% A package to bring rubber ducks into tikz
+% Maintained by samcarter
+%
+% Project repository and bug tracker:
+% https://github.com/samcarter8/tikzducks
+%
+% Released under the LaTeX Project Public License v1.3c or later
+% See http://www.latex-project.org/lppl.txt
+%
+% Version 0.6
+% April 04, 2018
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\usepackage{tikzducks}
+
+% This is all that is needed ...
+\tikzset{
+ duck/.pic={%
+ \duck@draw
+ },
+ duck/.search also={,/tikz,/pgf},
+}
+
+