texlive[54837] Master/texmf-dist: tikzducks (22apr20)

commits+karl at tug.org commits+karl at tug.org
Wed Apr 22 22:49:51 CEST 2020


Revision: 54837
          http://tug.org/svn/texlive?view=revision&revision=54837
Author:   karl
Date:     2020-04-22 22:49:51 +0200 (Wed, 22 Apr 2020)
Log Message:
-----------
tikzducks (22apr20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
    trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
    trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty

Modified: trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex	2020-04-22 15:31:50 UTC (rev 54836)
+++ trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex	2020-04-22 20:49:51 UTC (rev 54837)
@@ -14,12 +14,12 @@
 \documentclass[parskip=half]{scrartcl}
 
 % packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage[T1]{fontenc}	
-\usepackage[utf8]{inputenc}		
+\usepackage[T1]{fontenc}  
+\usepackage[utf8]{inputenc}    
 \usepackage[english]{babel}
 \usepackage[bitstream-charter]{mathdesign}
 \usepackage{tikzducks}
-\usetikzlibrary{ducks}
+\usetikzlibrary{ducks,3d}
 \usepackage[most]{tcolorbox}
 \usepackage[paper=a4paper,margin=3cm,foot=2cm]{geometry}
 \usepackage{url}
@@ -46,37 +46,37 @@
 \setlength{\footnotemargin}{0.7em}
 
 \lstdefinestyle{duckstyle}{%
-	language={[latex]TeX},
-	tabsize=2,
-	breaklines,
-	basicstyle=\footnotesize\ttfamily,
-	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,aodai,conicalhat,overleaf},
-	texcsstyle=*\color{duckblue}\bfseries,
-	keywordstyle=\color{red!60!black}\bfseries,
-	morekeywords={tikzpicture,picture,scope,patterns,calc,pgfinterruptboundingbox},
-	moretexcs={duck,picduck,path,definecolor,duckpathjacket,duckpathbody,duckpathgrumpybill,duckpathbill,duckpathtshirt,duckpathcape,duckpathshorthair,duckpathlonghair,duckpathcrazyhair,duckpathrecedinghair,duckpathcrown,scalebox,foreach,node,draw,PassOptionsToPackage,usetikzlibrary,selectcolormodel,colorlet,insignia,stripes,color,includegraphics,mcap,setboardfontcolors,setboardfontencoding,WhiteQueenOnWhite,WhiteKingOnWhite,superstripes,shuffleducks,randuck,randomhead,randomaccessories,duckpathmohican,duckpathmullet,duckpathqueencrown,duckpathkingcrown,duckpathdarthvader,duckpathhorsetail,tikzset,duckpathwing,shade},
-	delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
-	moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
-	index=[1][emph]
+  language={[latex]TeX},
+  tabsize=2,
+  breaklines,
+  basicstyle=\footnotesize\ttfamily,
+  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,aodai,conicalhat,overleaf,sailor},
+  texcsstyle=*\color{duckblue}\bfseries,
+  keywordstyle=\color{red!60!black}\bfseries,
+  morekeywords={tikzpicture,picture,scope,patterns,calc,pgfinterruptboundingbox},
+  moretexcs={duck,picduck,path,definecolor,duckpathjacket,duckpathbody,duckpathgrumpybill,duckpathbill,duckpathtshirt,duckpathcape,duckpathshorthair,duckpathlonghair,duckpathcrazyhair,duckpathrecedinghair,duckpathcrown,scalebox,foreach,node,draw,PassOptionsToPackage,usetikzlibrary,selectcolormodel,colorlet,insignia,stripes,color,includegraphics,mcap,setboardfontcolors,setboardfontencoding,WhiteQueenOnWhite,WhiteKingOnWhite,superstripes,shuffleducks,randuck,randomhead,randomaccessories,duckpathmohican,duckpathmullet,duckpathqueencrown,duckpathkingcrown,duckpathdarthvader,duckpathhorsetail,tikzset,duckpathwing,shade,duckhookbackground,duckhookbody,duckhookclothing,duckhookhair,duckhookhat,duckhookforeground},
+  delim ={[s][\ttfamily\color{green!50!black}]{$}{$}},
+  moredelim=[is][\footnotesize\ttfamily\color{orange!70!black}]{|}{|},
+  index=[1][emph]
 }
 
 \tcbset{%
-	colframe=duckblue,
-	arc=2mm,
-	fonttitle=\bfseries,
-	sidebyside,
-	listing options={style=duckstyle},
-	center lower,
-	righthand width=6.5cm,
-	bottom=0pt, 
-	top=0pt,
-	before lower={%
-		\setlength{\parskip}{0.5cm}%
-		\spaceskip=5\fontdimen2\font%
-	},
+  colframe=duckblue,
+  arc=2mm,
+  fonttitle=\bfseries,
+  sidebyside,
+  listing options={style=duckstyle},
+  center lower,
+  righthand width=6.5cm,
+  bottom=0pt, 
+  top=0pt,
+  before lower={%
+    \setlength{\parskip}{0.5cm}%
+    \spaceskip=5\fontdimen2\font%
+  },
 }
 
 \lstset{style=duckstyle}
@@ -87,11 +87,11 @@
 \newlength{\duckoffset}
 
 \cfoot{%
-	\tikzset{external/export=false}%
-	\shuffleducks
-	\begin{tikzpicture}[scale=0.5] 
-	    \duck[signpost=\scalebox{0.6}{\thepage},\randomhead]
-	\end{tikzpicture}
+  \tikzset{external/export=false}%
+  \shuffleducks
+  \begin{tikzpicture}[scale=0.5] 
+      \duck[signpost=\scalebox{0.6}{\thepage},\randomhead]
+  \end{tikzpicture}
 } 
 \pagestyle{scrheadings}
 \indexsetup{firstpagestyle=scrheadings}
@@ -99,7 +99,7 @@
 
 \usetikzlibrary{external}
 \ifnum\pdfshellescape=1
