texlive[48176] Master/texmf-dist: tikzducks (10jul18)

commits+karl at tug.org commits+karl at tug.org
Tue Jul 10 23:04:26 CEST 2018


Revision: 48176
          http://tug.org/svn/texlive?view=revision&revision=48176
Author:   karl
Date:     2018-07-10 23:04:26 +0200 (Tue, 10 Jul 2018)
Log Message:
-----------
tikzducks (10jul18)

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
    trunk/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex

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	2018-07-10 16:28:47 UTC (rev 48175)
+++ trunk/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex	2018-07-10 21:04:26 UTC (rev 48176)
@@ -10,8 +10,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.6
-% April 04, 2018 
+% Version 0.7
+% July 10, 2018 
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \documentclass[parskip=half]{scrartcl}
@@ -56,11 +56,11 @@
 	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,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},
+	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,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},
 	texcsstyle=*\color{duckblue}\bfseries,
 	keywordstyle=\color{red!60!black}\bfseries,
 	morekeywords={tikzpicture,scope,patterns,calc,pgfinterruptboundingbox},
-	moretexcs={duck,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},
+	moretexcs={duck,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]
@@ -85,7 +85,7 @@
 \lstset{style=duckstyle}
 \pgfkeys{/duck/|stripes|/.style={stripes={#1}}}
 
-\pgfmathsetseed{10}
+\pgfmathsetseed{1}
 \setlength{\footheight}{45pt}
 \newlength{\duckoffset}
 
@@ -119,7 +119,7 @@
 		\url{https://github.com/samcarter8/tikzducks}\\
 		\url{https://www.ctan.org/pkg/tikzducks}
 	}{samcarter}}
-\date{Version 0.6 -- \today}
+\date{Version 0.7 -- \today}
 
 \begin{document}
 \maketitle
@@ -267,7 +267,7 @@
 \end{tikzpicture}
 \end{tcblisting}
 
-Furthermore using the keyword \lstinline|grumpy| the shape of the bill can be changed:
+Furthermore using the keywords \lstinline|grumpy|, \lstinline|laughing| or \lstinline|parrot| the shape of the bill can be changed:
 
 \begin{tcblisting}{title={Grumpy duck}}
 \begin{tikzpicture}
@@ -278,11 +278,38 @@
 \end{tikzpicture}
 \end{tcblisting}
 
+\begin{tcblisting}{title={Laughing duck}}
+\begin{tikzpicture}
+	\duck[laughing]
+\end{tikzpicture}
+\begin{tikzpicture}
+	\duck[laughing, bill=red]
+\end{tikzpicture}
+\end{tcblisting}
+
+\begin{tcblisting}{title={Parrot duck}}
+\begin{tikzpicture}
+	\duck[parrot]
+\end{tikzpicture}
+\begin{tikzpicture}
+	\duck[parrot, bill=blue]
+\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}}
+\begin{tcblisting}{title={Hairy duck},righthand width=9cm}
 \begin{tikzpicture}
 	\duck[longhair]
 \end{tikzpicture}
@@ -289,14 +316,13 @@
 \begin{tikzpicture}
 	\duck[shorthair]
 \end{tikzpicture}
-
 \begin{tikzpicture}
 	\duck[crazyhair]
 \end{tikzpicture}
+
 \begin{tikzpicture}
 	\duck[recedinghair]
 \end{tikzpicture}
-
 \begin{tikzpicture}
 	\duck[mohican]
 \end{tikzpicture}
@@ -303,6 +329,10 @@
 \begin{tikzpicture}
 	\duck[mullet]
 \end{tikzpicture}
+
+\begin{tikzpicture}
+	\duck[parting]
+\end{tikzpicture}
 \end{tcblisting}
 
 And of course the colour of each hair style can be adjusted:
@@ -314,18 +344,18 @@
 
 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]
 \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}
 
@@ -401,6 +431,13 @@
 \end{tikzpicture}
 \end{tcblisting}
 
