diff options
author | Karl Berry <karl@freefriends.org> | 2020-01-03 22:15:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-01-03 22:15:44 +0000 |
commit | 82b4ea140835f4a222bf33969065de43c75dd5a2 (patch) | |
tree | 036f16c02bbfe28c69817eb6f2b23900e74f92d8 /Master/texmf-dist | |
parent | 4bfb02eb16018b2a9105dc3439cccaca07ad0ff5 (diff) |
tikzducks (3jan20)
git-svn-id: svn://tug.org/texlive/trunk@53312 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/tikzducks/README.md | 26 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf | bin | 561804 -> 439733 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex | 451 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty | 359 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex | 3 |
5 files changed, 298 insertions, 541 deletions
diff --git a/Master/texmf-dist/doc/latex/tikzducks/README.md b/Master/texmf-dist/doc/latex/tikzducks/README.md index 50f28440357..248ed49d42f 100644 --- a/Master/texmf-dist/doc/latex/tikzducks/README.md +++ b/Master/texmf-dist/doc/latex/tikzducks/README.md @@ -1,29 +1,11 @@ -# Tikzducks +# TikZducks -This is a little LaTeX package for ducks to be used in TikZ pictures. The project is a continuation of https://tex.stackexchange.com/a/347458/36296 +This is a little LaTeX package for ducks to be used in TikZ pictures. The project is a continuation of the TeX.Stackexchange.com answer [How can we draw a duck](https://tex.stackexchange.com/a/347458/36296) This project is licensed under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt -The project repository, including a bug tracker, can be found at https://github.com/samcarter/tikzducks/issues - -![This repository has an official duck seal of approval](https://i.stack.imgur.com/mSAtL.png) - ## A few examples: -![tikz ducks](https://user-images.githubusercontent.com/8226363/33049537-e71e9dd0-ce60-11e7-8b4c-7e1de0177f14.png) - -## Video showcases - -There are several videos featuring the TikZducks, kindly contributed by Ulrike and Gert Fischer, Carla Maggi, Paulo Cereda and Prof. van Duck - many thanks to you all! - -[![The great TikZducks Christmas Extravaganza 2017](https://user-images.githubusercontent.com/8226363/43651585-1281b074-9743-11e8-97f5-bf70617738a5.png)](https://vimeo.com/246256860) -[![International Pizza Day](https://user-images.githubusercontent.com/8226363/43651587-12c92daa-9743-11e8-83b5-7fd3a3ac19a3.png)](https://vimeo.com/254643482) -[![Happy Groundhog Day](https://user-images.githubusercontent.com/8226363/43651589-12e84334-9743-11e8-9621-d5e6e53a0ca8.png)](https://vimeo.com/252719006) -[![Aquarela with TikZducks](https://user-images.githubusercontent.com/8226363/43651586-12a6c008-9743-11e8-99d2-5a66e7f5f1ee.png)](https://vimeo.com/270727100) -[![Saint Crispin's Day](https://user-images.githubusercontent.com/43832342/47496794-37d18600-d858-11e8-9e6e-777ffee1acdc.png)](https://vimeo.com/295353434) -[![James Bond](https://user-images.githubusercontent.com/43832342/47496795-37d18600-d858-11e8-8c0c-20ea2d0a23cd.png)](https://vimeo.com/284348495) -[![The great TikZlings Christmas Extravaganza 2018](https://user-images.githubusercontent.com/43832342/49704004-3cd27500-fc0d-11e8-9002-319a8e71aca7.png)](https://vimeo.com/305374856) - - +![tikz ducks](https://user-images.githubusercontent.com/43832342/71718547-d160d400-2e1b-11ea-8bae-39cc4b648771.png) -The source code for the "The great TikZducks Christmas Extravaganza 2017" is available in https://github.com/cereda/duck-extravaganza, for "The great TikZlings Christmas Extravaganza 2018" it can be found at https://github.com/samcarter/Extravanganza2018 . +More examples of TikZducks can be seen at https://github.com/samcarter/tikzducks/
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf Binary files differindex ba529426bbb..cbcdb1bb3af 100644 --- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf +++ b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex index afc66143077..34de5f9863a 100644 --- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex +++ b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex @@ -10,9 +10,6 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.1 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[parskip=half]{scrartcl} @@ -24,7 +21,7 @@ \usepackage{tikzducks} \usetikzlibrary{ducks} \usepackage[most]{tcolorbox} -\usepackage[paper=a4paper,margin=3cm]{geometry} +\usepackage[paper=a4paper,margin=3cm,foot=2cm]{geometry} \usepackage{url} \usepackage{xspace} \usepackage{scrlayer-scrpage} @@ -56,7 +53,7 @@ commentstyle={\color{green!50!black}\slshape}, columns=fullflexible, emphstyle=\color{orange!70!black}, - emph=[1]{water,body,head,eye,pupil,bill,grumpy,tshirt,jacket,tie,cape,shorthair,longhair,crazyhair,recedinghair,eyebrow,beard,glasses,sunglasses,alien,hat,cap,santa,chef,cheese,graduate,tassel,beret,crown,unicorn,icecream,flavoura,flavourb,flavourc,book,bookcolour,signpost,signcolour,signback,magichat,magicstars,magicwand,witch,cricket,rollingpin,lightsaber,torch,cake,pizza,hockey,baguette,wing,football,mask,bunny,inear,necklace,milkshake,wine,peakedcap,prison,tophat,speech,bubblecolour,think,buttons,sheep,squareglasses,tail,basket,easter,egga,eggb,eggc,mohican,mullet,horsetail,darthvader,crozier,queencrown,kingcrown,wing,laughing,parrot,stethoscope,niuqelrah,harlequin,neckerchief,woggle,snowduck,invisible,strawhat,ribbon,vampire,parting,crystalball,helmet,shovel,pickaxe,bowtie,lapel,umbrella,umbrellaclosed,handbag,cocktail,viking,devil}, + emph=[1]{water,body,head,eye,pupil,bill,grumpy,tshirt,jacket,tie,cape,shorthair,longhair,crazyhair,recedinghair,eyebrow,beard,glasses,sunglasses,alien,hat,cap,santa,chef,cheese,graduate,tassel,beret,crown,unicorn,icecream,flavoura,flavourb,flavourc,book,bookcolour,signpost,signcolour,signback,magichat,magicstars,magicwand,witch,cricket,rollingpin,lightsaber,torch,cake,pizza,hockey,baguette,wing,football,mask,bunny,inear,necklace,milkshake,wine,peakedcap,prison,tophat,speech,bubblecolour,think,buttons,sheep,squareglasses,tail,basket,easter,egga,eggb,eggc,mohican,mullet,horsetail,darthvader,crozier,queencrown,kingcrown,wing,laughing,parrot,stethoscope,niuqelrah,harlequin,neckerchief,woggle,snowduck,invisible,strawhat,ribbon,vampire,parting,crystalball,helmet,shovel,pickaxe,bowtie,lapel,umbrella,umbrellaclosed,handbag,cocktail,viking,devil,aodai,conicalhat,overleaf}, texcsstyle=*\color{duckblue}\bfseries, keywordstyle=\color{red!60!black}\bfseries, morekeywords={tikzpicture,picture,scope,patterns,calc,pgfinterruptboundingbox}, @@ -86,7 +83,7 @@ \pgfkeys{/duck/|stripes|/.style={stripes={#1}}} \pgfmathsetseed{2} -\setlength{\footheight}{45pt} +\setlength{\footheight}{41pt} \newlength{\duckoffset} \cfoot{% @@ -119,7 +116,7 @@ \url{https://github.com/samcarter/tikzducks}\\ \url{https://www.ctan.org/pkg/tikzducks} }{samcarter}} -\date{Version 1.1 -- \today} +\date{Version v1.3 \textendash{} 2020/01/03} \begin{document} \maketitle @@ -156,7 +153,9 @@ Andrew Stacey contributed the \TikZ Library ``ducks'', % \href{https://tex.stackexchange.com/users/148434/mihikma}{Mihikma} created the duck's beard, % -\href{https://github.com/yudai-nkt}{Yudai Nakata} helped with problems of \lstinline|\pdfrandomseed| +\href{https://github.com/yudai-nkt}{Yudai Nakata} helped with problems of \lstinline|\pdfrandomseed|, +% +@marmot for his seemingly infinite knowledge of \TikZ which he shared with the world on TeX.SE % and last but not least my thanks go to \href{https://tex.stackexchange.com/users/5763/martin-schr%c3%b6der}{Martin Schr\"oder} for his feedback to the code review. @@ -167,10 +166,10 @@ The ducks mostly consist of basic geometric shapes drawn in \TikZ. Some of the m The \tikzducks package loads \TikZ, which in turn loads the \lstinline|xcolor| package (amongst others). If you require one of these packages to be loaded with some option, please consider loading it yourself before the \tikzducks package or use, e.g. -\begin{lstlisting}[aboveskip=0em,morekeywords={xcolor,svgnames}] +\begin{lstlisting}[morekeywords={xcolor,svgnames}] \PassOptionsToPackage{svgnames}{xcolor} \end{lstlisting} -It also uses the \lstinline|\usetikzlibrary{patterns}| and \lstinline|\usetikzlibrary{calc}|. Furthermore the packages \lstinline|ifpdf| and \lstinline|ifluatex| are necassary starting with version 0.5 of this package. +It also uses the \lstinline|\usetikzlibrary{patterns}| and \lstinline|\usetikzlibrary{calc}|. \subsection{License} @@ -246,6 +245,16 @@ To make the usage easier for the \TikZ-savvy users, Andrew Stacey contributed a \end{tikzpicture} \end{tcolorbox} +For everybody suffering from anatidaephobia, there is also a special option to not draw the duck: +\begin{tcblisting}{title={Invisible duck}} +\begin{tikzpicture} + \duck[invisible] +\end{tikzpicture} +\end{tcblisting} + +This can also be useful to recycle some of the accessories presented in \ref{sec:accessories}. + +\clearpage For the \TeX{} purists, there is also a picture mode variant: { @@ -257,7 +266,6 @@ For the \TeX{} purists, there is also a picture mode variant: \end{tcblisting} } -\clearpage \subsection{Body parts} The various parts of the duck can also be coloured independently, i.e.\ \lstinline|body|, \lstinline|head| or \lstinline|bill|: @@ -300,42 +308,50 @@ Furthermore using the keywords \lstinline|grumpy|, \lstinline|laughing| or \lsti \end{tikzpicture} \end{tcblisting} -For everybody suffering from anatidaephobia, there is also a special option to not draw the duck: -\begin{tcblisting}{title={Invisible duck}} -\begin{tikzpicture} - \duck[invisible] -\end{tikzpicture} -\end{tcblisting} -This can also be useful to recycle some of the accessories presented in \ref{sec:accessories}. - -\clearpage \subsection{Hair styles} Some duck also like to have nice hair cuts, several different hair styles are available: -\begin{tcblisting}{title={Hairy duck},righthand width=9cm} + +\begin{tcblisting}{title={Long hair duck}} \begin{tikzpicture} \duck[longhair] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Short hair duck}} \begin{tikzpicture} \duck[shorthair] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Parting hair duck}} +\begin{tikzpicture} + \duck[parting] +\end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Crazy hair duck}} \begin{tikzpicture} \duck[crazyhair] \end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{title={Receding hair duck}} \begin{tikzpicture} \duck[recedinghair] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Mohican duck}} \begin{tikzpicture} \duck[mohican] \end{tikzpicture} -\begin{tikzpicture} - \duck[mullet] -\end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{title={Mullet duck}} \begin{tikzpicture} - \duck[parting] + \duck[mullet] \end{tikzpicture} \end{tcblisting} @@ -378,37 +394,52 @@ Please note that not all of the accessories, especially hats, shown in the follo \subsection{Clothing} -A respectable duck needs a suitable wardrobe. It can choose from a \lstinline|tshirt|, a \lstinline|jacket|, a \lstinline|tie| or a \lstinline|bowtie|. In it's infinite wardrobe these items are available in all colours definable in the current colour model. +A respectable duck needs a suitable wardrobe. It can choose from several different garments. In it's infinite wardrobe these items are available in all colours definable in the current colour model. -\begin{tcblisting}{title={Dressed duck}} +\begin{tcblisting}{title={T-shirt duck}} \begin{tikzpicture} - \duck[tshirt] + \duck[tshirt=red] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Jacket duck}} \begin{tikzpicture} - \duck[jacket] + \duck[jacket=blue] \end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{title={Tie duck}} \begin{tikzpicture} - \duck[tie] + \duck[tshirt, + jacket=gray, + tie] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Bowtie duck}} \begin{tikzpicture} - \duck[bowtie] + \duck[tshirt, + jacket=gray, + bowtie] \end{tikzpicture} +\end{tcblisting} +\begin{tcblisting}{title={Áo dài duck}} \begin{tikzpicture} - \duck[cape] + \duck[tshirt=cyan, + aodai=blue!50!black + ] \end{tikzpicture} +\end{tcblisting} + +\begin{tcblisting}{title={Cape duck}} \begin{tikzpicture} - \duck[tshirt=lightgray, - jacket=blue!50!black, - tie=blue!80!black, - shorthair] + \duck[cape] \end{tikzpicture} \end{tcblisting} For more ways to customise the clothing also have a look at the \hyperref[sec:footballducks]{football ducks in Section \ref{sec:footballducks}}. -\clearpage \subsection{Accessories} \label{sec:accessories} @@ -450,6 +481,12 @@ There is a multitude of things a duck might need. The following examples all als \end{tikzpicture} \end{tcblisting} +\begin{tcblisting}{title={Conical hat duck}} +\begin{tikzpicture} + \duck[conicalhat=brown] +\end{tikzpicture} +\end{tcblisting} + \begin{tcblisting}{title={Santa Duck}} \begin{tikzpicture} \duck[santa=red!80!black, @@ -846,6 +883,14 @@ There is a multitude of things a duck might need. The following examples all als \end{tikzpicture} \end{tcblisting} +\addtocounter{footnote}{1} +\begin{tcblisting}{title={Overleaf Duck$^{\thefootnote}$}} +\begin{tikzpicture} + \duck[overleaf] +\end{tikzpicture} +\end{tcblisting} +\footnotetext[\thefootnote]{added to celebrate that \tikzducks are now also available on overleaf, see \url{https://www.overleaf.com/blog/tex-live-upgrade-september-2019}} + \clearpage \section{Random ducks} With all these available accessories it might be hard to decide which one to choose, but don't worry the \tikzducks provide a solution for this dilemma, the random duck, or short \lstinline|\randuck|, which automatically creates a duck with a randomly chosen accessories and something on top of the head (hair, a hat, ears, alien antenna ...) @@ -920,7 +965,6 @@ To ease the placement of further accessories, some particular spots of the duck \end{tikzpicture} \end{tcblisting} } -An example making use this option are the \hyperref[starducks]{``Live long and prosper'' ducks}. To distinguish coordinates from multiple ducks in the same \lstinline|tikzpicture|, one can name the ducks using the option \lstinline[emph={name}]|name|. If this option is used, the coordinates are prefixed with the respective name and a dash: \lstinline|<name>-<coordinate>|. @@ -1095,336 +1139,13 @@ A few examples to see \lstinline|stripes| in action: \end{tikzpicture} \end{tcblisting} -In case your favourite team is missing from the above examples, feel free to create an example and share it with the community in \href{https://tex.stackexchange.com/q/387047/36296}{The Duck Pond}. - -\clearpage -\section{Showcase} - -\addtocounter{footnote}{1} -In the following a few examples of possible duck customisations, some of which will require additional packages (which are stated as a comment at the start of the code). For more examples (or to show your own creations) please visit \href{https://tex.stackexchange.com/q/387047/36296}{The Duck Pond} or have a look at \href{https://vimeo.com/246256860}{The Great Christmas Extravaganza}$^{\thefootnote}$\footnotetext[\thefootnote]{the source code is available at \url{https://github.com/cereda/duck-extravaganza}}. - -\begin{tcblisting}{title={\texttt{samcarter} duck}} -\begin{tikzpicture} - \duck[body=yellow!50!brown!50!white, - longhair=red!50!brown, - jacket=blue!50!black] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Paulo duck}} -\begin{tikzpicture} - \duck[cap,cricket] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Party duck}} -\begin{tikzpicture} - \duck[cake=violet, - magichat=violet, - magicstars=white!85!yellow] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Brazil duck}} -\begin{tikzpicture} - \definecolor{brazilgreen}{RGB}{0,155,58}% - \definecolor{brazilyellow}{RGB}{254,223,0}% - \definecolor{brazilblue}{RGB}{0,39,118}% - \duck[body=brazilyellow, - shorthair=brazilgreen] - \path[preaction={fill, brazilblue},pattern=fivepointed stars, pattern color=white] - \duckpathjacket; -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Duck in black}} -\begin{tikzpicture} - \duck[grumpy, body=yellow!50!brown!50!white, tshirt=white, jacket=black, tie=black, hat=black, sunglasses=black] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Prof.\ van Duck}} -\begin{tikzpicture} - \duck[body=yellow!50!brown!40!white, - crazyhair=gray!50!white, - eyebrow, - glasses=brown!70!black, - book=\scalebox{0.2}{$E=mc^2$}, - bookcolour=red!20!brown] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Knuth duck}} -\begin{tikzpicture} - \duck[body=yellow!50!red!20!white, - recedinghair=gray!50!white, - eyebrow, - tshirt=white!93!black, - jacket=red!50!black, - glasses=brown!70!lightgray, - book=\scalebox{0.5}{\TeX}, - bookcolour=black!20!brown] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={May the Quack be with you}} -\begin{tikzpicture} - \colorlet{skin}{white!45!gray!80!green} - \duck[lightsaber, body=skin, bill=gray!80!green, - tshirt=brown!50!black, jacket=brown!30!gray] - \fill[skin,rounded corners=3] (0.44,1.70) -- (0.25,2) -- (0.6,1.95); - \fill[skin,rounded corners=3] (1.34,1.60) -- (1.53,1.9) -- (1.16,1.85); -\end{tikzpicture} - -\begin{tikzpicture} - \duck[grumpy,lightsaber=red,cape=black!85!white, - body=black!70!white,darthvader=black!85!white] -\end{tikzpicture} - -\begin{tikzpicture} - \fill[brown!70!black] (0.5,1.65) circle (0.25); - \duck[jacket=white!95!brown, body=brown!50!white, - shorthair=brown!70!black, lightsaber=cyan] - \fill[brown!70!black] (1.3,1.6) circle (0.25); -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Ghost duck}} -\colorlet{ghost}{white!98!gray}% -\begin{tikzpicture} -\duck[body=ghost,bill=ghost,prison=gray] -\fill[ghost,rotate=-17](-0.1,0.7) rectangle (0.15,1.3); -\fill[ghost,rotate=17] (1.6,0.7) rectangle (1.81,1.3); -\end{tikzpicture} -\end{tcblisting} - -\addtocounter{footnote}{1} -\begin{tcblisting}{title={67P/Churyumov-Gerasimenko duck$^{\thefootnote}$}} -\begin{tikzpicture}[path image/.style={path picture={\foreach \j in {0,...,2}{\node at (0,\j) {\foreach \i in {1,...,5}{\includegraphics[height=1cm]{#1}}};}}}] -\path (0.1,0.1) rectangle (2.1,2.12); -\begin{pgfinterruptboundingbox} -\path[path image=crinklepaper] - (0.90,1.50) ellipse (0.50 and 0.625); -\path[path image=crinklepaper] \duckpathbody; -\fill[gray!80!white] \duckpathbill; -\fill[white!70!gray, rotate=-20] - (0.23,1.7675) ellipse (0.0893 and 0.125) - (-0.06,1.74) ellipse (0.0786 and 0.1143); -\fill[black, rotate=-20] - (0.26,1.7575) ellipse (0.0357 and 0.0714) - (-0.03,1.73) ellipse (0.0286 and 0.0643); -\end{pgfinterruptboundingbox} -\end{tikzpicture} -\end{tcblisting} -\footnotetext[\thefootnote]{If you try this at home, replace the \texttt{crinklepaper} with an image of the comet's surface, e.g. \url{https://arxiv.org/abs/1707.02945}} - -\begin{tcblisting}{title={With my username I had to...}} -%\usepackage{marvosym} -\definecolor{sgskin}{RGB}{222,197,159}% -\definecolor{sgblond}{RGB}{238,203,96}% -\colorlet{sggreen}{olive!50!black} -\colorlet{sgbill}{sgskin!85!black} -\colorlet{sgshirt}{sggreen!50!black} - -\begin{tikzpicture} - \duck[body=sgskin,bill=sgbill,tshirt=sgshirt,jacket=sggreen,cap=sggreen] -\end{tikzpicture} - -\begin{tikzpicture} - \duck[body=sgskin,bill=sgbill,tshirt=sgshirt,jacket=sggreen,shorthair=sgblond] -\end{tikzpicture} - -\begin{tikzpicture} - \duck[body=sgskin,bill=sgbill,tshirt=sgshirt,jacket=sggreen,parting=brown!70!black,glasses=brown!30!gray, book={\AA}, bookcolour=brown!50!black] -\end{tikzpicture} - -\begin{tikzpicture} - \duck[body=brown!80!black,bill=brown!65!black,tshirt=sgshirt,jacket=sggreen,grumpy] - \fill[sgblond, rotate=-10] (0.45,2.0) ellipse (0.12 and 0.05); - \node[rotate=170] at (0.8,1.89) {\scalebox{0.35}{\Leo}}; -\end{tikzpicture} -\end{tcblisting} - - -\begin{tcblisting}{title={Live long and prosper},label=starducks} -%\usepackage{fontawesome} -\definecolor{unigold}{RGB}{203,157,52}% -\definecolor{uniblue}{RGB}{46,114,167}% -\definecolor{unired}{RGB}{177,49,34}% - -\definecolor{skink}{RGB}{245,206,193}% -\definecolor{skins}{RGB}{255,222,151}% -\definecolor{skinu}{RGB}{146,113,96}% - -\newcommand*{\insignia}{\node[rotate=15] at (wing) {\color{yellow!80!brown}\faLocationArrow};} - -\begin{tikzpicture} -\duck[tshirt=black!60!gray, jacket=unigold, body=skink, shorthair=brown!80!black, bill=skink!60!gray] -\insignia -\end{tikzpicture} - -\begin{tikzpicture} -\duck[tshirt=black!60!gray, jacket=uniblue, body=skins, mullet=black!60!brown, bill=skins!60!gray] -\fill[skins,rotate=175, xshift=-46, yshift=-74] (0.45,1.20)--(0.50,0.80)--(0.65,1.20); -\fill[black!60!brown, rounded corners=1, rotate=70] (1.85,0.13) rectangle (1.91,-0.05); -\fill[black!60!brown, rounded corners=1, rotate=90] (1.7,-0.75) rectangle (1.76,-0.97); -\insignia -\end{tikzpicture} - -\begin{tikzpicture} -\duck[tshirt=black!60!gray, jacket=unired, body=skinu, longhair=black!60!brown, bill=skinu!70!black] -\insignia -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={French duck}} -\begin{tikzpicture} -\duck[body=yellow!60!red!30!white,tshirt=white!90!yellow,|stripes|={\stripes[color=blue!70!black,rotate=-87,width=0.07,distance=0.12]},beret=blue!30!black,baguette=brown] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Bee duck}} -\begin{tikzpicture} - \duck[|stripes|={\stripes[distance=0.4,width=0.2,rotate=0,initialx=0.15]},alien=black,laughing] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Jailbird duck}} -\begin{tikzpicture} -\duck[peakedcap=gray!40!black,tshirt=white,stripes={ -\stripes[rotate=100,color=gray!40!black]},prison=gray] -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Super duck brothers}} -\newcommand{\superstripes}{\stripes[color=blue!80!black,width=3,height=1.0,rotate=5] \stripes[color=blue!80!black,width=0.1,rotate=0,distance=0.7,initialx=-1.1,height=2]} -\begin{tikzpicture} -\duck[tshirt=red!80!black,peakedcap=red!80!black,|stripes|={\superstripes}] -\fill[white] (0.8,2) circle (0.13); -\node[red!80!black,rotate=-25] at (0.8,2) {\scalebox{0.6}{\textsf{M}}}; -\end{tikzpicture} -\begin{tikzpicture} -\duck[tshirt=green!70!black,peakedcap=green!70!black, |stripes|={\superstripes}] -\fill[white] (0.8,2) circle (0.13); -\node[green!70!black,rotate=-25] at (0.8,2) {\scalebox{0.6}{\textsf{L}}}; -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Princess duck}} -\definecolor{pskin}{RGB}{255,200,184}% -\definecolor{phair}{RGB}{249,249,139}% -\begin{tikzpicture} -\duck[body=pskin!80!white,longhair=phair,tshirt=magenta!60!white,jacket=magenta!40!white,necklace=white!85!yellow] -\path (0.7,2) rectangle (1.4,2.55); -\fill[yellow!80!orange,rotate=-10,xshift=-11,yshift=5] \duckpathcrown; -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={ZZZoro duck}} -\begin{tikzpicture} -\duck[cape=black,hat=black,mask=black] -\node[rotate=-5] at (0.4,0.7) {\tiny\fontfamily{pzc}\selectfont \textbackslash ZZZ}; -\fill[black,rotate=24] (0.1,0.21) rectangle (1.1,0.23) (1.2,0.22) ellipse (0.15 and 0.03) (1.08,0.22) ellipse (0.03 and 0.15); -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Farm animals}} -\definecolor{fskin}{RGB}{161,140,126}% -\definecolor{fbill}{RGB}{238,212,191}% -\definecolor{fhair}{RGB}{89,72,72}% -\begin{tikzpicture} -\duck[body=fskin,bill=fbill,shorthair=fhair,bunny,inear=fbill] -\node[fskin,rotate=45,scale=3] at (1.7,1.55) {\textsf{s}}; -\fill[fhair,rotate=45] (2.4,0.13) ellipse (0.15 and 0.07); -\end{tikzpicture} - -\begin{tikzpicture} -\duck[body=white!80!brown, bill=white!60!brown, bunny, longhair=white!60!brown] -\fill[white!60!brown] (tail) circle (0.2); -\end{tikzpicture} - -\begin{tikzpicture} -\duck[body=red!20!white,bill=red!30!white,shorthair=red!30!white,bunny=red!30!white,inear=red!30!white] -\node[red!20!white,rotate=25,scale=3] at (1.7,1.51) {\textsf{s}}; -\end{tikzpicture} - -\begin{tikzpicture} -\duck[body=white!80!brown, bill=white!60!brown, sheep] -\end{tikzpicture} - -\begin{tikzpicture} -\begin{scope}[yshift=-6] -\clip[rotate=-5] (0.68,2.38) ellipse (0.3 and 0.4); -\fill[brown,rotate=-5](0.28,2.26)ellipse (0.3 and 0.4); -\end{scope} -\duck[body=brown,mohican=brown!50!black,horsetail] -\begin{scope}[yshift=-5,xshift=1] -\clip[rotate=-5] (0.68,2.38) ellipse (0.3 and 0.4); -\fill[brown,rotate=-5](1.06,2.2) ellipse (0.3 and 0.4); -\end{scope} -\end{tikzpicture} -\end{tcblisting} - -\addtocounter{footnote}{1} -\begin{tcblisting}{title={Arara duck$^{\thefootnote}$}} -\begin{tikzpicture} -\duck[parrot,bill=gray!80!black] -\shade[left color=cyan!90!blue,right color=blue!70!black] \duckpathwing; -\shade[bottom color=yellow!70!brown, top color=green!40!teal] \duckpathcrazyhair; -\end{tikzpicture} -\end{tcblisting} -\footnotetext[\thefootnote]{In honour of the cool TeX automation tool arara, \url{https://github.com/cereda/arara}} - -\begin{tcblisting}{title={Duck Queen}} -\definecolor{qskin}{RGB}{225,219,206}% -\definecolor{qbill}{RGB}{170,123,154}% -\definecolor{qdress}{RGB}{184,209,206}% -\definecolor{qcrown}{RGB}{90,76,183}% -\begin{tikzpicture} -\duck[body=qskin,bill=qbill,jacket=qdress,tshirt=teal!30!qdress,shorthair=gray!60!white,necklace=gray!10!white,handbag=teal!30!qdress] -\fill[gray!60!white,rotate=-30] (0.27,1.23) rectangle (0.37,0.65); -\fill[qcrown,scale=0.23,rotate=-20,yshift=82,xshift=38] \duckpathqueencrown; -\fill[qcrown,yshift=3] \duckpathkingcrown; -\end{tikzpicture} -\end{tcblisting} - -\begin{tcblisting}{title={Duck, MD}} -\begin{tikzpicture} -\duck[parting=brown!70!black, squareglasses, - tshirt=teal!50!white, jacket=white, - buttons=gray!50!white, stethoscope] -\end{tikzpicture} -\end{tcblisting} - -\addtocounter{footnote}{1} -\begin{tcblisting}{title={Duck scout with ``šátek'' and ``turbánek''$^{\thefootnote}$}} -\begin{tikzpicture} -\duck[head=yellow!60!brown!50!white, - tshirt=brown!80!gray!40!white, - cap=orange!50!yellow, - neckerchief=orange!50!yellow, - woggle=brown, bookcolour=brown!80!black, - book={\tiny\sffamily\scalebox{0.3}{\parbox{1.1cm}{\centering Scouting\\for\\Ducklings}}}] -\end{tikzpicture} -\end{tcblisting} -\footnotetext[\thefootnote]{This is a very special duck, because yo' won the scout duck in the contest \href{https://tex.meta.stackexchange.com/q/7493/36296}{When will @egreg reach 654321}. In Czech, the neckerchief is called ``šátek'' and the woggle ``turbánek'', which means ``little turban''.} +\section{Examples} -\begin{tcblisting}{title={My name is Duck, James Duck}} -\begin{tikzpicture} -\duck[tshirt,lapel,jacket=gray!50!black,cocktail, - buttons,bowtie,parting=brown!50!black] -\end{tikzpicture} -\end{tcblisting} +To see more examples of what can be done with the \tikzducks, you are invited to visit \url{https://github.com/samcarter/tikzducks}. -\addtocounter{footnote}{1} -\begin{tcblisting}{title={Mary Duckings$^{\thefootnote}$}} -\begin{tikzpicture} -\duck[tshirt,bowtie=red!70!black,jacket=blue!50!black,umbrellaclosed=cyan!50!green,longhair=brown!60!black,hat=black] -\end{tikzpicture} -\end{tcblisting} -\footnotetext[\thefootnote]{following an idea from Paulo} +If you have created a duck you would like to share with the community, I would be happy to add it to this collection, just make a pull request or open an issue in the bug tracking system. \clearpage \printindex -\end{document}
\ No newline at end of file +\end{document} diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty index f9a075af08d..f0d9e735ec3 100644 --- a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty +++ b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty @@ -11,20 +11,13 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.1 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ProvidesPackage{tikzducks} - [2019/04/07 v1.1 Draw rubber ducks in TikZ] +\ProvidesPackage{tikzducks}[2020/01/03 version v1.3 Draw rubber ducks in TikZ] \RequirePackage{tikz} \usetikzlibrary{patterns} % for the wizard hat \usetikzlibrary{calc} % for the sports jerseys -\RequirePackage{ifluatex} -\RequirePackage{ifxetex} - %\pgfdeclarelayer{backgroundlayer} %\pgfdeclarelayer{bodylayer} %\pgfdeclarelayer{clothinglayer} @@ -33,6 +26,8 @@ % %\pgfsetlayers{backgroundlayer,bodylayer,clothinglayer,hairlayer,hatlayer,main} +\definecolor{duck@overleafcol}{RGB}{72,172,60} + \newcommand*{\duck}[1][]{% \begin{scope}% \tikzset{/duck/.cd,#1}% @@ -59,6 +54,7 @@ \newif\ifduck@mullet \newif\ifduck@parting % clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifduck@clothing \newif\ifduck@tshirt \newif\ifduck@jacket \newif\ifduck@tie @@ -66,6 +62,7 @@ \newif\ifduck@stripes \newif\ifduck@bowtie \newif\ifduck@lapel +\newif\ifduck@aodai % Headgear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifduck@alien \newif\ifduck@hat @@ -89,6 +86,7 @@ \newif\ifduck@helmet \newif\ifduck@viking \newif\ifduck@devil +\newif\ifduck@conicalhat % Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \newif\ifduck@glasses \newif\ifduck@sunglasses @@ -133,6 +131,7 @@ \newif\ifduck@umbrellaclosed \newif\ifduck@handbag \newif\ifduck@cocktail +\newif\ifduck@overleaf \tikzset{ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -174,19 +173,23 @@ % clothing % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - tshirt/.code = \duck@tshirttrue + tshirt/.code = \duck@tshirttrue + \duck@clothingtrue \def\duck@tshirt{#1}, tshirt/.default = white, - jacket/.code = \duck@jackettrue + jacket/.code = \duck@jackettrue + \duck@clothingtrue \def\duck@jacket{#1}, jacket/.default = blue, tie/.code = \duck@tietrue \def\duck@tie{#1}, tie/.default = blue, - cape/.code = \duck@capetrue + cape/.code = \duck@capetrue + \duck@clothingtrue \def\duck@cape{#1}, cape/.default = red, stripes/.code = \duck@stripestrue + \duck@clothingtrue \def\duck@stripes{#1}, stripes/.default = \stripes , bowtie/.code = \duck@bowtietrue @@ -196,6 +199,11 @@ lapel/.code = \duck@lapeltrue \def\duck@lapel{#1}, lapel/.default = black, + aodai/.code = \duck@aodaitrue + \duck@clothingtrue + \def\duck@aodai{#1}, + ao dai/.forward to = /duck/aodai, + aodai/.default = blue!50!black, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % hair styles @@ -324,6 +332,10 @@ \duck@deviltrue \def\duck@devil{brown!20!white}, viking/.default = gray, + conicalhat/.code = \duck@conicalhattrue + \def\duck@conicalhat{#1}, + conical hat/.forward to = /duck/conicalhat, + conicalhat/.default = brown!90!orange!90!white, %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Accessories @@ -503,6 +515,12 @@ \def\duck@handbag{#1}, handbag/.default = red!70!black, cocktail/.code = \duck@cocktailtrue, + overleaf/.code = \duck@overleaftrue + \def\duck@body{duck@overleafcol} + \duck@graduatetrue + \def\duck@graduate{black} + \duck@squareglassestrue + \def\duck@squareglasses{black} } \def\duck@draw{ @@ -553,21 +571,26 @@ % % 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[x radius=0.88, y radius=0.35] (1.00,0.40) ellipse[x radius=0.75, y radius=0.25]; + \fill[\duck@water, even odd rule] (1.00,0.40) ellipse[x radius=1.05, y radius=0.50] (1.00,0.40) ellipse[x radius=0.95, y radius=0.42]; + \fill[\duck@water, even odd rule] (1.00,0.40) ellipse[x radius=1.23, y radius=0.63] (1.00,0.40) ellipse[x radius=1.17, y radius=0.57]; + \fill[\duck@water, even odd rule] (1.00,0.40) ellipse[x radius=1.42, y radius=0.77] (1.00,0.40) ellipse[x radius=1.38, y radius=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); + \fill[\duck@sheep] (0.65,1.95) circle[radius=0.15] (0.50,1.75) circle[radius=0.15] (0.46,1.51) circle[radius=0.15] (0.37,1.00) circle[radius=0.15] (0.23,0.80) circle[radius=0.15] (0.20,0.60) circle[radius=0.15] (0.25,0.45) circle[radius=0.15] (0.35,0.30) circle[radius=0.15] (0.55,0.25) circle[radius=0.15] (0.75,0.20) circle[radius=0.15] (0.95,0.16) circle[radius=0.15] (1.15,0.20) circle[radius=0.15] (1.35,0.23) circle[radius=0.15] (1.55,0.30) circle[radius=0.15] (1.75,0.38) circle[radius=0.15] (1.95,0.50) circle[radius=0.15] (2.05,0.65) circle[radius=0.15] (2.10,0.85) circle[radius=0.15] (2.05,1.00) circle[radius=0.15] (2.00,1.15) circle[radius=0.15] (1.85,1.35) circle[radius=0.15] (1.60,1.25) circle[radius=0.15] (1.35,1.25) circle[radius=0.15] (1.30,1.50) circle[radius=0.15] (1.30,1.70) circle[radius=0.15] (1.20,1.90) circle[radius=0.15] (0.85,2.05) circle[radius=0.15] (1.05,2.00) circle[radius=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 +% Conical Hat (background) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@conicalhat + \fill[\duck@conicalhat!50!black,rotate=-21] (0.265,1.915) ellipse[x radius=0.79, y radius=0.1]; + \fill[\duck@conicalhat!30!black] (0.5501,0.9739) -- (0.2002,1.9676) -- (0.2946,2.0008) -- (0.6445,1.0072) -- cycle; +\fi % %\end{pgfonlayer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -587,18 +610,20 @@ % 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[x radius=0.50, y radius=0.625]; % % bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@grumpy \fill[\duck@bill] \duckpathgrumpybill; \else \ifduck@laughing - \fill[\duck@bill!80!black] (0.40,1.20) .. controls (0.54,1.36) and (0.65,1.31) .. (0.91,1.37) .. controls (0.45,1.06) and (0.36,1.18) .. (0.40,1.20) -- cycle; - \fill[\duck@bill] + \begin{pgfinterruptboundingbox} + \fill[\duck@bill!80!black] (0.40,1.20) .. controls (0.54,1.36) and (0.65,1.31) .. (0.91,1.37) .. controls (0.45,1.06) and (0.36,1.18) .. (0.40,1.20) -- cycle; + \fill[\duck@bill] (0.41,1.47) .. controls (0.64,1.53) and (0.54,1.30) .. (0.91,1.37) .. controls (-0.02,1.10) and (0.28,1.37) .. (0.41,1.47) -- cycle; + \end{pgfinterruptboundingbox} \else \ifduck@parrot \fill[\duck@bill!80!black] @@ -615,22 +640,22 @@ % has to be behind the eyes \ifduck@mask \begin{scope} - \clip (0.90,1.50) ellipse (0.50 and 0.625); + \clip (0.90,1.50) ellipse[x radius=0.50, y radius=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[x radius=0.0893, y radius=0.125]; \fill[\duck@pupil, rotate=-20] - (0.26,1.7575) ellipse (0.0357 and 0.0714); + (0.26,1.7575) ellipse[x radius=0.0357, y radius=0.0714]; % % left eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fill[\duck@eye, rotate=-20] - (-0.06,1.74) ellipse (0.0786 and 0.1143); + (-0.06,1.74) ellipse[x radius=0.0786, y radius=0.1143]; \fill[\duck@pupil, rotate=-20] - (-0.03,1.73) ellipse (0.0286 and 0.0643); + (-0.03,1.73) ellipse[x radius=0.0286, y radius=0.0643]; % \fi % from no duck %\end{pgfonlayer} @@ -640,6 +665,15 @@ % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{pgfonlayer}{clothinglayer} +% +% Strap of the conical hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@conicalhat + \ifduck@clothing + \fill[\duck@conicalhat!30!black] (1.5943,1.5059) .. controls (1.4384,1.3576) and (1.2780,1.2120) .. (1.0987,1.0923) -- (1.0617,0.9549) .. controls (1.2151,1.0361) and (1.3476,1.1504) .. (1.4785,1.2630) .. controls (1.5417,1.3187) and (1.6038,1.3757) .. (1.6644,1.4344) -- cycle; + \else + \fill[\duck@conicalhat!30!black] (1.5943,1.5059) .. controls (1.4384,1.3576) and (1.2780,1.2120) .. (1.0987,1.0923) .. controls (0.9540,0.9995) and (0.7864,0.9875) .. (0.6358,1.0398) .. controls (0.6727,0.9043) and (0.9752,0.9113) .. (1.0617,0.9549) .. controls (1.2151,1.0361) and (1.3476,1.1504) .. (1.4785,1.2630) .. controls (1.5417,1.3187) and (1.6038,1.3757) .. (1.6644,1.4344) -- cycle; + \fi +\fi % % tshirt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@tshirt @@ -665,6 +699,13 @@ \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 % +% Áo dài %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@aodai + \begin{pgfinterruptboundingbox} + \fill[\duck@aodai] (1.819,1.419) .. controls (2.871,0.120) and (0.711,-0.145) .. (0.296,0.251) .. controls (-0.118,0.647) and (0.232,1.073) .. (0.440,1.128) -- (0.567,0.927) .. controls (0.567,0.927) and (0.543,0.906) .. (0.509,0.882) -- (0.481,0.929) -- (0.458,0.915) -- (0.487,0.868) .. controls (0.473,0.859) and (0.457,0.850) .. (0.441,0.842) -- (0.422,0.894) -- (0.397,0.885) -- (0.417,0.831) .. controls (0.404,0.826) and (0.391,0.821) .. (0.378,0.818) -- (0.364,0.869) -- (0.338,0.862) -- (0.351,0.815) .. controls (0.334,0.814) and (0.318,0.817) .. (0.304,0.825) .. controls (0.303,0.774) and (0.329,0.759) .. (0.365,0.763) -- (0.376,0.722) -- (0.402,0.729) -- (0.391,0.768) .. controls (0.405,0.772) and (0.420,0.778) .. (0.435,0.784) -- (0.447,0.750) -- (0.472,0.759) -- (0.459,0.796) .. controls (0.477,0.805) and (0.496,0.815) .. (0.512,0.825) -- (0.533,0.791) -- (0.556,0.805) -- (0.535,0.840) .. controls (0.567,0.860) and (0.590,0.877) .. (0.590,0.877) .. controls (1.011,1.168) and (0.887,0.936) .. (1.819,1.419) -- cycle; + \end{pgfinterruptboundingbox} +\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; @@ -684,7 +725,7 @@ % % 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[radius=0.032] (0.5100,1.050) circle[radius=0.032] (0.5200,0.990) circle[radius=0.032] (0.5400,0.931) circle[radius=0.032] (0.5825,0.885) circle[radius=0.032] (0.6450,0.885) circle[radius=0.032] (0.7000,0.910) circle[radius=0.032] (0.7500,0.945) circle[radius=0.032] (0.8000,0.980) circle[radius=0.032] (0.8500,1.020) circle[radius=0.032] (0.9000,1.050) circle[radius=0.032] (0.9500,1.080) circle[radius=0.032] (1.0000,1.110) circle[radius=0.032] (1.0550,1.130) circle[radius=0.032] (1.1100,1.150) circle[radius=0.032] (1.1650,1.165) circle[radius=0.032] (1.2200,1.180) circle[radius=0.032] (1.2750,1.195) circle[radius=0.032] (1.3300,1.210) circle[radius=0.032]; \fi % % Scout neckerchief %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -697,9 +738,9 @@ % 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); + \fill[\duck@buttons] (0.49,0.6) circle[radius=0.05] (0.46,0.45) circle[radius=0.05] (0.45,0.3) circle[radius=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); + \fill[\duck@buttons] (0.53,0.75) circle[radius=0.05] (0.5,0.6) circle[radius=0.05] (0.47,0.45) circle[radius=0.05]; \fi \fi % @@ -783,7 +824,7 @@ \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) circle[radius=0.12] (1.2,1.15) circle[radius=0.12] (0.5,1.05) circle[radius=0.1] (0.525,0.90) circle[radius=0.12] (0.525,0.75) circle[radius=0.12] (0.65,0.65) circle[radius=0.14] (0.75,0.75) circle[radius=0.12] (0.85,0.85) circle[radius=0.12] (0.95,0.95) circle[radius=0.12] (1.05,1.05) circle[radius=0.12] (1.15,1.25) circle[radius=0.12] (1,1.20) circle[radius=0.12] (0.85,1.20) circle[radius=0.12] (0.75,1.15) circle[radius=0.12] (0.65,1.10) circle[radius=0.12] (0.58,1.07) circle[radius=0.12] (0.44,1.46) circle[radius=0.06] (0.52,1.45) circle[radius=0.06] (0.6, 1.41) circle[radius=0.06] (0.68,1.36) circle[radius=0.06] (0.76,1.34) circle[radius=0.06] (0.86,1.26) circle[radius=0.12] (0.38,1.44) circle[radius=0.03] (1,1.28) circle[radius=0.12]; \fill[\duck@beard] (1.3,1.3) -- (0.5,1.05) -- (0.65,0.65) -- cycle; \fi% % @@ -799,27 +840,27 @@ \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] (1.20,2.30) circle[radius=0.07]; + \fill[\duck@alien] (0.62,2.35) circle[radius=0.07]; \fi % % hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@hat \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.44,2.1) ellipse[x radius=0.7, y radius=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); + \fill[\duck@hat,rotate=-15] (0.44,2.4) ellipse[x radius=0.44, y radius=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.44,2.1) ellipse[x radius=0.6, y radius=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.4) ellipse[x radius=0.37, y radius=0.08]; \fi \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); + \fill[\duck@cap,rotate=-15] (0.3,2.05) ellipse[x radius=0.6, y radius=0.15]; \fi % % Santa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -835,33 +876,33 @@ (1.456,1.759) .. controls (1.534,1.637) and (1.480,1.545) .. (1.400,1.566) .. controls (1.265,1.714) and (0.577,2.267) .. (0.44,1.733) -- cycle; - \fill[white!80!brown] (1.6,1.0) circle (0.17); + \fill[white!80!brown] (1.6,1.0) circle[radius=0.17]; \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.44,2.1) ellipse[x radius=0.37, y radius=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] (1.01,2.47) circle[radius=0.17]; + \fill[\duck@chef] (1.24,2.35) circle[radius=0.15]; + \fill[\duck@chef] (0.77,2.40) circle[radius=0.12]; + \fill[\duck@chef] (1.39,2.20) circle[radius=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.44,2.1) ellipse[x radius=0.37, y radius=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=\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); + \fill[\duck@tassel] (1.16,1.3) ellipse[x radius=0.06, y radius=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[x radius=0.5, y radius=0.17]; + \fill[\duck@beret,rotate=-25] (0.13,2.25) ellipse[x radius=0.55, y radius=0.17]; + \fill[\duck@beret,rotate=-25] (0.13,2.4) circle[radius=0.08]; \fi % % unicorn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -879,7 +920,7 @@ % % witch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@witch - \fill[\duck@witch,rotate=-15] (0.44,2.13) ellipse (0.75 and 0.17); + \fill[\duck@witch,rotate=-15] (0.44,2.13) ellipse[x radius=0.75, y radius=0.17]; \fill[\duck@witch,rotate=-15] (0.05,2.2)--(0.45,3.2)--(0.82,2.2); \fi % @@ -906,29 +947,29 @@ \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); + \clip[rotate=-5] (0.68,2.38) ellipse[x radius=0.3, y radius=0.4]; + \fill[\duck@bunny,rotate=-5] (1.06,2.2) ellipse[x radius=0.3, y radius=0.4] (0.28,2.26) ellipse[x radius=0.3, y radius=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); + \clip[rotate=-5] (0.68,2.38) ellipse[x radius=0.25, y radius=0.35]; + \fill[\duck@inear,rotate=-5] (1.06,2.2) ellipse[x radius=0.25, y radius=0.35] (0.28,2.26) ellipse[x radius=0.25, y radius=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[x radius=0.5, y radius=0.15]; + \fill[\duck@peakedcap,rotate=-25] (0.13,2.15) ellipse[x radius=0.5, y radius=0.17]; + \fill[\duck@peakedcap,rotate=-35] (-0.25,2.2) ellipse[x radius=0.55, y radius=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.44,2.1) ellipse[x radius=0.48, y radius=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.55) ellipse[x radius=0.37, y radius=0.08]; \fi % % darth vader %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -946,33 +987,33 @@ \fill[\duck@harlequin] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle; \fill[\duck@niuqelrah] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle; \end{pgfinterruptboundingbox} - \fill[\duck@harlequin] (1.7,2.07) circle (0.1); - \fill[\duck@niuqelrah] (0.3,2.23) circle (0.1); + \fill[\duck@harlequin] (1.7,2.07) circle[radius=0.1]; + \fill[\duck@niuqelrah] (0.3,2.23) circle[radius=0.1]; \fi % % Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@strawhat - \fill[\duck@strawhat,rotate=-15] (0.44,2.0) ellipse (0.75 and 0.1); + \fill[\duck@strawhat,rotate=-15] (0.44,2.0) ellipse[x radius=0.75, y radius=0.1]; \fill[\duck@strawhat,rotate=-15] (0.1,2.05) rectangle (0.78,2.5); - \fill[\duck@strawhat,rotate=-15] (0.44,2.5) ellipse (0.34 and 0.08); + \fill[\duck@strawhat,rotate=-15] (0.44,2.5) ellipse[x radius=0.34, y radius=0.08]; \fill[\duck@strawhat,rotate=-15] (-0.3,2.02) -- (1.18,2.02) -- (0.78,2.2) -- (0.1,2.2) -- cycle; - \fill[\duck@ribbon,rotate=-15] (0.44,2.2) ellipse (0.34 and 0.08); + \fill[\duck@ribbon,rotate=-15] (0.44,2.2) ellipse[x radius=0.34, y radius=0.08]; \fill[\duck@ribbon,rotate=-15] (0.1,2.2) rectangle (0.78,2.3); - \fill[\duck@strawhat,rotate=-15] (0.44,2.3) ellipse (0.34 and 0.08); + \fill[\duck@strawhat,rotate=-15] (0.44,2.3) ellipse[x radius=0.34, y radius=0.08]; \fi % % helmet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@helmet \fill[\duck@helmet] (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@helmet!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.6647,1.7052) and (0.6469,1.6454) .. (0.6401,1.5851) -- (0.6583,1.5355) -- (0.7069,1.5673) .. controls (0.7193,1.6285) and (0.7363,1.6889) .. (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@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); + \fill[\duck@helmet!50!white] (0.502,1.845) circle[radius=0.015] (0.586,1.835) circle[radius=0.015] (0.684,1.822) circle[radius=0.015] (0.791,1.799) circle[radius=0.015] (0.899,1.770) circle[radius=0.015] (1.003,1.741) circle[radius=0.015] (1.099,1.706) circle[radius=0.015] (1.185,1.673) circle[radius=0.015] (1.276,1.629) circle[radius=0.015] (1.360,1.581) circle[radius=0.015] (0.676,1.606) circle[radius=0.015] (0.695,1.666) circle[radius=0.015] (0.714,1.729) circle[radius=0.015] (0.784,1.889) circle[radius=0.015] (0.835,1.968) circle[radius=0.015] (0.896,2.034) circle[radius=0.015] (0.957,2.081) circle[radius=0.015] (1.020,2.115) circle[radius=0.015] (1.422,1.535) circle[radius=0.015] (0.502,1.845) circle[radius=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); + \fill[\duck@viking!50!white] (0.502,1.845) circle[radius=0.015] (0.586,1.835) circle[radius=0.015] (0.684,1.822) circle[radius=0.015] (0.791,1.799) circle[radius=0.015] (0.899,1.770) circle[radius=0.015] (1.003,1.741) circle[radius=0.015] (1.099,1.706) circle[radius=0.015] (1.185,1.673) circle[radius=0.015] (1.276,1.629) circle[radius=0.015] (1.360,1.581) circle[radius=0.015] (0.784,1.889) circle[radius=0.015] (0.835,1.968) circle[radius=0.015] (0.896,2.034) circle[radius=0.015] (0.957,2.081) circle[radius=0.015] (1.020,2.115) circle[radius=0.015] (1.422,1.535) circle[radius=0.015]; \fi % % devil (front horn) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -980,6 +1021,14 @@ \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 % +% Conical Hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ifduck@conicalhat + \path (0.19,1.4) rectangle (1.68,2.32); + \begin{pgfinterruptboundingbox} + \fill[\duck@conicalhat] (1.6722,1.4137) .. controls (1.6722,1.4337) and (1.3592,1.6230) .. (0.9513,1.7735) .. controls (0.5433,1.9239) and (0.1948,1.9784) .. (0.1948,1.9754) .. controls (0.2049,2.0230) and (1.1428,2.36) .. (1.1428,2.3) .. controls (1.1428,2.35) and (1.6821,1.4784) .. (1.6722,1.4137) -- cycle; + \end{pgfinterruptboundingbox} +\fi +% %\end{pgfonlayer} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % @@ -991,16 +1040,16 @@ \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=-20] (0.23,1.7675) circle[radius=0.14]; + \fill[\duck@sunglasses,rotate=-20] (-0.06,1.74) circle[radius=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=-20,even odd rule] (0.23,1.7675) circle[radius=0.14] (0.23,1.7675) circle[radius=0.11]; + \fill[\duck@glasses,rotate=-20,even odd rule] (-0.06,1.74) circle[radius=0.13] (-0.06,1.74) circle[radius=0.095]; \fi % % square glasses @@ -1014,9 +1063,9 @@ % 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@flavoura] (0.85,1.03) circle[radius=0.12]; + \fill[\duck@flavourb] (1.05,0.95) circle[radius=0.12]; + \fill[\duck@flavourc] (0.95,1.1) circle[radius=0.12]; \fi % % book %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1036,15 +1085,15 @@ % % speech bubble %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@speech - \fill[\duck@bubblecolour] (-0.5,1.8) ellipse (0.7 and 0.3); + \fill[\duck@bubblecolour] (-0.5,1.8) ellipse[x radius=0.7, y radius=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); + \fill[\duck@bubblecolour] (2,2.4) ellipse[x radius=0.7, y radius=0.35]; + \fill[\duck@bubblecolour] (1.55,2.35) circle[radius=0.25] (2.0,2.15) circle[radius=0.25] (2.4,2.25) circle[radius=0.25] (1.6,2.55) circle[radius=0.25] (2.0,2.6) circle[radius=0.25] (2.35,2.5) circle[radius=0.25] (1.65,1.95) circle[radius=0.1] (1.55,1.80) circle[radius=0.06] (1.47,1.70) circle[radius=0.03]; \node at (2,2.4) {\duck@think}; \fi % @@ -1074,50 +1123,49 @@ % % cake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@cake - \fill[\duck@cake] (1.00,0.50) ellipse (0.4 and 0.2); + \fill[\duck@cake] (1.00,0.50) ellipse[x radius=0.4, y radius=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] (1.00,0.70) ellipse[x radius=0.4, y radius=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[white!85!yellow] (1.0,0.93) ellipse[x radius=0.03, y radius=0.06]; + \fill[white!85!yellow] (1.225,1.03) ellipse[x radius=0.03, y radius=0.06]; + \fill[white!85!yellow] (0.775,1.03) ellipse[x radius=0.03, y radius=0.06]; \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[x radius=0.4, y radius=0.2]; + \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16]; + \fill[white!85!yellow] (1.15,0.65) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (0.81,0.57) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (0.95,0.68) ellipse[x radius=0.065, y radius=0.04]; + \fill[white!85!yellow] (1.02,0.54) ellipse[x radius=0.065, y radius=0.04]; + \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06]; \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); + \fill[brown] (1.00,0.60) ellipse[x radius=0.4, y radius=0.2]; + \fill[red!70!black] (1.00,0.60) ellipse[x radius=0.34, y radius=0.16]; + \fill[yellow!70!brown] (1.15,0.65) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (1.15,0.65) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (0.81,0.57) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (0.81,0.57) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (0.95,0.68) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (0.95,0.68) ellipse[x radius=0.04, y radius=0.03]; + \fill[yellow!70!brown] (1.02,0.54) ellipse[x radius=0.08, y radius=0.06]; + \fill[red!70!black] (1.02,0.54) ellipse[x radius=0.04, y radius=0.03]; + \fill[green!40!brown] (1.09,0.54) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=20] (1.0,0.34) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown,rotate=-20] (0.9,1.05) ellipse[x radius=0.07, y radius=0.02]; + \fill[green!40!brown] (1.00,0.60) ellipse[x radius=0.03, y radius=0.06]; \fi % -% -% % Hockey stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@hockey \fill[\duck@hockey, rounded corners=\scalingfactor*1, rotate=-30] (0.5,0.6) rectangle (0.6,2.1); @@ -1127,59 +1175,59 @@ % baguette %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@baguette \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); + \fill[\duck@baguette!80!black, rotate=5] (1.44,1.1) ellipse[x radius=0.1, y radius=0.03] (1.30,0.9) ellipse[x radius=0.1, y radius=0.03] (1.16,0.7) ellipse[x radius=0.1, y radius=0.03] (1.02,0.5) ellipse[x radius=0.1, y radius=0.03]; \fi % % football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@football - \fill[\duck@football] (1.2,0.33) circle (0.32); + \fill[\duck@football] (1.2,0.33) circle[radius=0.32]; \begin{scope} - \clip (1.2,0.33) circle (0.32); + \clip (1.2,0.33) circle[radius=0.32]; \fill[black] (1.06,0.30) -- (1.01,0.17) -- (1.14,0.08) -- (1.26,0.14) -- (1.20,0.28) -- cycle (1.37,0.14) -- (1.46,0.27) -- (1.59,0.27) -- (1.41,0.04) -- cycle (1.28,0.38) -- (1.22,0.52) -- (1.33,0.61) -- (1.45,0.51) -- (1.43,0.37) -- cycle (0.87,0.44) -- (1.02,0.40) -- (1.10,0.53) -- (1.07,0.62) -- (0.94,0.57) -- cycle; \end{scope} \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); + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); - \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse (0.18 and 0.4); - \fill[\duck@milkshake, rotate=-10] (0.8,0.94) ellipse (0.15 and 0.36); + \fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse[x radius=0.18, y radius=0.4]; + \fill[\duck@milkshake, rotate=-10] (0.8,0.94) ellipse[x radius=0.15, y radius=0.36]; \end{scope} - \fill[white!85!yellow] (0.83,0.92) circle (0.05) (0.88,0.9) circle (0.05) (0.93,0.92) circle (0.05) (0.99,0.91) circle (0.05) (1.06,0.86) circle (0.05) (1.13,0.87) circle (0.05) (0.85,0.99) circle (0.05) (0.9,0.98) circle (0.07) (1.0,0.98) circle (0.07) (1.1,0.95) circle (0.07); - \fill[red!90!black] (1.0,1.1) circle (0.05); - \fill[white!85!yellow] (0.94,1.05) circle (0.05) (1.03,1.03) circle (0.05); - \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse (0.17 and 0.05); + \fill[white!85!yellow] (0.83,0.92) circle[radius=0.05] (0.88,0.9) circle[radius=0.05] (0.93,0.92) circle[radius=0.05] (0.99,0.91) circle[radius=0.05] (1.06,0.86) circle[radius=0.05] (1.13,0.87) circle[radius=0.05] (0.85,0.99) circle[radius=0.05] (0.9,0.98) circle[radius=0.07] (1.0,0.98) circle[radius=0.07] (1.1,0.95) circle[radius=0.07]; + \fill[red!90!black] (1.0,1.1) circle[radius=0.05]; + \fill[white!85!yellow] (0.94,1.05) circle[radius=0.05] (1.03,1.03) circle[radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; \fill[red!90!black,rotate=20] (1.2,0.58) rectangle (1.22,0.85); \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); + \fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; + \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2]; \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03); - \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse (0.18 and 0.4); + \fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse[x radius=0.18, y radius=0.4]; \end{scope} \begin{scope} \clip[rotate=-10] (0.58,0.5) rectangle (1.02,0.87); - \fill[\duck@wine, rotate=-10] (0.8,1.1) ellipse (0.15 and 0.36); + \fill[\duck@wine, rotate=-10] (0.8,1.1) ellipse[x radius=0.15, y radius=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); + \fill[\duck@prison] (1.5,0.25) circle[radius=0.3]; + \fill[\duck@prison, even odd rule] (1.2,0.1) ellipse[x radius=0.10, y radius=0.07] (1.2,0.1) ellipse[x radius=0.06, y radius=0.04] (1.05,-0.05) ellipse[x radius=0.10, y radius=0.07] (1.05,-0.05) ellipse[x radius=0.06, y radius=0.04] (0.87,-0.2) ellipse[x radius=0.10, y radius=0.07] (0.87,-0.2) ellipse[x radius=0.06, y radius=0.04]; + \fill[\duck@prison, even odd rule] (0.72,-0.2) ellipse[x radius=0.10, y radius=0.07] (0.72,-0.2) ellipse[x radius=0.06, y radius=0.04]; + \fill[\duck@prison,even odd rule,rotate=70] (0.4,-1.05) ellipse[x radius=0.1, y radius=0.07] (0.4,-1.05) ellipse[x radius=0.06, y radius=0.04] (0.2,-0.95) ellipse[x radius=0.1, y radius=0.07] (0.2,-0.95) ellipse[x radius=0.06, y radius=0.04] (0.22,-0.58) ellipse[x radius=0.1, y radius=0.07] (0.22,-0.58) ellipse[x radius=0.06, y radius=0.04]; + \fill[\duck@prison,even odd rule,rotate=110](-0.33,-0.55) ellipse[x radius=0.1, y radius=0.07] (-0.33,-0.55) ellipse[x radius=0.06, y radius=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); + \fill[\duck@prison,even odd rule,rotate=110](-0.07,-0.6) ellipse[x radius=0.1, y radius=0.07] (-0.07,-0.6) ellipse[x radius=0.06, y radius=0.04]; \end{scope} \fi % @@ -1191,14 +1239,14 @@ \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); + (0.62,1.32) ellipse[x radius=0.2, y radius=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); + \clip[rotate=-5] (1.2,1.7) ellipse[x radius=0.3, y radius=0.4]; + \fill[\duck@bill,rotate=-5] (0.8,1.5) ellipse[x radius=0.3, y radius=0.4]; \end{scope} \fi % @@ -1206,17 +1254,17 @@ \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); + \fill[\duck@basket, even odd rule] (1,0.6) ellipse[x radius=0.35, y radius=0.1] (1,0.6) ellipse[x radius=0.3, y radius=0.07]; + \fill[\duck@basket!75!black] (1,0.6) ellipse[x radius=0.3, y radius=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); + \fill[\duck@eggb, rotate=-5] (0.95,0.72) ellipse[x radius=0.09, y radius=0.13]; + \fill[\duck@egga, rotate=10] (0.94,0.42) ellipse[x radius=0.09, y radius=0.13]; + \fill[\duck@eggc, rotate=-30] (0.7,1.08) ellipse[x radius=0.09, y radius=0.13]; \end{scope} \fi% % @@ -1236,7 +1284,7 @@ \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); + \fill[even odd rule,\duck@crozier] (1.5,1.6) circle[radius=0.2] (1.5,1.6) circle[radius=0.1]; \end{scope} \fill[\duck@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0); \fi @@ -1244,7 +1292,7 @@ % stethoscope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@stethoscope \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); + \fill[\duck@stethoscope] (0.35,0.7) circle[radius=0.1]; \begin{scope} \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 ; @@ -1271,7 +1319,7 @@ % % crystal ball %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifduck@crystalball - \shade[ball color=\duck@crystalball,opacity=0.7] (0.93,0.5) circle (0.33); + \shade[ball color=\duck@crystalball,opacity=0.7] (0.93,0.5) circle[radius=0.33]; \fi % % Cheese %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1279,7 +1327,7 @@ \begin{scope}[xshift=26,yshift=-2] \fill[\duck@cheese] (-0.3200,0.8058) -- (0.0608,0.7220) -- (0.0608,0.6366) -- (-0.3200,0.5410) -- (0.2143,0.4236) .. controls (0.3395,0.4810) and (0.4241,0.5627) .. (0.4117,0.6253) -- (0.4117,0.7634) .. controls (0.4261,0.8618) and (0.2607,0.8954) .. (0.1907,0.8962) -- cycle; \fill[\duck@cheese!35!white] (-0.3200,0.8057) -- (-0.3200,0.5410) -- (0.2143,0.4236) -- (0.2143,0.7381) -- cycle; - \fill[\duck@cheese] (-0.23,0.71) circle (0.04) (0.0,0.55) circle (0.04) (-0.23,0.58) circle (0.02) (-0.15,0.6) circle (0.02) (-0.1,0.7) circle (0.02) (0.1,0.65) circle (0.02) (0,0.65) circle (0.02) (0.1,0.5) circle (0.02) (0.07,0.55) circle (0.01) (0.12,0.6) circle (0.01) (-0.08,0.54) circle (0.01); + \fill[\duck@cheese] (-0.23,0.71) circle[radius=0.04] (0.0,0.55) circle[radius=0.04] (-0.23,0.58) circle[radius=0.02] (-0.15,0.6) circle[radius=0.02] (-0.1,0.7) circle[radius=0.02] (0.1,0.65) circle[radius=0.02] (0,0.65) circle[radius=0.02] (0.1,0.5) circle[radius=0.02] (0.07,0.55) circle[radius=0.01] (0.12,0.6) circle[radius=0.01] (-0.08,0.54) circle[radius=0.01]; \end{scope} \fi % @@ -1318,13 +1366,18 @@ % % 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, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05]; + \fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03]; + \fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2]; \fill[cyan!10!white] (0.92,0.6) -- (0.75,0.9) -- (1.18,0.83) -- cycle; \fill[gray!60!white] (0.928,0.64) -- (0.85,0.77) -- (1.08,0.77) -- cycle; - \fill[green!40!brown!60!white] (0.94,0.71) circle (0.04); - \fill[red!80!black] (0.94,0.72) circle (0.01); + \fill[green!40!brown!60!white] (0.94,0.71) circle[radius=0.04]; + \fill[red!80!black] (0.94,0.72) circle[radius=0.01]; +\fi +% +% overleaf duck +\ifduck@overleaf + \fill[white] \duckpathoverleaf; \fi % % wing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1343,15 +1396,15 @@ % Random ducks % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\ifluatex - \let\pdfrandomseed\randomseed -\fi - -\ifxetex - \pgfmathsetseed{\time} +\ifdefined\pdfrandomseed % pdflatex \else - \pgfmathsetseed{\number\pdfrandomseed} + \ifdefined\randomseed + \let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex + \else + \let\pdfrandomseed\time % pre TL19 xelatex + \fi \fi +\pgfmathsetseed{\number\pdfrandomseed} \pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{mohican}{mullet}{beard}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}{queencrown}{kingcrown}{harlequin}{strawhat}{parting}} \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}{stethoscope}{neckerchief}{cheese}{shovel}{pickaxe}{crystalball}} @@ -1593,6 +1646,10 @@ (1.4338,1.0258) -- cycle } +\newcommand{\duckpathoverleaf}{% + (1.2699,0.6095) .. controls (1.2710,0.5992) and (1.2752,0.5910) .. (1.2822,0.5852) .. controls (1.2892,0.5793) and (1.2983,0.5763) .. (1.3095,0.5763) .. controls (1.3165,0.5762) and (1.3233,0.5778) .. (1.3295,0.5809) .. controls (1.3353,0.5840) and (1.3401,0.5885) .. (1.3436,0.5940) -- (1.3792,0.5940) .. controls (1.3731,0.5785) and (1.3640,0.5664) .. (1.3521,0.5578) .. controls (1.3398,0.5492) and (1.3252,0.5447) .. (1.3103,0.5449) .. controls (1.3002,0.5448) and (1.2902,0.5467) .. (1.2808,0.5505) .. controls (1.2718,0.5544) and (1.2636,0.5601) .. (1.2567,0.5672) .. controls (1.2500,0.5742) and (1.2446,0.5825) .. (1.2410,0.5915) .. controls (1.2372,0.6005) and (1.2353,0.6101) .. (1.2353,0.6198) .. controls (1.2352,0.6294) and (1.2370,0.6389) .. (1.2404,0.6479) .. controls (1.2438,0.6567) and (1.2489,0.6647) .. (1.2554,0.6715) .. controls (1.2625,0.6790) and (1.2709,0.6850) .. (1.2802,0.6892) .. controls (1.2891,0.6933) and (1.2988,0.6954) .. (1.3086,0.6955) .. controls (1.3207,0.6955) and (1.3325,0.6926) .. (1.3432,0.6871) .. controls (1.3540,0.6813) and (1.3633,0.6732) .. (1.3705,0.6634) .. controls (1.3751,0.6571) and (1.3786,0.6501) .. (1.3807,0.6427) .. controls (1.3831,0.6341) and (1.3842,0.6253) .. (1.3841,0.6164) .. controls (1.3840,0.6139) and (1.3839,0.6119) .. (1.3837,0.6092) .. controls (1.3458,0.6093) and (1.3079,0.6094) .. (1.2699,0.6095) -- cycle(1.3486,0.6358) .. controls (1.3458,0.6453) and (1.3410,0.6525) .. (1.3343,0.6575) .. controls (1.3276,0.6625) and (1.3192,0.6650) .. (1.3090,0.6650) .. controls (1.3004,0.6651) and (1.2920,0.6622) .. (1.2852,0.6570) .. controls (1.2783,0.6517) and (1.2733,0.6443) .. (1.2711,0.6359) .. controls (1.2969,0.6359) and (1.3228,0.6358) .. (1.3486,0.6358) -- cycle(1.5160,0.5487) -- (1.5160,0.5662) .. controls (1.5122,0.5593) and (1.5064,0.5538) .. (1.4992,0.5505) .. controls (1.4920,0.5471) and (1.4828,0.5455) .. (1.4715,0.5455) .. controls (1.4505,0.5455) and (1.4329,0.5527) .. (1.4187,0.5670) .. controls (1.4046,0.5814) and (1.3976,0.5993) .. (1.3975,0.6206) .. controls (1.3975,0.6303) and (1.3993,0.6401) .. (1.4029,0.6492) .. controls (1.4063,0.6580) and (1.4114,0.6661) .. (1.4180,0.6729) .. controls (1.4246,0.6801) and (1.4327,0.6857) .. (1.4416,0.6895) .. controls (1.4509,0.6932) and (1.4608,0.6950) .. (1.4708,0.6949) .. controls (1.4800,0.6951) and (1.4891,0.6933) .. (1.4976,0.6896) .. controls (1.5050,0.6862) and (1.5112,0.6807) .. (1.5156,0.6739) -- (1.5156,0.6911) -- (1.5480,0.6911) -- (1.5480,0.5485) -- (1.5160,0.5485) -- (1.5160,0.5487) -- cycle(1.4436,0.5910) .. controls (1.4513,0.5831) and (1.4619,0.5787) .. (1.4729,0.5789) .. controls (1.4833,0.5789) and (1.4926,0.5829) .. (1.5006,0.5911) .. controls (1.5083,0.5986) and (1.5126,0.6088) .. (1.5126,0.6196) .. controls (1.5127,0.6307) and (1.5084,0.6414) .. (1.5006,0.6494) .. controls (1.4926,0.6577) and (1.4833,0.6619) .. (1.4727,0.6619) .. controls (1.4618,0.6621) and (1.4514,0.6577) .. (1.4439,0.6499) .. controls (1.4361,0.6423) and (1.4318,0.6318) .. (1.4317,0.6205) .. controls (1.4315,0.6092) and (1.4355,0.5991) .. (1.4436,0.5910) -- cycle(1.6366,0.6913) -- (1.6366,0.6617) -- (1.6127,0.6617) -- (1.6127,0.5487) -- (1.5806,0.5487) -- (1.5806,0.6617) -- (1.5637,0.6617) -- (1.5637,0.6913) -- (1.5796,0.6913) -- (1.5796,0.6952) .. controls (1.5796,0.7102) and (1.5838,0.7214) .. (1.5922,0.7288) .. controls (1.6005,0.7362) and (1.6131,0.7399) .. (1.6300,0.7399) .. controls (1.6324,0.7398) and (1.6347,0.7396) .. (1.6370,0.7395) -- (1.6370,0.7097) -- (1.6347,0.7097) .. controls (1.6272,0.7097) and (1.6218,0.7084) .. (1.6186,0.7059) .. controls (1.6154,0.7034) and (1.6138,0.6993) .. (1.6138,0.6936) -- (1.6138,0.6910) .. controls (1.6214,0.6913) and (1.6290,0.6912) .. (1.6366,0.6913) -- cycle(1.1906,0.5487) -- (1.2231,0.5487) -- (1.2231,0.7374) -- (1.1906,0.7374) -- cycle(0.9820,0.6095) .. controls (0.9831,0.5992) and (0.9872,0.5910) .. (0.9943,0.5852) .. controls (1.0013,0.5793) and (1.0104,0.5763) .. (1.0216,0.5763) .. controls (1.0285,0.5762) and (1.0354,0.5778) .. (1.0416,0.5809) .. controls (1.0474,0.5839) and (1.0522,0.5885) .. (1.0556,0.5940) -- (1.0914,0.5940) .. controls (1.0854,0.5785) and (1.0763,0.5664) .. (1.0643,0.5578) .. controls (1.0522,0.5492) and (1.0382,0.5449) .. (1.0225,0.5449) .. controls (1.0124,0.5448) and (1.0024,0.5467) .. (0.9931,0.5505) .. controls (0.9840,0.5544) and (0.9758,0.5601) .. (0.9690,0.5672) .. controls (0.9622,0.5742) and (0.9569,0.5825) .. (0.9532,0.5915) .. controls (0.9495,0.6005) and (0.9475,0.6101) .. (0.9475,0.6198) .. controls (0.9475,0.6294) and (0.9492,0.6389) .. (0.9527,0.6479) .. controls (0.9560,0.6567) and (0.9611,0.6647) .. (0.9677,0.6715) .. controls (0.9747,0.6790) and (0.9830,0.6850) .. (0.9924,0.6892) .. controls (1.0012,0.6933) and (1.0109,0.6955) .. (1.0207,0.6955) .. controls (1.0327,0.6955) and (1.0446,0.6927) .. (1.0552,0.6871) .. controls (1.0660,0.6813) and (1.0753,0.6732) .. (1.0826,0.6634) .. controls (1.0871,0.6571) and (1.0906,0.6501) .. (1.0926,0.6427) .. controls (1.0949,0.6341) and (1.0960,0.6253) .. (1.0959,0.6164) .. controls (1.0959,0.6139) and (1.0957,0.6119) .. (1.0956,0.6092) .. controls (1.0577,0.6100) and (1.0199,0.6095) .. (0.9820,0.6095) -- cycle(1.0606,0.6358) .. controls (1.0578,0.6453) and (1.0531,0.6526) .. (1.0463,0.6575) .. controls (1.0397,0.6625) and (1.0312,0.6650) .. (1.0210,0.6650) .. controls (1.0124,0.6651) and (1.0041,0.6622) .. (0.9973,0.6570) .. controls (0.9903,0.6517) and (0.9853,0.6443) .. (0.9830,0.6359) .. controls (1.0089,0.6359) and (1.0348,0.6358) .. (1.0606,0.6358) -- cycle(1.1761,0.6624) .. controls (1.1632,0.6614) and (1.1542,0.6580) .. (1.1492,0.6523) .. controls (1.1441,0.6465) and (1.1415,0.6363) .. (1.1415,0.6214) -- (1.1415,0.5487) -- (1.1083,0.5487) -- (1.1083,0.6913) -- (1.1394,0.6913) -- (1.1394,0.6748) .. controls (1.1438,0.6808) and (1.1494,0.6856) .. (1.1559,0.6891) .. controls (1.1621,0.6923) and (1.1690,0.6938) .. (1.1760,0.6937) .. controls (1.1760,0.6833) and (1.1761,0.6728) .. (1.1761,0.6624) -- cycle(0.8646,0.8092) .. controls (0.8244,0.8248) and (0.6787,0.8306) .. (0.6784,0.7437) .. controls (0.6359,0.7165) and (0.6078,0.6721) .. (0.6078,0.6246) .. controls (0.6077,0.5410) and (0.7016,0.4916) .. (0.7705,0.5391) .. controls (0.8394,0.5866) and (0.8268,0.6919) .. (0.7486,0.7217) .. controls (0.7411,0.7246) and (0.7248,0.7297) .. (0.7117,0.7286) .. controls (0.6931,0.7168) and (0.6704,0.6924) .. (0.6597,0.6682) .. controls (0.6918,0.7064) and (0.7528,0.6983) .. (0.7737,0.6530) .. controls (0.7947,0.6076) and (0.7614,0.5559) .. (0.7115,0.5562) .. controls (0.6914,0.5562) and (0.6724,0.5649) .. (0.6594,0.5802) .. controls (0.6410,0.6019) and (0.6363,0.6254) .. (0.6400,0.6484) .. controls (0.6532,0.7289) and (0.7487,0.7748) .. (0.8197,0.7924) .. controls (0.7966,0.7801) and (0.7548,0.7600) .. (0.7255,0.7380) .. controls (0.8108,0.7051) and (0.8246,0.7770) .. (0.8646,0.8092) -- cycle(0.8731,0.5487) -- (0.8189,0.6913) -- (0.8542,0.6913) -- (0.8874,0.5965) -- (0.9217,0.6913) -- (0.9561,0.6913) -- (0.8991,0.5487) -- cycle +} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Picture mode ducks diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex index 25927172f0f..4c90b1f0e63 100644 --- a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex +++ b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex @@ -10,9 +10,6 @@ % Released under the LaTeX Project Public License v1.3c or later % See http://www.latex-project.org/lppl.txt % -% Version 1.1 -% April 7, 2019 -% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{tikzducks} |