-	\tikzexternalize[prefix=./tikzducks-doc-figures/]
+  \tikzexternalize[prefix=./tikzducks-doc-figures/]
 \fi
 
 % meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -106,17 +106,17 @@
 \title{The \texorpdfstring{\tikzducks}{tikzducks} package}
 \subtitle{using ducks in \TikZ}
 \author{%
-	\texorpdfstring{\texttt{samcarter} (alias 
-		\tikzset{external/export=false}%
-		\begin{tikzpicture}[scale=0.3,baseline=3pt]
-			\duck[body=yellow!50!brown!50!white,
-					longhair=red!50!brown, 
-					jacket=blue!50!black]
-		\end{tikzpicture})\\[0.8em]
-		\url{https://github.com/samcarter/tikzducks}\\
-		\url{https://www.ctan.org/pkg/tikzducks}
-	}{samcarter}}
-\date{Version v1.3 \textendash{} 2020/01/03}
+  \texorpdfstring{\texttt{samcarter} (alias 
+    \tikzset{external/export=false}%
+    \begin{tikzpicture}[scale=0.3,baseline=3pt]
+      \duck[body=yellow!50!brown!50!white,
+          longhair=red!50!brown, 
+          jacket=blue!50!black]
+    \end{tikzpicture})\\[0.8em]
+    \url{https://github.com/samcarter/tikzducks}\\
+    \url{https://www.ctan.org/pkg/tikzducks}
+  }{samcarter}}
+\date{Version v1.4 \textendash{} 2020/04/22}
 
 \begin{document}
 \maketitle
@@ -126,38 +126,38 @@
 \label{intro}
 
 Rubber ducks can be made of latex, but can they also be made with \LaTeX? Yes! The \tikzducks package is a \LaTeX{} package for rubber ducks to be used in \TikZ pictures. 
-This project is a continuation of an answer at TeX.Stackexchange: \href{tex.stackexchange.com/a/347458/36296}{How can we draw a duck?}.
+This project is a continuation of \href{tex.stackexchange.com/a/347458/36296}{How can we draw a duck?}.
 
 This package is work in progress (and will probably never be really finished as there is an infinite amount of things which could be added), therefore I would be happy to hear your feedback and ideas how to improve the package. 
-The head version of the source code can be found on \url{github.com/samcarter/tikzducks}, including a bug tracker -- please make constructive use of it! A more stable package version can be found on \CTAN (\url{www.ctan.org/pkg/tikzducks}) and is included in both \miktex and \texlive as \tikzducks. If you seek any other assistance (not bug reports/feature requests), I suggest using the \href{https://tex.stackexchange.com/questions/tagged/tikzducks}{\texttt{\{tikzducks\}}-tag} on TeX.Stackexchange.
+The head version of the source code can be found on \url{github.com/samcarter/tikzducks}, including a bug tracker -- please make constructive use of it! A more stable package version can be found on \CTAN (\url{www.ctan.org/pkg/tikzducks}) and is included in both \miktex and \texlive as \tikzducks. If you seek any other assistance (not bug reports/feature requests), I suggest asking a question at \url{topanswers.xyz/tex}.
 
 \subsection{Acknowledgements}
 
-Without the friendly and helpful community of \href{https://tex.stackexchange.com/}{TeX.Stackexchange} this package would not exist. I would like to thank a few fellow users in particular:
+Without the friendly and helpful community of \TeX{} users this package would not exist. I would like to thank a few fellow users in particular:
 
 First of all 
 %
-\href{https://tex.stackexchange.com/users/101651/carlatex}{Carla Maggi} for pointing out the overwhelming need of having a \tikzducks package and valuable contribution to the package code, in particular the \hyperref[sec:footballducks]{football ducks},
+Carla Maggi for pointing out the overwhelming need of having a \tikzducks package and valuable contribution to the package code, in particular the \hyperref[sec:footballducks]{football ducks},
 %
-\href{https://tex.stackexchange.com/users/3094/paulo-cereda}{Paulo Cereda} for his contagious enthusiasm for ducks (\emph{Quack!}) and
+Paulo Cereda for his contagious enthusiasm for ducks (\emph{Quack!}) and
 %
-\href{https://tex.stackexchange.com/users/2388/ulrike-fischer}{Ulrike Fischer} for her useful \TikZ advices and contributions to the package and coming to rescue for keyword highlighting in the package documentation.
+Ulrike Fischer for her useful \TikZ advices and contributions to the package and coming to rescue for keyword highlighting in the package documentation.
 
 Many other users contributed to this package (in random order):
 %
-\href{https://tex.stackexchange.com/users/4427/egreg}{Enrico Gregorio} helped to implement the \lstinline|\tikzset{}| interface which makes it much easier to adjust the properties of the ducks to fit the user needs,
+Enrico Gregorio helped to implement the \lstinline|\tikzset{}| interface which makes it much easier to adjust the properties of the ducks to fit the user needs,
 % 
 Andrew Stacey contributed the \TikZ Library ``ducks'',
 %
-\href{https://tex.stackexchange.com/users/51022/symbol-1}{Symbol~1}  solved a few problems with default key values,
+Symbol~1 solved a few problems with default key values,
 %
-\href{https://tex.stackexchange.com/users/148434/mihikma}{Mihikma} created the duck's beard,
+Mihikma created the duck's beard,
 %
-\href{https://github.com/yudai-nkt}{Yudai Nakata} helped with problems of \lstinline|\pdfrandomseed|,
+Yudai Nakata helped with problems of \lstinline|\pdfrandomseed|,
 %
- at marmot for his seemingly infinite knowledge of \TikZ which he shared with the world on TeX.SE    
+ at marmot for his seemingly infinite knowledge of \TikZ which he shared with the world    
 %
-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.
+and last but not least my thanks go to Martin Schr\"oder for his feedback to the code review.
 
 \pagebreak
 The ducks mostly consist of basic geometric shapes drawn in \TikZ. Some of the more complex shapes (e.g.\ the different hair styles) are first drawn in \texttt{inkscape} (\url{https://inkscape.org}) and then exported to \TikZ paths using the \texttt{SVG to TikZ/PGF} extension (\url{https://github.com/kjellmf/svg2tikz}).
@@ -167,7 +167,7 @@
 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}[morekeywords={xcolor,svgnames}]
-	\PassOptionsToPackage{svgnames}{xcolor}
+  \PassOptionsToPackage{svgnames}{xcolor}
 \end{lstlisting}
 It also uses the \lstinline|\usetikzlibrary{patterns}| and \lstinline|\usetikzlibrary{calc}|. 
 
@@ -183,7 +183,7 @@
 The basic usage is fairly simple, to draw a duck:
 \begin{tcblisting}{title={Basic duck}}
 \begin{tikzpicture}
-	\duck
+  \duck
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -190,7 +190,7 @@
 To customise this basic duck, the package uses \lstinline|pgf| keys. For almost all parts the colour can be changed using \lstinline|<shape name>=<colour name>|. For example to change the colour of the duck:
 \begin{tcblisting}{title={Blue duck}}
 \begin{tikzpicture}
-	\duck[body=blue]
+  \duck[body=blue]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -199,13 +199,13 @@
 \clearpage
 In addition to the keys defined in this package, all usual \TikZ and \lstinline|pgf| keys can also be used. For example if the size of the ducks should be changed or shifted:
 
-\begin{tcblisting}{title={Scaled duck and \emph{The Ugly Duckling}},	righthand width=3cm}
+\begin{tcblisting}{title={Scaled duck and \emph{The Ugly Duckling}},  righthand width=3cm}
 \begin{tikzpicture}[scale=0.6]
-	\duck
-	\duck[xshift=90pt, scale=.3, yshift=150pt]
-	\duck[xshift=60pt, scale=.3, yshift=100pt]
-	\duck[body=gray!50!white,head=gray!50!white,
-		xshift=80pt, scale=.3, yshift=50pt]
+  \duck
+  \duck[xshift=90pt, scale=.3, yshift=150pt]
+  \duck[xshift=60pt, scale=.3, yshift=100pt]
+  \duck[body=gray!50!white,head=gray!50!white,
+    xshift=80pt, scale=.3, yshift=50pt]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -248,7 +248,7 @@
 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]
+  \duck[invisible]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -261,7 +261,7 @@
 \setlength{\unitlength}{0.6mm}
 \begin{tcblisting}{title={\texttt{picture} mode duck}}
 \begin{picture}(42,44)
-	\picduck
+  \picduck
 \end{picture}
 \end{tcblisting}
 }
@@ -272,10 +272,10 @@
 
 \begin{tcblisting}{title={Harlequin duck}}
 \begin{tikzpicture}
-	\duck[body=yellow,
-		head=yellow!50!orange, 
-		bill=red,
-		eye=green]
+  \duck[body=yellow,
+    head=yellow!50!orange, 
+    bill=red,
+    eye=green]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -283,28 +283,28 @@
 
 \begin{tcblisting}{title={Grumpy duck}}
 \begin{tikzpicture}
-	\duck[grumpy]
+  \duck[grumpy]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[grumpy, bill=cyan]
+  \duck[grumpy, bill=cyan]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Laughing duck}}
 \begin{tikzpicture}
-	\duck[laughing]
+  \duck[laughing]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[laughing, bill=red]
+  \duck[laughing, bill=red]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Parrot duck}}
 \begin{tikzpicture}
-	\duck[parrot]
+  \duck[parrot]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[parrot, bill=blue]
+  \duck[parrot, bill=blue]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -315,43 +315,43 @@
 
 \begin{tcblisting}{title={Long hair duck}}
 \begin{tikzpicture}
-	\duck[longhair]
+  \duck[longhair]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Short hair duck}}
 \begin{tikzpicture}
-	\duck[shorthair]
+  \duck[shorthair]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Parting hair duck}}
 \begin{tikzpicture}
-	\duck[parting]
+  \duck[parting]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Crazy hair duck}}
 \begin{tikzpicture}
-	\duck[crazyhair]
+  \duck[crazyhair]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Receding hair duck}}
 \begin{tikzpicture}
-	\duck[recedinghair]
+  \duck[recedinghair]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Mohican duck}}
 \begin{tikzpicture}
-	\duck[mohican]
+  \duck[mohican]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Mullet duck}}
 \begin{tikzpicture}
-	\duck[mullet]
+  \duck[mullet]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -358,24 +358,22 @@
 And of course the colour of each hair style can be adjusted:
 \begin{tcblisting}{title={Coloured hair duck}}
 \begin{tikzpicture}
-	\duck[longhair=teal]
+  \duck[longhair=teal]
 \end{tikzpicture}
 \end{tcblisting}
 
 Eyebrows and a beard are also part of the package. The colour choice is more tricky for them -- if a colour is explicitly specified (\lstinline|eyebrow=<colour name>| or \lstinline|beard=<colour name>|) this colour is of course used, but if no colour is given, it first falls back to the hair colour and only if the duck does not have any hairs, the default colour is applied.
 