+\begin{tcblisting}{title={Strawhat duck}}
+\begin{tikzpicture}
+	\duck[strawhat=brown!50!white, ribbon=gray]
+\end{tikzpicture}
+\end{tcblisting}
+
+
 \begin{tcblisting}{title={Basecap duck}}
 \begin{tikzpicture}
 	\duck[cap=red!80!black]
@@ -432,6 +469,13 @@
 \end{tikzpicture}	
 \end{tcblisting}
 
+\begin{tcblisting}{title={Harlequin duck}}
+\begin{tikzpicture}
+	\duck[harlequin=blue,
+		niuqelrah=red]
+\end{tikzpicture}	
+\end{tcblisting}
+
 \begin{tcblisting}{title={Crown duck}}
 \begin{tikzpicture}
 \duck[body=black!75!white,
@@ -538,7 +582,7 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Speaking duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-	\duck[speech={Bla},bubblecolour=cyan!20!white]
+	\duck[speech={Bla},bubblecolour=cyan!20!white,laughing]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -674,6 +718,12 @@
 \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}
 
+\begin{tcblisting}{title={Wing duck}}
+\begin{tikzpicture}
+	\duck[wing=yellow!90!brown]
+\end{tikzpicture}
+\end{tcblisting}
+
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Basket duck$^{\thefootnote}$}}
 \begin{tikzpicture}
@@ -686,11 +736,42 @@
 	\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}
 
+\begin{tcblisting}{title={Ducktor}}
+\begin{tikzpicture}
+	\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]
+\end{tikzpicture}
+\end{tcblisting}
+
+\addtocounter{footnote}{1}
+\begin{tcblisting}{title={Snow Duck$^{\thefootnote}$}}
+\begin{tikzpicture}
+	\duck[snowduck=white]
+\end{tikzpicture}   
+\end{tcblisting}
+\footnotetext[\thefootnote]{The snowduck is dedicated to all Japanese \TeX\ users}
+
+\begin{tcblisting}{title={Vampire Duck}}
+\begin{tikzpicture}
+	\duck[vampire=white]
+\end{tikzpicture}  
+\begin{tikzpicture}
+	\duck[laughing, vampire=white]
+\end{tikzpicture}  
+\end{tcblisting}
+
 \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 ...)
@@ -760,8 +841,8 @@
 	\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};	
+	\node[xshift=18] at (bill) {Bill};
+	\node[xshift=15] at (tail) {Tail};
 \end{tikzpicture}
 \end{tcblisting}
 }
@@ -1082,7 +1163,7 @@
 \end{tikzpicture}
 
 \begin{tikzpicture}
-	\duck[body=sgskin,bill=sgbill,tshirt=sgshirt,jacket=sggreen,shorthair=brown!70!black,glasses=brown!30!gray, book={\AA}, bookcolour=brown!50!black]
+	\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}
@@ -1132,7 +1213,7 @@
 
 \begin{tcblisting}{title={Bee duck}}
 \begin{tikzpicture}
-	\duck[|stripes|={\stripes[distance=0.4,width=0.2,rotate=0,initialx=0.15]},alien=black]
+	\duck[|stripes|={\stripes[distance=0.4,width=0.2,rotate=0,initialx=0.15]},alien=black,laughing]
 \end{tikzpicture}	
 \end{tcblisting}
 
@@ -1212,12 +1293,15 @@
 \end{tikzpicture}
 \end{tcblisting}
 
-\begin{tcblisting}{title={Frosty Duck}}
+\addtocounter{footnote}{1}
+\begin{tcblisting}{title={Arara duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-\duck[body=white,eye=white,tophat=black,buttons=black]
-\draw[very thick] (0.9,0.3) -- (1.2,1) (1.2,1) -- (1,1.3) (1.2,1) -- (1.3,1.3) (1.2,1) -- (1.5,1.4) (1.32,1.15) -- (1.6,1.3);
-\end{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}%
@@ -1236,6 +1320,27 @@
 \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''.}
+
 \clearpage
 \printindex
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty	2018-07-10 16:28:47 UTC (rev 48175)
+++ trunk/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty	2018-07-10 21:04:26 UTC (rev 48176)
@@ -11,12 +11,12 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.6
-% April 04, 2018 
+% Version 0.7
+% July 10, 2018 
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ProvidesPackage{tikzducks}
- [2018/04/04 v0.6 Draw rubber ducks in TikZ]
+ [2018/07/10 v0.7 Draw rubber ducks in TikZ]
 
 \RequirePackage{tikz}
 \usetikzlibrary{patterns} % for the wizard hat
@@ -41,10 +41,13 @@
 }
 
 \newif\ifduck at name
+\newif\ifduck at invisible
 % Environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at water
 % body parts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at grumpy
+\newif\ifduck at laughing
+\newif\ifduck at parrot
 % hair styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at shorthair
 \newif\ifduck at longhair
@@ -54,6 +57,7 @@
 \newif\ifduck at beard
 \newif\ifduck at mohican
 \newif\ifduck at mullet
+\newif\ifduck at parting
 % clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at tshirt
 \newif\ifduck at jacket
@@ -78,6 +82,8 @@
 \newif\ifduck at bunny
 \newif\ifduck at tophat
 \newif\ifduck at darthvader
+\newif\ifduck at harlequin
+\newif\ifduck at strawhat
 % Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \newif\ifduck at glasses
 \newif\ifduck at sunglasses
@@ -109,14 +115,21 @@
 \newif\ifduck at horsetail
 \newif\ifduck at crozier
 \newif\ifduck at davidlikespineapplepizza
+\newif\ifduck at wing
+\newif\ifduck at stethoscope
+\newif\ifduck at neckerchief
+\newif\ifduck at snowduck
+\newif\ifduck at vampire
 