-\enlargethispage{2\baselineskip}
-
 \begin{tcblisting}{title={Eye brow duck}}
 \begin{tikzpicture}
-	\duck[eyebrow]
+  \duck[eyebrow]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[longhair=blue,eyebrow]
+  \duck[longhair=blue,eyebrow]
 \end{tikzpicture}
 
 \begin{tikzpicture}
-	\duck[crazyhair=red,eyebrow=blue]
+  \duck[crazyhair=red,eyebrow=blue]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -382,10 +380,10 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Beard duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[beard=white!80!brown]
+  \duck[beard=white!80!brown]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[recedinghair=white,beard]
+  \duck[recedinghair=white,beard]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{The beard is based on an answer by Mihikma, see \url{https://tex.stackexchange.com/a/401777/36296}}
@@ -398,43 +396,43 @@
 
 \begin{tcblisting}{title={T-shirt duck}}
 \begin{tikzpicture}
-	\duck[tshirt=red]
+  \duck[tshirt=red]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Jacket duck}}
 \begin{tikzpicture}
-	\duck[jacket=blue]
+  \duck[jacket=blue]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Tie duck}}
 \begin{tikzpicture}
-	\duck[tshirt,
-			jacket=gray,
-			tie]
+  \duck[tshirt,
+      jacket=gray,
+      tie]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Bowtie duck}}
 \begin{tikzpicture}
-	\duck[tshirt,
-			jacket=gray,
-			bowtie]
+  \duck[tshirt,
+      jacket=gray,
+      bowtie]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Áo dài duck}}
 \begin{tikzpicture}
-	\duck[tshirt=cyan,
-				aodai=blue!50!black
-	]
+  \duck[tshirt=cyan,
+        aodai=blue!50!black
+  ]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Cape duck}}
 \begin{tikzpicture}
-	\duck[cape]
+  \duck[cape]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -447,82 +445,88 @@
 
 \begin{tcblisting}{title={Swimming duck}}
 \begin{tikzpicture}
-	\duck[water=cyan!50!blue]
+  \duck[water=cyan!50!blue]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Alien duck}}
 \begin{tikzpicture}
-	\duck[alien=green!50!brown]
+  \duck[alien=green!50!brown]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Hat duck}}
 \begin{tikzpicture}
-	\duck[hat=red!50!black]
+  \duck[hat=red!50!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Tophat duck}}
 \begin{tikzpicture}
-	\duck[tophat=blue!20!black]
+  \duck[tophat=blue!20!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Strawhat duck}}
 \begin{tikzpicture}
-	\duck[strawhat=brown!50!white, ribbon=gray]
+  \duck[strawhat=brown!50!white, ribbon=gray]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Basecap duck}}
 \begin{tikzpicture}
-	\duck[cap=red!80!black]
+  \duck[cap=red!80!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Conical hat duck}}
 \begin{tikzpicture}
-	\duck[conicalhat=brown]
+  \duck[conicalhat=brown]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Santa Duck}}
 \begin{tikzpicture}
-	\duck[santa=red!80!black, 
-	      beard=white!80!brown]
+  \duck[santa=red!80!black, 
+        beard=white!80!brown]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Graduate duck}}
 \begin{tikzpicture}
-	\duck[graduate=gray!20!black,tassel=red!70!black]
-\end{tikzpicture}	
+  \duck[graduate=gray!20!black,tassel=red!70!black]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Beret duck}}
 \begin{tikzpicture}
-	\duck[beret=red!70!black]
-\end{tikzpicture}	
+  \duck[beret=red!70!black]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Peaked cap duck}}
 \begin{tikzpicture}
-	\duck[peakedcap=blue!50!black]
-\end{tikzpicture}	
+  \duck[peakedcap=blue!50!black]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Harlequin duck}}
 \begin{tikzpicture}
-	\duck[harlequin=blue,
-		niuqelrah=red]
-\end{tikzpicture}	
+  \duck[harlequin=blue,
+    niuqelrah=red]
+\end{tikzpicture}  
 \end{tcblisting}
 
+\begin{tcblisting}{title={Sailor duck}}
+\begin{tikzpicture}
+  \duck[sailor=white]
+\end{tikzpicture}  
+\end{tcblisting}
+
 \begin{tcblisting}{title={Crown duck}}
 \begin{tikzpicture}
 \duck[body=black!75!white,
-			crown=yellow!70!brown]
+      crown=yellow!70!brown]
 \end{tikzpicture}
 
 \begin{tikzpicture}
@@ -535,27 +539,27 @@
 
 \begin{tcblisting}{title={Knight duck}}
 \begin{tikzpicture}
-	\duck[helmet=gray]
+  \duck[helmet=gray]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Viking duck}}
 \begin{tikzpicture}
-	\duck[viking=gray]
+  \duck[viking=gray]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Devil duck}}
 \begin{tikzpicture}
-	\duck[devil=red]
+  \duck[devil=red]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Unicorn duck}}
 \begin{tikzpicture}
-	\duck[body=pink,
-		unicorn=magenta!60!violet,
-		longhair=magenta!60!violet]
+  \duck[body=pink,
+    unicorn=magenta!60!violet,
+    longhair=magenta!60!violet]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -588,42 +592,42 @@
 
 \begin{tcblisting}{title={Witch duck}}
 \begin{tikzpicture}
-	\duck[witch=black!50!gray,
-				longhair=red!80!black,
-				jacket=black!50!gray,
-				magicwand]
+  \duck[witch=black!50!gray,
+        longhair=red!80!black,
+        jacket=black!50!gray,
+        magicwand]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Magic duck}}
 \begin{tikzpicture}
-	\duck[magichat,magicwand]
+  \duck[magichat,magicwand]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[magichat=teal,
-				magicstars=blue!30!cyan,
-				magicwand]
+  \duck[magichat=teal,
+        magicstars=blue!30!cyan,
+        magicwand]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Glasses duck}}
 \begin{tikzpicture}
-	\duck[glasses=red!50!black]
+  \duck[glasses=red!50!black]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[squareglasses=blue!50!black]
+  \duck[squareglasses=blue!50!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Sunglasses duck}}
 \begin{tikzpicture}
-	\duck[sunglasses=blue]
+  \duck[sunglasses=blue]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Superhero duck}}
 \begin{tikzpicture}
-	\duck[mask=teal,cape=teal]
+  \duck[mask=teal,cape=teal]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -633,10 +637,10 @@
 \end{tikzpicture}
 \begin{tikzpicture} 
 \duck[signpost=\scalebox{0.4}{
-	\parbox{2cm}{\color{black}
-	\centering Science\\ first}},
-	signcolour=brown!70!gray,
-	signback=white!80!brown]
+  \parbox{2cm}{\color{black}
+  \centering Science\\ first}},
+  signcolour=brown!70!gray,
+  signback=white!80!brown]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -643,13 +647,13 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Speaking duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[speech={Bla},bubblecolour=cyan!20!white,laughing]
+  \duck[speech={Bla},bubblecolour=cyan!20!white,laughing]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Thinking duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[think={Blub},bubblecolour=white!95!yellow]
+  \duck[think={Blub},bubblecolour=white!95!yellow]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{Both the speech and thought bubble are inspired by the wonderful \href{https://www.ctan.org/pkg/ducksay}{ducksay package}}
@@ -657,23 +661,23 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Buttons duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[buttons=brown!50!black]
-\end{tikzpicture}	
+  \duck[buttons=brown!50!black]
+\end{tikzpicture}  
 \begin{tikzpicture}
-	\duck[jacket=red,buttons]
-\end{tikzpicture}	
+  \duck[jacket=red,buttons]
+\end{tikzpicture}  
 \end{tcblisting}
 \footnotetext[\thefootnote]{In case the duck is wearing a jacket, the buttons are positioned a bit lower}
 
 \begin{tcblisting}{title={Dinner jacket duck}}
 \begin{tikzpicture}
-	\duck[jacket=gray,lapel=black,buttons]
-\end{tikzpicture}	
+  \duck[jacket=gray,lapel=black,buttons]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Book duck}}
 \begin{tikzpicture}
-	\duck[book=\scalebox{0.5}{\TeX}]
+  \duck[book=\scalebox{0.5}{\TeX}]
 \end{tikzpicture}
 \begin{tikzpicture}
 \duck[book=\scalebox{0.6}{$\pi$}, bookcolour=blue!50!black]