- \tikzset{
-   %
-   % Pass unknown keys on to tikz
-   %
-   /duck/.search also={/tikz,/pgf},
-   /duck/.cd,
-   name/.code= \duck at nametrue \def\duck at name{#1},
+\tikzset{
+  %
+  % Pass unknown keys on to tikz
+  %
+  /duck/.search also={/tikz,/pgf},
+  /duck/.cd,
+  name/.code= \duck at nametrue \def\duck at name{#1},
+  invisible/.code  = \duck at invisibletrue,
+  no duck/.forward to=/duck/invisible,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % Environment
@@ -136,11 +149,13 @@
   pupil/.code   = \def\duck at pupil{#1},
   bill/.code    = \def\duck at bill{#1},
   grumpy/.code  = \duck at grumpytrue,
+  laughing/.code   = \duck at laughingtrue,
+  parrot/.code  = \duck at parrottrue,
   % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-  body  = yellow!70!brown,
-  eye   = white!85!yellow,
-  pupil = black,
-  bill  = orange!50!brown, 
+  body          = yellow!70!brown,
+  eye           = white!85!yellow,
+  pupil         = black,
+  bill          = orange!50!brown, 
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % clothing
@@ -172,8 +187,9 @@
   receding hair/.forward to=/duck/recedinghair,
   eyebrow/.code      = \duck at eyebrowtrue      \def\duck at eyebrow{#1},
   beard/.code        = \duck at beardtrue        \def\duck at beard{#1},
-  mohican/.code      =  \duck at mohicantrue     \def\duck at hair{#1},
+  mohican/.code      = \duck at mohicantrue      \def\duck at hair{#1},
   mullet/.code       = \duck at mullettrue       \def\duck at hair{#1},
+  parting/.code      = \duck at partingtrue      \def\duck at hair{#1},
   % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   shorthair/.default = brown,
   longhair/.default  = brown,
@@ -183,6 +199,7 @@
   beard/.default     = brown,
   mohican/.default   = brown,
   mullet/.default    = brown,
+  parting/.default  = brown,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % Headgear
@@ -216,6 +233,11 @@
   top hat/.forward to=/duck/tophat,
   darthvader/.code   = \duck at darthvadertrue  \def\duck at darthvader{#1},
   darth vader/.forward to=/duck/darthvader,
+  harlequin/.code    = \duck at harlequintrue   \def\duck at harlequin{#1},
+  niuqelrah/.code	   =                       \def\duck at niuqelrah{#1},
+  strawhat/.code     = \duck at strawhattrue    \def\duck at strawhat{#1},
+  straw hat/.forward to=/duck/strawhat,
+  ribbon/.code       =                       \def\duck at ribbon{#1},
   % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   alien/.default     = green,    
   hat/.default       = brown,
@@ -237,6 +259,10 @@
   peakedcap/.default = blue,
   tophat/.default    = black,
   darthvader/.default= black,
+  harlequin/.default = blue,
+  niuqelrah          = red,
+  strawhat/.default  = gray!30!white,
+  ribbon             = black,
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %
   % Accessories
@@ -257,10 +283,14 @@
   book/.code         = \duck at booktrue        \def\duck at book{#1},
   bookcolour/.code   =                       \def\duck at bookcolour{#1},
   book colour/.forward to=/duck/bookcolour,
+  book color/.forward to=/duck/bookcolour,
+  bookcolor/.forward to=/duck/bookcolour,
   signpost/.code     = \duck at signposttrue    \def\duck at signpost{#1},
   sign post/.forward to=/duck/signpost,
   signcolour/.code   =                       \def\duck at signcolour{#1},
   sign colour/.forward to=/duck/signcolour,
+  sign color/.forward to=/duck/signcolour,
+  signcolor/.forward to=/duck/signcolour,  
   signback/.code     =                       \def\duck at signback{#1},
   sign back/.forward to=/duck/signback,
   magicwand/.code    = \duck at magicwandtrue,
@@ -282,8 +312,10 @@
   prison/.code       = \duck at prisontrue      \def\duck at prison{#1},
   speech/.code       = \duck at speechtrue      \def\duck at speech{#1},
   think/.code        = \duck at thinktrue       \def\duck at think{#1},
-  bubblecolour/.code =                       \def\duck at bubblecolour{#1},
+  bubblecolour/.code =                     \def\duck at bubblecolour{#1},
   bubble colour/.forward to=/duck/bubblecolour,
+  bubble color/.forward to=/duck/bubblecolour,
+  bubblecolor/.forward to=/duck/bubblecolour,  
   torch/.code        = \duck at torchtrue       \def\duck at torch{#1},
   basket/.code       = \duck at baskettrue      \def\duck at basket{#1},
   easter/.code       = \duck at eastertrue
@@ -301,6 +333,16 @@
   davidlikespineapplepizza/.code = \duck at davidlikespineapplepizzatrue
   \duck at speechtrue \def\duck at speech{\scalebox{\yscalefactor}{\scalebox{0.9}{\tiny ih, che schifo!}}},
   david likes pineapple pizza/.forward to=/duck/davidlikespineapplepizza,
+  wing/.code    = \duck at wingtrue      \def\duck at wing{#1},
+  stethoscope/.code = \duck at stethoscopetrue \def\duck at stethoscope{#1},
+  neckerchief/.code = \duck at neckerchieftrue \def\duck at neckerchief{#1},
+  woggle/.code			=												\def\duck at woggle{#1},
+  snowduck/.code 		= \duck at snowducktrue \def\duck at snowduck{#1}
+  										\def\duck at eye{#1}  \def\duck at body{#1}
+										  \duck at tophattrue   \def\duck at tophat{black}
+  										\duck at buttonstrue  \def\duck at buttons{black},
+  snow duck/.forward to=/duck/snowduck,
+  vampire/.code     = \duck at vampiretrue  \def\duck at vampire{#1},
   % setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   glasses/.default   = black,  
   sunglasses/.default= black,  
@@ -335,6 +377,12 @@
   sheep/.default     = \duck at body,
   horsetail/.default = brown,
   crozier/.default   = brown,
+  wing/.default      = yellow!50!brown,
+  stethoscope/.default = gray,
+  neckerchief/.default = brown,
+  woggle 						   = brown!50!black,
+  snowduck/.default  = gray!15!white,
+  vampire/.default   = white!85!yellow,
 }
 
 \def\duck at draw{
@@ -399,6 +447,8 @@
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %\begin{pgfonlayer}{bodylayer}
+\ifduck at invisible
+\else
 %
 % body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{pgfinterruptboundingbox}
@@ -414,7 +464,22 @@
 \ifduck at grumpy
    \fill[\duck at bill] \duckpathgrumpybill;
 \else
-  \fill[\duck at bill] \duckpathbill;
+	\ifduck at laughing
+		\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;
+	\else
+		\ifduck at parrot
+			\fill[\duck at bill!80!black] 
+			(0.40,1.45) .. controls (0.51,1.48) and (0.54,1.44) .. (0.59,1.39) .. controls (0.63,1.34) and (0.69,1.34) .. (0.86,1.35) .. controls (0.43,1.15) and (0.37,1.13) .. (0.34,1.20) .. controls (0.52,1.27) and (0.34,1.40) .. (0.40,1.45) -- cycle;
+			\fill[\duck at bill] 
+			(0.39,1.49) .. controls (0.50,1.52) and (0.54,1.44) .. (0.59,1.39) .. controls (0.63,1.34) and (0.68,1.34) .. (0.86,1.35) .. controls (0.43,1.15) and (0.54,1.40) .. (0.22,1.20) .. controls (0.24,1.52) and (0.39,1.49) .. (0.39,1.49) -- cycle;
+		\else
+			\fill[\duck at bill] \duckpathbill;
+		\fi
+	\fi
 \fi
 %
 % Superhero mask %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -438,6 +503,7 @@
 \fill[\duck at pupil, rotate=-20] 
   (-0.03,1.73) ellipse (0.0286 and 0.0643);
 %
+\fi % from no duck
 %\end{pgfonlayer}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -482,6 +548,13 @@
   \fill[\duck at necklace] (0.5000,1.112) circle (0.032) (0.5100,1.050) circle (0.032) (0.5200,0.990) circle (0.032) (0.5400,0.931) circle (0.032) (0.5825,0.885) circle (0.032) (0.6450,0.885) circle (0.032) (0.7000,0.910) circle (0.032) (0.7500,0.945) circle (0.032) (0.8000,0.980) circle (0.032) (0.8500,1.020) circle (0.032) (0.9000,1.050) circle (0.032) (0.9500,1.080) circle (0.032) (1.0000,1.110) circle (0.032) (1.0550,1.130) circle (0.032) (1.1100,1.150) circle (0.032) (1.1650,1.165) circle (0.032) (1.2200,1.180) circle (0.032) (1.2750,1.195) circle (0.032) (1.3300,1.210) circle (0.032);
 \fi
 %
+% Scout neckerchief %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at neckerchief
+	\fill[\duck at neckerchief] 
+	(0.3650,1.0892) .. controls (0.4127,1.1589) and (0.4900,1.1450) .. (0.4900,1.1450) .. controls (0.6500,0.9300) and (1.1366,1.2400) .. (1.3675,1.2649) .. controls (1.4131,1.2533) and (1.4052,1.2446) .. (1.4099,1.2124) .. controls (1.3028,1.0810) and (0.7415,0.8930) .. (0.6807,0.9076) .. controls (0.8257,0.7387) and (0.6347,0.7168) .. (0.7151,0.4426) .. controls (0.6059,0.5672) and (0.5513,0.6588) .. (0.5938,0.8388) .. controls (0.5871,0.6953) and (0.4493,0.7565) .. (0.4716,0.4967) .. controls (0.3682,0.6697) and (0.3820,0.7984) .. (0.5321,0.9351) .. controls (0.4635,0.9699) and (0.4115,1.0215) .. (0.3650,1.0892) -- cycle;
+	\fill[\duck at woggle, rounded corners=\yscalefactor*1, rotate=-10] (0.33,1.05) rectangle (0.55,0.98);
+\fi
+%
 % buttons (same argument as for the necklace)
 \ifduck at buttons
   \ifduck at jacket
@@ -547,6 +620,14 @@
   \end{pgfinterruptboundingbox}
 \fi
 %
+% middle parting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at parting
+	\path (0.1,0.1) rectangle (2.1,2.22);
+	\begin{pgfinterruptboundingbox}
+		\fill[\duck at hair] 	(1.4053,1.5403) .. controls (1.5524,2.2939) and (0.3739,2.5180) .. (0.4084,1.6117) .. controls (0.4248,1.8921) and (0.7860,1.9734) .. (0.7860,1.9734) .. controls (1.1125,1.5754) and (1.3375,1.4715) .. (1.4053,1.5403) -- cycle;
+	\end{pgfinterruptboundingbox}
+\fi
+%
 % eye brow %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \pgfkeys{/duck/eyebrow/. at def/.get=\duck at test}
 \ifx\duck at eyebrow\duck at test
@@ -665,11 +746,12 @@
   \end{pgfinterruptboundingbox}  
 \fi
 %
-% Queen crown
+% Queen crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at queencrown
   \fill[\duck at queencrown] \duckpathqueencrown;
 \fi
-% King crown
+%
+% King crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at kingcrown
   \fill[\duck at kingcrown] \duckpathkingcrown;
 \fi
@@ -712,6 +794,28 @@
   \end{pgfinterruptboundingbox}
 \fi
 %
+% Harlequin duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at harlequin
+	\path (0.19,1.85) rectangle (1.85,2.67);
+	\begin{pgfinterruptboundingbox}
+	\fill[\duck at 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 at 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 at harlequin] (1.7,2.07) circle (0.1);
+	\fill[\duck at niuqelrah] (0.3,2.23) circle (0.1);
+\fi
+%
+% Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at strawhat
+  \fill[\duck at strawhat,rotate=-15] (0.44,2.0) ellipse (0.75 and 0.1);  
+  \fill[\duck at strawhat,rotate=-15] (0.1,2.05) rectangle (0.78,2.5);
+  \fill[\duck at strawhat,rotate=-15] (0.44,2.5) ellipse (0.34 and 0.08);  
+  \fill[\duck at strawhat,rotate=-15] (-0.3,2.02) -- (1.18,2.02) -- (0.78,2.2) -- (0.1,2.2) -- cycle;
+  \fill[\duck at ribbon,rotate=-15] (0.44,2.2) ellipse (0.34 and 0.08);   
+  \fill[\duck at ribbon,rotate=-15] (0.1,2.2) rectangle (0.78,2.3);
+	\fill[\duck at strawhat,rotate=-15] (0.44,2.3) ellipse (0.34 and 0.08);  
+\fi
+%
 %\end{pgfonlayer}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -973,6 +1077,39 @@
 	\fill[\duck at crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);	
 \fi
 %
+% stethoscope
+\ifduck at stethoscope
+	\fill[\duck at stethoscope,rounded corners=\yscalefactor*0.5,rotate=-18] (0.08,0.7) rectangle (0.13,1.24);
+	\fill[\duck at stethoscope] (0.35,0.7) circle (0.1); 
+	\begin{scope}
+		\fill[\duck at stethoscope,rounded corners=\yscalefactor*0.5,rotate=-30] (0.53,1.3) rectangle (0.58,1.72);
+		\clip[rotate=-30] (0.36,0.89) -- (0.36,1.36) -- (0.79,1.36) -- (0.79,0.89) -- (0.65,0.89) -- (0.65,0.96) -- (0.5,0.96) -- (0.5,0.89) -- cycle ;
+		\fill [\duck at stethoscope,rounded corners=\yscalefactor*3,rotate=-30,even odd rule] (0.775,1.35) rectangle (0.375,0.9) [rounded corners=\yscalefactor*2] (0.725,1.3) rectangle (0.425,0.95);
+	\end{scope}
+\fi
+%
+% snow duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at snowduck
+	\fill[black, rotate=-25] (0.65,0.65) rectangle (0.7,1.8);
+	\fill[black, rotate=35] (1.55,0.15) rectangle (1.6,0.5);
+	\fill[black, rotate=-35] (0.4,1.7) rectangle (0.45,2.0);
+	\fill[black, rotate=-60] (-0.3,2.0) rectangle (-0.35,1.65);
+\fi
+%
+% vampire
+\ifduck at vampire
+	\ifduck at laughing
+		\fill[\duck at vampire] (0.55,1.28) -- (0.575,1.22) -- (0.6,1.29) -- cycle;
+	\else
+		\fill[\duck at vampire] (0.6,1.20) -- (0.625,1.16) -- (0.65,1.223) -- cycle;
+	\fi
+\fi
+% wing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at wing
+	\fill[\duck at wing] \duckpathwing;
+\fi
+%
+%
 %\draw (current bounding box.north west) rectangle (current bounding box.south east);% For debugging bounding boxes
 %
 %\end{scope}
@@ -993,8 +1130,8 @@
   \pgfmathsetseed{\number\pdfrandomseed}
 \fi
 
-\pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{mohican}{mullet}{beard}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}{queencrown}{kingcrown}}
-\pgfmathdeclarerandomlist{accessories}{{glasses}{sunglasses}{icecream}{book}{signpost}{magicwand}{cricket}{rollingpin}{lightsaber}{cake}{pizza}{hockey}{baguette}{football}{mask}{necklace}{milkshake}{wine}{prison}{cape}{torch}{crozier}{easter}}
+\pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{mohican}{mullet}{beard}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}{queencrown}{kingcrown}{harlequin}}
+\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}}
 
 \newcommand{\shuffleducks}{%
  \pgfmathrandomitem{\head}{head}%
@@ -1037,6 +1174,17 @@
   (0.406,1.472) -- cycle
 }
 
+\newcommand{\duckpathwing}{%
+	(1.47,0.56) .. controls (1.51,0.59) and (1.57,0.62) .. 
+	(1.60,0.66) .. controls (1.61,0.70) and (1.51,0.69) .. 
+	(1.47,0.69) .. controls (1.48,0.72) and (1.41,0.76) .. 
+	(1.37,0.74) .. controls (1.35,0.79) and (1.33,0.81) .. 
+	(1.25,0.80) .. controls (1.25,0.86) and (1.18,0.88) .. 
+	(1.15,0.88) .. controls (1.20,1.01) and (0.40,0.79) .. 
+	(0.52,0.57) .. controls (0.63,0.26) and (1.22,0.43) .. 
+	(1.47,0.56) -- cycle;
+}
+
 % clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \newcommand{\duckpathtshirt}{%
@@ -1047,9 +1195,9 @@
 }
 
 \newcommand{\duckpathjacket}{%
-  (0.500,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) .. 
+  (0.490,1.145) .. controls (0.267, 1.102) and (-0.125,0.657) .. 
   (0.289,0.261) .. controls (0.704,-0.135) and ( 2.863,0.130) .. 
-  (1.818,1.419) .. controls (0.938, 0.946) and ( 1.240,1.378) .. 
+  (1.818,1.419) .. controls (0.880, 0.946) and ( 1.240,1.378) .. 
   (0.513,0.700) -- cycle
 }
 

Modified: trunk/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex	2018-07-10 16:28:47 UTC (rev 48175)
+++ trunk/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex	2018-07-10 21:04:26 UTC (rev 48176)
@@ -10,8 +10,8 @@
 % Released under the LaTeX Project Public License v1.3c or later
 % See http://www.latex-project.org/lppl.txt
 %
-% Version 0.6
-% April 04, 2018 
+% Version 0.7
+% July 10, 2018 
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \usepackage{tikzducks}



More information about the tex-live-commits mailing list