@@ -682,13 +686,13 @@
 
 \begin{tcblisting}{title={Cricket duck}}
 \begin{tikzpicture}
-	\duck[cricket=red!50!black]
+  \duck[cricket=red!50!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Hockey duck}}
 \begin{tikzpicture}
-	\duck[hockey=brown!70!black]
+  \duck[hockey=brown!70!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -695,7 +699,7 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Football duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[football=white!85!yellow]
+  \duck[football=white!85!yellow]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{The football duck is simplified version from an answer by Carla Maggi, \url{https://tex.stackexchange.com/a/387126/36296}}
@@ -703,7 +707,7 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Lightsaber duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[lightsaber=red,darthvader=black!30!gray]
+  \duck[lightsaber=red,darthvader=black!30!gray]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{Dedicated to the Counter Wizard (aka Christian Hupfer)}
@@ -710,37 +714,37 @@
 
 \begin{tcblisting}{title={Torch duck}}
 \begin{tikzpicture}
-	\duck[torch=black!30!gray]
+  \duck[torch=black!30!gray]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Prison duck}}
 \begin{tikzpicture}
-	\duck[prison=gray]
+  \duck[prison=gray]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Shepherd duck}}
 \begin{tikzpicture}
-	\duck[crozier=brown!80!black]
+  \duck[crozier=brown!80!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Necklace duck}}
 \begin{tikzpicture}
-	\duck[necklace=gray!20!white]
-\end{tikzpicture}	
+  \duck[necklace=gray!20!white]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Icecream duck}}
 \begin{tikzpicture}
-	\duck[icecream]
+  \duck[icecream]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[icecream=brown, 
-	      flavoura=green!50!brown, 
-				flavourb=white, 
-				flavourc=red]
+  \duck[icecream=brown, 
+        flavoura=green!50!brown, 
+        flavourb=white, 
+        flavourc=red]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -747,8 +751,8 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Chef duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[chef=white!95!yellow,
-			rollingpin=brown!80!black]
+  \duck[chef=white!95!yellow,
+      rollingpin=brown!80!black]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{The chef duck is based on an idea by Carla Maggi, please see the following link for a more sophisticated version of the toque and the rolling pin: \url{https://tex.stackexchange.com/a/387126/36296}}
@@ -756,37 +760,37 @@
 \begin{tcblisting}{title={Cake duck}}
 \begin{tikzpicture}
   \duck[cake=red!50!violet!80!black]
-\end{tikzpicture}	
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Pizza duck}}
 \begin{tikzpicture}
   \duck[pizza]
-\end{tikzpicture}	
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Baguette duck}}
 \begin{tikzpicture}
   \duck[baguette=brown]
-\end{tikzpicture}	
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Cheese duck}}
 \begin{tikzpicture}
   \duck[cheese=orange]
-\end{tikzpicture}	
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Milkshake duck}}
 \begin{tikzpicture}
-	\duck[milkshake=red!20!white]
-\end{tikzpicture}	
+  \duck[milkshake=red!20!white]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Wine duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[wine=red!70!black]
+  \duck[wine=red!70!black]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{According to the resident Italian wine expert of the \href{https://chat.stackexchange.com/transcript/message/40103109}{ TeX.SE chatroom}, the duck is drinking a fine Brunello di Montalcino}
@@ -793,13 +797,13 @@
 
 \begin{tcblisting}{title={Cocktail duck}}
 \begin{tikzpicture}
-	\duck[cocktail]
-\end{tikzpicture}	
+  \duck[cocktail]
+\end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Wing duck}}
 \begin{tikzpicture}
-	\duck[wing=yellow!90!brown]
+  \duck[wing=yellow!90!brown]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -806,17 +810,17 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Basket duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[basket=brown]
+  \duck[basket=brown]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Easter duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[bunny,easter]
+  \duck[bunny,easter]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[bunny,easter=brown,
-	egga=cyan,eggb=orange,eggc=teal]
+  \duck[bunny,easter=brown,
+  egga=cyan,eggb=orange,eggc=teal]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{The basket and Easter basket was kindly contributed by Benito van der Zander}
@@ -823,14 +827,14 @@
 
 \begin{tcblisting}{title={Ducktor}}
 \begin{tikzpicture}
-	\duck[stethoscope=gray!80!black]
+  \duck[stethoscope=gray!80!black]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Neckerchief duck}}
 \begin{tikzpicture}
-	\duck[neckerchief=red!70!black,
-		woggle=blue!60!black]
+  \duck[neckerchief=red!70!black,
+    woggle=blue!60!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -837,7 +841,7 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Snow Duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[snowduck=white]
+  \duck[snowduck=white]
 \end{tikzpicture}   
 \end{tcblisting}
 \footnotetext[\thefootnote]{The snowduck is dedicated to all Japanese \TeX\ users}
@@ -844,10 +848,10 @@
 
 \begin{tcblisting}{title={Vampire Duck}}
 \begin{tikzpicture}
-	\duck[vampire=white]
+  \duck[vampire=white]
 \end{tikzpicture}  
 \begin{tikzpicture}
-	\duck[laughing, vampire=white]
+  \duck[laughing, vampire=white]
 \end{tikzpicture}  
 \end{tcblisting}
 
@@ -854,32 +858,32 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Fortune Quacker$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[crystalball=cyan]
+  \duck[crystalball=cyan]
 \end{tikzpicture}   
 \end{tcblisting}
-\footnotetext[\thefootnote]{The crystal ball is kindly contributed by \href{https://tex.stackexchange.com/users/121799/marmot}{@marmot}}
+\footnotetext[\thefootnote]{The crystal ball is kindly contributed by @marmot}
 
 \begin{tcblisting}{title={Shovelling Duck}}
 \begin{tikzpicture}
-	\duck[shovel=gray]
+  \duck[shovel=gray]
 \end{tikzpicture}  
 \begin{tikzpicture}
-	\duck[pickaxe=gray]
+  \duck[pickaxe=gray]
 \end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Umbrella Duck}}
 \begin{tikzpicture}
-	\duck[umbrella=cyan]
+  \duck[umbrella=cyan]
 \end{tikzpicture}   
 \begin{tikzpicture}
-	\duck[umbrellaclosed=cyan]
+  \duck[umbrellaclosed=cyan]
 \end{tikzpicture}  
 \end{tcblisting}
 
 \begin{tcblisting}{title={Handbag Duck}}
 \begin{tikzpicture}
-	\duck[handbag=red!70!black]
+  \duck[handbag=red!70!black]
 \end{tikzpicture}   
 \end{tcblisting}
 
@@ -886,7 +890,7 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Overleaf Duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[overleaf]
+  \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}}
@@ -897,7 +901,7 @@
 
 \begin{tcblisting}{title={Random duck}}
 \begin{tikzpicture}
-	\randuck
+  \randuck
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -905,8 +909,8 @@
 
 \begin{tcblisting}{title={Random head gear and accessories}}
 \begin{tikzpicture}
-	\shuffleducks
-	\duck[\randomhead, \randomaccessories]
+  \shuffleducks
+  \duck[\randomhead, \randomaccessories]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -916,15 +920,15 @@
 
 \begin{tcblisting}{title={Adding things to the duck}}
 \begin{tikzpicture}
-	\duck
-	\fill[blue] (2,0) rectangle (1,1);
+  \duck
+  \fill[blue] (2,0) rectangle (1,1);
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Monochrome duck}}
 \begin{tikzpicture}
-	\selectcolormodel{gray}
-	\duck
+  \selectcolormodel{gray}
+  \duck
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -932,9 +936,9 @@
 
 \begin{tcblisting}{title={Redraw parts}}
 \begin{tikzpicture}
-	\duck
-	\path[preaction={fill, red!50!black},pattern=fivepointed stars, pattern color=yellow]  
-			\duckpathlonghair;
+  \duck
+  \path[preaction={fill, red!50!black},pattern=fivepointed stars, pattern color=yellow]  
+      \duckpathlonghair;
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -943,7 +947,6 @@
 \begin{lstlisting}[aboveskip=1.2em,breakindent=0pt]
 \duckpathbody, \duckpathgrumpybill, \duckpathbill, \duckpathtshirt, \duckpathjacket,\duckpathcape, \duckpathshorthair, \duckpathlonghair, \duckpathcrazyhair, \duckpathrecedinghair, \duckpathcrown,  \duckpathmohican,  \duckpathmullet,  \duckpathqueencrown,  \duckpathkingcrown,  \duckpathdarthvader,  \duckpathhorsetail
 \end{lstlisting}
-\enlargethispage*{\baselineskip}
 
 In case one of the other shapes is needed, please have a look at the package source code, which can be found in \lstinline|tikzducks.sty|.
 
@@ -953,15 +956,15 @@
 \footnotesize\ttfamily
 \begin{tcblisting}{title={\normalfont\normalsize\bfseries Coordinates}}
 \begin{tikzpicture}[scale=2]
-	\duck
-	\fill[black] (wing) circle (0.04);
-	\fill[black] (head) circle (0.04);
-	\fill[black] (bill) circle (0.04);
-	\fill[black] (tail) circle (0.04);
-	\node[xshift=15] at (wing) {Wing};
-	\node[xshift=15] at (head) {Head};
-	\node[xshift=18] at (bill) {Bill};
-	\node[xshift=15] at (tail) {Tail};
+  \duck
+  \fill[black] (wing) circle (0.04);
+  \fill[black] (head) circle (0.04);
+  \fill[black] (bill) circle (0.04);
+  \fill[black] (tail) circle (0.04);
+  \node[xshift=15] at (wing) {Wing};
+  \node[xshift=15] at (head) {Head};
+  \node[xshift=18] at (bill) {Bill};
+  \node[xshift=15] at (tail) {Tail};
 \end{tikzpicture}
 \end{tcblisting}
 }
@@ -970,13 +973,82 @@
 
 \begin{tcblisting}{title={Named coordinates},listing options={style={duckstyle}, emph={name,wing}}}
 \begin{tikzpicture}
-	\duck[name=foo]
- 	\duck[name=bar,xshift=90pt,
- 				scale=.3,yshift=150pt]
-	\draw (foo-wing) -- (bar-wing);
-\end{tikzpicture}	
+  \duck[name=foo]
+   \duck[name=bar,xshift=90pt,
+         scale=.3,yshift=150pt]
+  \draw (foo-wing) -- (bar-wing);
+\end{tikzpicture}  
 \end{tcblisting}
 
+Sometimes it might desirable to add things at a specific z-position, for example re-draw a t-shirt with some pattern that should be below the duck's hair and accessories. To facilitate this the \tikzducks provide a couple of hooks: \lstinline|\duckhookbackground|, \lstinline|\duckhookbody|, \lstinline|\duckhookclothing|, \lstinline|\duckhookhair|, \lstinline|\duckhookhat| and \lstinline|\duckhookforeground|. 
+
+\begin{center}
+\footnotesize\ttfamily \textbackslash duckhook\dots
+
+  \begin{tikzpicture}
+    \newcommand{\planes}{\fill[gray!20!white,opacity=0.9] (-0.1,-0.1) rectangle (2.4,2.4);}
+    \newcommand{\hooks}{\draw[duckblue, rounded corners=3pt, line width=1pt] (-0.1,-0.1) rectangle (2.4,2.4);}
+    \node[font=\footnotesize\ttfamily] at (-0.8,-1.4) {\strut background};
+    \begin{scope}[canvas is zy plane at x=0]
+      \hooks
+    \end{scope}
+    \begin{scope}[canvas is zy plane at x=0.8]
+      \planes
+      \duck
+    \end{scope}
+    \node[font=\footnotesize\ttfamily] at (0.8,-1.4) {\strut body};
+    \begin{scope}[canvas is zy plane at x=1.6]
+      \hooks
+    \end{scope}
+    \begin{scope}[canvas is zy plane at x=2.4]
+      \planes
+      \duck[invisible,jacket=black!50!gray] 
+    \end{scope}
+    \node[font=\footnotesize\ttfamily] at (2.4,-1.4) {\strut clothing};
+    \begin{scope}[canvas is zy plane at x=3.2]
+      \hooks
+    \end{scope}
+    \begin{scope}[canvas is zy plane at x=4.0]
+      \planes
+      \duck[invisible,longhair=red!80!black]
+    \end{scope}
+    \node[font=\footnotesize\ttfamily] at (4.0,-1.4) {\strut hair};
+    \begin{scope}[canvas is zy plane at x=4.8]
+      \hooks
+    \end{scope}
+    \begin{scope}[canvas is zy plane at x=5.6]
+      \planes
+      \duck[invisible,witch=black!50!gray];
+    \end{scope}
+    \node[font=\footnotesize\ttfamily] at (5.6,-1.4) {\strut hat};
+    \begin{scope}[canvas is zy plane at x=6.4]
+      \hooks
+    \end{scope}
+    \begin{scope}[canvas is zy plane at x=7.2]
+      \planes
+      \duck[invisible,magicwand]
+    \end{scope}
+    \node[font=\footnotesize\ttfamily] at (7.2,-1.4) {\strut foreground};
+    \begin{scope}[canvas is zy plane at x=8.0]
+      \hooks
+    \end{scope}
+  \end{tikzpicture}
+\end{center}
+
+These hooks can be defined by the user as needed:
+
+\begin{tcblisting}{title={Hooks}}
+\begin{tikzpicture}
+  \begingroup
+    \newcommand{\duckhookclothing}{\path[pattern=fivepointed stars, pattern color=yellow] \duckpathjacket;}
+    \duck[witch=black!50!gray,
+          longhair=red!80!black,
+          jacket=black!50!gray,
+          magicwand]
+   \endgroup
+\end{tikzpicture}  
+\end{tcblisting}
+
 \clearpage
 \section{Football ducks -- contributed by Carla Maggi}
 \label{sec:footballducks}
@@ -988,8 +1060,8 @@
 
 \begin{tcblisting}{title={\texttt{stripes} macro}}
 \begin{tikzpicture}
-	\duck
-	\stripes
+  \duck
+  \stripes
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -997,7 +1069,7 @@
 
 \begin{tcblisting}{title={Using \texttt{stripes} for \texttt{tikzducks}}}
 \begin{tikzpicture}
-	\duck[longhair,|stripes|={\stripes}]
+  \duck[longhair,|stripes|={\stripes}]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1004,20 +1076,20 @@
 Not all teams wear vertically stripped jerseys, therefore many parameters can be adjusted to best emulate your favourite teams jerseys. The available options are:
 
 \begin{tabular}{@{}ll@{}}
-	\lstinline|color|			& colour of the stripes, default: 		
-													\lstinline|black| \\
-  \lstinline|distance|	&	periodicity length of the stripes, default: 
-  												 \lstinline|0.3| \\
-  \lstinline|width|			&	stripe width, default: \lstinline|0.15| \\ 
-  \lstinline|height|		&	length of the stripes, default: 
-  												\lstinline|2.7| \\
-  \lstinline|initialx|	&	x coordinate of staring point, default: 
-  												\lstinline|0.1| \\
-  \lstinline|initialy|	&	y coordinate of staring point, default: 
-  												\lstinline|-0.3| \\
-  \lstinline|rotate|		&	rotation angle in degree, default:
-  												\lstinline|-10|\\
-  \lstinline|emblem|		& possibility to add logos etc., default: empty\\
+  \lstinline|color|      & colour of the stripes, default:     
+                          \lstinline|black| \\
+  \lstinline|distance|  &  periodicity length of the stripes, default: 
+                           \lstinline|0.3| \\
+  \lstinline|width|      &  stripe width, default: \lstinline|0.15| \\ 
+  \lstinline|height|    &  length of the stripes, default: 
+                          \lstinline|2.7| \\
+  \lstinline|initialx|  &  x coordinate of staring point, default: 
+                          \lstinline|0.1| \\
+  \lstinline|initialy|  &  y coordinate of staring point, default: 
+                          \lstinline|-0.3| \\
+  \lstinline|rotate|    &  rotation angle in degree, default:
+                          \lstinline|-10|\\
+  \lstinline|emblem|    & possibility to add logos etc., default: empty\\
 \end{tabular}
 
 Please note that the colour of the stripes only affects the stripes themselves, to influence the colour of the empty space between the stripes, clothe the duck with a \lstinline|tshirt| or \lstinline|jacket| of the desired colour underneath the stripes.
@@ -1024,20 +1096,20 @@
 
 \begin{tcblisting}{title={\texttt{stripes} options}}
 \begin{tikzpicture}
-	\duck[stripes]
+  \duck[stripes]
 \end{tikzpicture}
 \begin{tikzpicture}
-	\duck[|stripes|={
-				\stripes[color=blue]}]
+  \duck[|stripes|={
+        \stripes[color=blue]}]
 \end{tikzpicture}
 
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[distance=0.6]}]
+      \stripes[distance=0.6]}]
 \end{tikzpicture}
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[width=0.03]}]
+      \stripes[width=0.03]}]
 \end{tikzpicture}
 
 \begin{tikzpicture} 
@@ -1045,25 +1117,25 @@
 \end{tikzpicture}
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[height=1.0]}]
+      \stripes[height=1.0]}]
 \end{tikzpicture}
 
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[initialx=1]}]
+      \stripes[initialx=1]}]
 \end{tikzpicture}
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[initialy=0.8]}]
+      \stripes[initialy=0.8]}]
 \end{tikzpicture}
 
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[rotate=45]}]
+      \stripes[rotate=45]}]
 \end{tikzpicture}
 \begin{tikzpicture}
 \duck[|stripes|={
-			\stripes[rotate=-45]}]
+      \stripes[rotate=-45]}]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1133,8 +1205,8 @@
 \begin{tcblisting}{title={Brescia duck}}
 \begin{tikzpicture} 
 \duck[tshirt=blue, jacket=blue,|stripes|={
-	\stripes[color=white, rotate=-70, width=0.22,distance=1.1, initialy=0.01]
-	\stripes[color=white, rotate=40, width=0.2, distance=1.8, initialy=1.0,initialx=0.285]
+  \stripes[color=white, rotate=-70, width=0.22,distance=1.1, initialy=0.01]
+  \stripes[color=white, rotate=40, width=0.2, distance=1.8, initialy=1.0,initialx=0.285]
 },football]
 \end{tikzpicture}
 \end{tcblisting}

Modified: trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty	2020-04-22 15:31:50 UTC (rev 54836)
+++ trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty	2020-04-22 20:49:51 UTC (rev 54837)
@@ -12,20 +12,12 @@
 % See http://www.latex-project.org/lppl.txt
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzducks}[2020/01/03 version v1.3 Draw rubber ducks in TikZ]
+\ProvidesPackage{tikzducks}[2020/04/22 version v1.4 Draw rubber ducks in TikZ]
 
 \RequirePackage{tikz}
 \usetikzlibrary{patterns} % for the wizard hat
 \usetikzlibrary{calc} % for the sports jerseys
 
-%\pgfdeclarelayer{backgroundlayer} 
-%\pgfdeclarelayer{bodylayer}
-%\pgfdeclarelayer{clothinglayer}
-%\pgfdeclarelayer{hairlayer}
-%\pgfdeclarelayer{hatlayer}
-%
-%\pgfsetlayers{backgroundlayer,bodylayer,clothinglayer,hairlayer,hatlayer,main}
-
 \definecolor{duck at overleafcol}{RGB}{72,172,60}
 
 \newcommand*{\duck}[1][]{%
@@ -87,6 +79,7 @@
 \newif\ifduck at viking
 \newif\ifduck at devil 
 \newif\ifduck at conicalhat
+\newif\ifduck at sailor
 % Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at glasses
 \newif\ifduck at sunglasses
@@ -174,11 +167,11 @@
   %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   tshirt/.code              = \duck at tshirttrue    
-  														\duck at clothingtrue  
+                              \duck at clothingtrue  
                               \def\duck at tshirt{#1},
   tshirt/.default           = white,                            
   jacket/.code              = \duck at jackettrue  
-														  \duck at clothingtrue    
+                              \duck at clothingtrue    
                               \def\duck at jacket{#1},
   jacket/.default           = blue,                              
   tie/.code                 = \duck at tietrue         
@@ -185,11 +178,11 @@
                               \def\duck at tie{#1},
   tie/.default              = blue,                              
   cape/.code                = \duck at capetrue    
-														  \duck at clothingtrue    
+                              \duck at clothingtrue    
                               \def\duck at cape{#1},
   cape/.default             = red,                            
   stripes/.code             = \duck at stripestrue
-														  \duck at clothingtrue
+                              \duck at clothingtrue
                               \def\duck at stripes{#1},
   stripes/.default          = \stripes ,                
   bowtie/.code              = \duck at bowtietrue 
@@ -200,7 +193,7 @@
                               \def\duck at lapel{#1},
   lapel/.default            = black,  
   aodai/.code               = \duck at aodaitrue
-														  \duck at clothingtrue
+                              \duck at clothingtrue
                               \def\duck at aodai{#1},
   ao dai/.forward to        = /duck/aodai,                         
   aodai/.default            = blue!50!black,
@@ -336,6 +329,9 @@
                               \def\duck at conicalhat{#1},
   conical hat/.forward to   = /duck/conicalhat,                  
   conicalhat/.default       = brown!90!orange!90!white,
+  sailor/.code              = \duck at sailortrue
+                              \def\duck at sailor{#1},
+  sailor/.default           = white!80!gray,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % Accessories
@@ -507,20 +503,20 @@
   umbrella/.code            = \duck at umbrellatrue
                               \def\duck at umbrella{#1},
   umbrella/.default         = cyan,      
-	umbrellaclosed/.code      = \duck at umbrellaclosedtrue
-	                            \def\duck at umbrellaclosed{#1},
-	umbrellaclosed/.default   = cyan,    
-	umbrella closed/.forward to  = /duck/umbrellaclosed,
-	handbag/.code             = \duck at handbagtrue
-	                            \def\duck at handbag{#1},
-	handbag/.default          = red!70!black,  
-	cocktail/.code             = \duck at cocktailtrue,
+  umbrellaclosed/.code      = \duck at umbrellaclosedtrue
+                              \def\duck at umbrellaclosed{#1},
+  umbrellaclosed/.default   = cyan,    
+  umbrella closed/.forward to  = /duck/umbrellaclosed,
+  handbag/.code             = \duck at handbagtrue
+                              \def\duck at handbag{#1},
+  handbag/.default          = red!70!black,  
+  cocktail/.code             = \duck at cocktailtrue,
   overleaf/.code            = \duck at overleaftrue 
                               \def\duck at body{duck at overleafcol}
                               \duck at graduatetrue
                               \def\duck at graduate{black}
                               \duck at squareglassestrue
-                              \def\duck at squareglasses{black}	
+                              \def\duck at squareglasses{black}
 }
 
 \def\duck at draw{
@@ -558,7 +554,7 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfgettransformentries{\tmpscaleA}{\tmpscaleB}{\tmpscaleC}{\tmpscaleD}{\tmp}{\tmp}%
-\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))}%
+\pgfmathsetmacro{\scalingfactor}{sqrt(abs(\tmpscaleA*\tmpscaleD-\tmpscaleB*\tmpscaleC))*sqrt(abs((\pgf at xx/1cm)*(\pgf at yy/1cm)-(\pgf at xy/1cm)*(\pgf at yx/1cm)))}%
 \pgfmathsetmacro{\xscalefactor}{\tmpscaleA}
 \pgfmathsetmacro{\yscalefactor}{\tmpscaleD}
 %
@@ -567,8 +563,10 @@
 % Environment
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{pgfonlayer}{backgroundlayer}
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookbackground\endcsname
+%
 % water %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at water
   \fill[\duck at 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];
@@ -588,17 +586,15 @@
 \fi
 % Conical Hat (background) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at conicalhat
-	\fill[\duck at conicalhat!50!black,rotate=-21] (0.265,1.915) ellipse[x radius=0.79, y radius=0.1]; 
-	\fill[\duck at conicalhat!30!black] (0.5501,0.9739) -- (0.2002,1.9676) -- (0.2946,2.0008) -- (0.6445,1.0072) -- cycle;
+  \fill[\duck at conicalhat!50!black,rotate=-21] (0.265,1.915) ellipse[x radius=0.79, y radius=0.1]; 
+  \fill[\duck at conicalhat!30!black] (0.5501,0.9739) -- (0.2002,1.9676) -- (0.2946,2.0008) -- (0.6445,1.0072) -- cycle;
 \fi
 % 
-%\end{pgfonlayer}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % body parts
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{pgfonlayer}{bodylayer}
 \ifduck at invisible
 \else
 %
@@ -617,9 +613,9 @@
    \fill[\duck at bill] \duckpathgrumpybill;
 \else
   \ifduck at laughing
-  	\begin{pgfinterruptboundingbox}
-    	\fill[\duck at 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 at bill] 
+    \begin{pgfinterruptboundingbox}
+      \fill[\duck at 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 at 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;
@@ -658,21 +654,23 @@
   (-0.03,1.73) ellipse[x radius=0.0286, y radius=0.0643];
 %
 \fi % from no duck
-%\end{pgfonlayer}
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookbody\endcsname
+%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % clothing
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{pgfonlayer}{clothinglayer}
 % 
 % Strap of the conical hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at conicalhat
-	\ifduck at clothing
-		\fill[\duck at 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 at 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
+  \ifduck at clothing
+    \fill[\duck at 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 at 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -694,21 +692,16 @@
   \end{pgfinterruptboundingbox}
 \fi
 %
-% bowtie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ifduck at bowtie
-	\fill[\duck at 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 at aodai
-	\begin{pgfinterruptboundingbox}
-		\fill[\duck at 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}
+  \begin{pgfinterruptboundingbox}
+    \fill[\duck at 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 at lapel
-	\fill[\duck at 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;
+  \fill[\duck at lapel] (0.490,1.145) .. controls (0.3984,1.13) and (0.3515,1.08) .. (0.3515,1.08) -- (0.4265,1.0192) -- (0.35,0.98) -- (0.513,0.700) -- (1.0089,0.9162) -- (0.9547,0.9868) -- (1.1194,0.9782) -- (1.0822,1.135) .. controls (0.9616,1.1) and (0.8648,1.0300) .. (0.513,0.700) -- cycle;
 \fi
 %
 % stripes for football jersey %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -723,6 +716,11 @@
   \end{pgfinterruptboundingbox}
 \fi
 %
+% bowtie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at bowtie
+  \fill[\duck at 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
+%
 % necklace (not really clothing, but needs to be below the hair) %%%%%
 \ifduck at necklace
   \fill[\duck at 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];
@@ -744,13 +742,14 @@
   \fi
 \fi
 %
-%\end{pgfonlayer}
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookclothing\endcsname
+%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % hair styles
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{pgfonlayer}{hairlayer}
 %
 % short hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at shorthair
@@ -828,13 +827,14 @@
   \fill[\duck at beard] (1.3,1.3) -- (0.5,1.05) -- (0.65,0.65) -- cycle;
 \fi%
 %
-%\end{pgfonlayer}
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookhair\endcsname
+%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % Headgear
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%\begin{pgfonlayer}{hatlayer}
 % 
 % alien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at alien
@@ -846,14 +846,14 @@
 %
 % hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at hat
-	\ifdefined\duck at hair % with hair
-	  \fill[\duck at hat,rotate=-15] (0.44,2.1) ellipse[x radius=0.7, y radius=0.1];  
-  	\fill[\duck at hat,rotate=-15] (0.0,2.1) rectangle (0.88,2.4);
-  	\fill[\duck at hat,rotate=-15] (0.44,2.4) ellipse[x radius=0.44, y radius=0.08];
+  \ifdefined\duck at hair % with hair
+    \fill[\duck at hat,rotate=-15] (0.44,2.1) ellipse[x radius=0.7, y radius=0.1];  
+    \fill[\duck at hat,rotate=-15] (0.0,2.1) rectangle (0.88,2.4);
+    \fill[\duck at hat,rotate=-15] (0.44,2.4) ellipse[x radius=0.44, y radius=0.08];
   \else % without hair
-	  \fill[\duck at hat,rotate=-15] (0.44,2.1) ellipse[x radius=0.6, y radius=0.1];  
-  	\fill[\duck at hat,rotate=-15] (0.07,2.1) rectangle (0.81,2.4);
-  	\fill[\duck at hat,rotate=-15] (0.44,2.4) ellipse[x radius=0.37, y radius=0.08];  	
+    \fill[\duck at hat,rotate=-15] (0.44,2.1) ellipse[x radius=0.6, y radius=0.1];  
+    \fill[\duck at hat,rotate=-15] (0.07,2.1) rectangle (0.81,2.4);
+    \fill[\duck at hat,rotate=-15] (0.44,2.4) ellipse[x radius=0.37, y radius=0.08];
   \fi  
 \fi
 %
@@ -1023,13 +1023,20 @@
 %
 % Conical Hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at conicalhat
-	\path (0.19,1.4) rectangle (1.68,2.32);
-	\begin{pgfinterruptboundingbox}
-		\fill[\duck at 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}
+  \path (0.19,1.4) rectangle (1.68,2.32);
+  \begin{pgfinterruptboundingbox}
+    \fill[\duck at 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}
+% Sailor hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at sailor
+  \fill[\duck at sailor]  (1.0390,2.2743) .. controls (0.9475,2.2748) and (0.8569,2.2355) .. (0.7943,2.1690) .. controls (0.7147,2.1872) and (0.6335,2.2098) .. (0.5512,2.2029) .. controls (0.5524,2.1164) and (0.5536,2.0299) .. (0.5547,1.9434) .. controls (0.6637,1.9348) and (0.7679,1.8974) .. (0.8716,1.8653) .. controls (1.0321,1.8101) and (1.1932,1.7522) .. (1.3420,1.6697) .. controls (1.3671,1.6622) and (1.3911,1.6147) .. (1.4083,1.6518) .. controls (1.4623,1.7160) and (1.5163,1.7802) .. (1.5702,1.8444) .. controls (1.5154,1.8979) and (1.4433,1.9287) .. (1.3757,1.9624) .. controls (1.3666,2.1156) and (1.2403,2.2511) .. (1.0881,2.2707) .. controls (1.0718,2.2731) and (1.0554,2.2743) .. (1.0390,2.2743) -- cycle;
+\fi
+%
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookhat\endcsname
+%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 % Accessories
@@ -1333,22 +1340,22 @@
 %
 % shovel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at shovel
-	\fill[brown!80!black,rotate around={-23:(0.91, 0.88)}] (0.87, 0.28) rectangle ++(0.1,1.4);
-	\fill[\duck at shovel]  (0.6133, 0.9536) .. controls (0.8388, 0.8117) and (0.9253, 0.7517) .. (1.1962, 0.6696) -- (0.8332, 0.1263) .. controls (0.6458, 0.11) and (0.5417, 0.1644) .. (0.4517, 0.3034) -- cycle;
+  \fill[brown!80!black,rotate around={-23:(0.91, 0.88)}] (0.87, 0.28) rectangle ++(0.1,1.4);
+  \fill[\duck at shovel]  (0.6133, 0.9536) .. controls (0.8388, 0.8117) and (0.9253, 0.7517) .. (1.1962, 0.6696) -- (0.8332, 0.1263) .. controls (0.6458, 0.11) and (0.5417, 0.1644) .. (0.4517, 0.3034) -- cycle;
 \fi
 %
 % pickaxe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at pickaxe
-	\fill[brown!80!black,rotate around={-23:(0.91, 0.88)}] (0.87, 0.28) rectangle ++(0.1,1.4);
-	\fill[\duck at pickaxe]  (-0.0085, 0.6858) .. controls (0.6422, 0.3523) and (0.7609, 0.3068) .. (1.4114, 0.1108) .. controls (0.6589, 0.1246) and (0.5556, 0.1887) .. (-0.0085, 0.6858) -- cycle;
+  \fill[brown!80!black,rotate around={-23:(0.91, 0.88)}] (0.87, 0.28) rectangle ++(0.1,1.4);
+  \fill[\duck at pickaxe]  (-0.0085, 0.6858) .. controls (0.6422, 0.3523) and (0.7609, 0.3068) .. (1.4114, 0.1108) .. controls (0.6589, 0.1246) and (0.5556, 0.1887) .. (-0.0085, 0.6858) -- cycle;
 \fi
 %
 % umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at umbrella
-	\path (0.2,0.4) rectangle (2.22,2.7);
+  \path (0.2,0.4) rectangle (2.22,2.7);
   \begin{pgfinterruptboundingbox}
-	  \fill[gray] (0.6922,0.5942) -- (0.7426,0.6103) .. controls (0.8276,0.3884) and (0.8855,0.4523) .. (0.9333,0.6543) -- (0.9334,0.6545) -- (0.9335,0.6547) .. controls (1.0347,1.0671) and (1.2906,1.9565) .. (1.2906,1.9565) -- (1.3415,1.9419) .. controls (1.3415,1.9419) and (1.0855,1.0519) .. (0.9849,0.6423) -- (0.9848,0.6420) .. controls (0.9240,0.3633) and (0.7874,0.3312) .. (0.6922,0.5942) -- cycle;
-	  \fill[\duck at umbrella] (0.2185,1.9927) .. controls (0.3559,2.1962) and (0.6837,2.0720) .. (0.6761,1.8240) .. controls (0.8398,2.0111) and (1.1891,1.9216) .. (1.1685,1.6915) .. controls (1.3000,1.8765) and (1.6639,1.7626) .. (1.6607,1.5356) .. controls (1.7865,1.7271) and (2.1350,1.6950) .. (2.1626,1.4589) .. controls (2.4996,2.5771) and (0.5644,3.2631) .. (0.2185,1.9927) -- cycle;
+    \fill[gray] (0.6922,0.5942) -- (0.7426,0.6103) .. controls (0.8276,0.3884) and (0.8855,0.4523) .. (0.9333,0.6543) -- (0.9334,0.6545) -- (0.9335,0.6547) .. controls (1.0347,1.0671) and (1.2906,1.9565) .. (1.2906,1.9565) -- (1.3415,1.9419) .. controls (1.3415,1.9419) and (1.0855,1.0519) .. (0.9849,0.6423) -- (0.9848,0.6420) .. controls (0.9240,0.3633) and (0.7874,0.3312) .. (0.6922,0.5942) -- cycle;
+    \fill[\duck at umbrella] (0.2185,1.9927) .. controls (0.3559,2.1962) and (0.6837,2.0720) .. (0.6761,1.8240) .. controls (0.8398,2.0111) and (1.1891,1.9216) .. (1.1685,1.6915) .. controls (1.3000,1.8765) and (1.6639,1.7626) .. (1.6607,1.5356) .. controls (1.7865,1.7271) and (2.1350,1.6950) .. (2.1626,1.4589) .. controls (2.4996,2.5771) and (0.5644,3.2631) .. (0.2185,1.9927) -- cycle;
   \end{pgfinterruptboundingbox}
 \fi
 %
@@ -1355,13 +1362,13 @@
 % closed umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at umbrellaclosed
   \fill[gray] (1.3401,0.6996) -- (1.2872,0.7019) .. controls (1.2840,0.9395) and (1.2076,0.8995) .. (1.0930,0.7264) -- (1.0929,0.7262) -- (1.0928,0.7261) .. controls (0.8555,0.3739) and (0.9223,0.4608) .. (0.9223,0.4608) -- (0.8795,0.4920) .. controls (0.8795,0.4920) and (0.8131,0.4057) .. (1.0488,0.7554) -- (1.0489,0.7556) .. controls (1.2022,0.9963) and (1.3414,0.9793) .. (1.3401,0.6996) -- cycle;
-	\fill[\duck at umbrellaclosed] (0.6827,0.1263) -- (0.8038,0.6188) -- (0.9548,0.6494) -- (0.9520,0.8231) -- (1.1945,0.6529) -- (1.0218,0.5885) -- (1.0465,0.4566) -- cycle;
+  \fill[\duck at umbrellaclosed] (0.6827,0.1263) -- (0.8038,0.6188) -- (0.9548,0.6494) -- (0.9520,0.8231) -- (1.1945,0.6529) -- (1.0218,0.5885) -- (1.0465,0.4566) -- cycle;
 \fi
 %
 % handbag %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at handbag
-	\fill[\duck at handbag] (0.7811,0.1751) -- (1.4913,0.3097) -- (1.3315,0.7086) -- (0.7832,0.6152) -- cycle;
-	\fill[\duck at handbag!70!black] (0.8857,0.4354) .. controls (0.7861,0.9811) and (1.1796,1.0719) .. (1.2866,0.5155) -- (1.2043,0.4996) .. controls (1.1247,0.8952) and (0.9051,0.8883) .. (0.9676,0.4536) -- cycle;
+  \fill[\duck at handbag] (0.7811,0.1751) -- (1.4913,0.3097) -- (1.3315,0.7086) -- (0.7832,0.6152) -- cycle;
+  \fill[\duck at handbag!70!black] (0.8857,0.4354) .. controls (0.7861,0.9811) and (1.1796,1.0719) .. (1.2866,0.5155) -- (1.2043,0.4996) .. controls (1.1247,0.8952) and (0.9051,0.8883) .. (0.9676,0.4536) -- cycle;
 \fi
 %
 % cocktail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1375,9 +1382,9 @@
   \fill[red!80!black] (0.94,0.72) circle[radius=0.01];
 \fi
 %
-% overleaf duck
+% overleaf duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at overleaf
-	\fill[white] \duckpathoverleaf;
+  \fill[white] \duckpathoverleaf;
 \fi
 %
 % wing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1385,6 +1392,8 @@
   \fill[\duck at wing] \duckpathwing;
 \fi
 %
+% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\csname duckhookforeground\endcsname
 %
 %\draw (current bounding box.north west) rectangle (current bounding box.south east);% For debugging bounding boxes
 %
@@ -1399,7 +1408,7 @@
 \ifdefined\pdfrandomseed % pdflatex
 \else
     \ifdefined\randomseed 
-    	\let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
+      \let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
     \else
         \let\pdfrandomseed\time % pre TL19 xelatex
     \fi
@@ -1647,7 +1656,7 @@
 }
 
 \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) .. cont!
 rols (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
+  (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) .. con!
 trols (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
 }
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1657,31 +1666,31 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \newcommand{\picduck}{%
-	% bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	\qbezier(6.5,29.5)(-1,17.5)(16.8,27.3)
-	\qbezier(6.5,29.5)(9,30.5)(11.4,28.0)
-	\qbezier(11.4,28.0)(13.5,26.5)(16.8,27.3)
-	% head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	\qbezier(06.5,29.5)(6,41.5)(16.8,42.4)
-	\qbezier(16.8,42.4)(29,41)(25.3,24)
-	% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	\qbezier(7.8,23.2)(8,22.8)(8,22.5)
-	\qbezier(8,22.5)(-5,9)(8,3)
-	\qbezier(8,3)(22,-2)(35,6.5)
-	\qbezier(35,6.5)(46,15)(35,28.3)
-	\qbezier(35,28.3)(30,25)(25.3,24)
-	% right eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	\qbezier(13,32)(13.8,34.5)(16,34)
-	\qbezier(16,34)(17.3,33.2)(16.7,31)
-	\qbezier(16.7,31)(16,29.1)(14.5,29.3)
-	\qbezier(14.5,29.3)(12.7,29.5)(13,32)
-	\put(15.3,31.3){\circle*{1.8}}
-	% left eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-	\qbezier(7.7,33.2)(8.4,35.7)(10.3,35)
-	\qbezier(10.3,35)(11.2,34)(10.4,32.2)
-	\qbezier(10.4,32.2)(9.7,30.7)(8.7,30.7)
-	\qbezier(8.7,30.7)(7.2,30.9)(7.7,33.2)
-	\put(9.5,32.7){\circle*{1.5}}
+  % bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \qbezier(6.5,29.5)(-1,17.5)(16.8,27.3)
+  \qbezier(6.5,29.5)(9,30.5)(11.4,28.0)
+  \qbezier(11.4,28.0)(13.5,26.5)(16.8,27.3)
+  % head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \qbezier(06.5,29.5)(6,41.5)(16.8,42.4)
+  \qbezier(16.8,42.4)(29,41)(25.3,24)
+  % body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \qbezier(7.8,23.2)(8,22.8)(8,22.5)
+  \qbezier(8,22.5)(-5,9)(8,3)
+  \qbezier(8,3)(22,-2)(35,6.5)
+  \qbezier(35,6.5)(46,15)(35,28.3)
+  \qbezier(35,28.3)(30,25)(25.3,24)
+  % right eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \qbezier(13,32)(13.8,34.5)(16,34)
+  \qbezier(16,34)(17.3,33.2)(16.7,31)
+  \qbezier(16.7,31)(16,29.1)(14.5,29.3)
+  \qbezier(14.5,29.3)(12.7,29.5)(13,32)
+  \put(15.3,31.3){\circle*{1.8}}
+  % left eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  \qbezier(7.7,33.2)(8.4,35.7)(10.3,35)
+  \qbezier(10.3,35)(11.2,34)(10.4,32.2)
+  \qbezier(10.4,32.2)(9.7,30.7)(8.7,30.7)
+  \qbezier(8.7,30.7)(7.2,30.9)(7.7,33.2)
+  \put(9.5,32.7){\circle*{1.5}}
 }
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



More information about the tex-live-commits mailing list.