summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-07-10 21:04:26 +0000
committerKarl Berry <karl@freefriends.org>2018-07-10 21:04:26 +0000
commit4c32bf575783193243a14e77f1b8ecee929cb2fe (patch)
treeb7f162d64a2bc2c63ea6e1091c02b084da35319c
parenta095dd6d409939bc70af6a9672ab76db4bf182a0 (diff)
tikzducks (10jul18)
git-svn-id: svn://tug.org/texlive/trunk@48176 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdfbin492007 -> 519244 bytes
-rw-r--r--Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex153
-rw-r--r--Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty194
-rw-r--r--Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex4
4 files changed, 302 insertions, 49 deletions
diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
index 4483beedd84..fe722152751 100644
--- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
+++ b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
index 24cff4cd179..c33d671ea9f 100644
--- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
+++ b/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
@@ -10,8 +10,8 @@
% Released under the LaTeX Project Public License v1.3c or later
% See http://www.latex-project.org/lppl.txt
%
-% Version 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 @@ The various parts of the duck can also be coloured independently, i.e.\ \lstinli
\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,31 +278,61 @@ Furthermore using the keyword \lstinline|grumpy| the shape of the bill can be ch
\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}
\begin{tikzpicture}
\duck[shorthair]
\end{tikzpicture}
-
\begin{tikzpicture}
\duck[crazyhair]
\end{tikzpicture}
+
\begin{tikzpicture}
\duck[recedinghair]
\end{tikzpicture}
-
\begin{tikzpicture}
\duck[mohican]
\end{tikzpicture}
\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 @@ And of course the colour of each hair style can be adjusted:
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 @@ There is a multitude of things a duck might need. The following examples all als
\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 @@ There is a multitude of things a duck might need. The following examples all als
\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 @@ There is a multitude of things a duck might need. The following examples all als
\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 @@ There is a multitude of things a duck might need. The following examples all als
\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 @@ There is a multitude of things a duck might need. The following examples all als
\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 @@ To ease the placement of further accessories, some particular spots of the duck
\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 @@ In the following a few examples of possible duck customisations, some of which w
\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 @@ In the following a few examples of possible duck customisations, some of which w
\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 @@ In the following a few examples of possible duck customisations, some of which w
\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 @@ In the following a few examples of possible duck customisations, some of which w
\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
diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
index 8f9ee6da15b..700c2cdeced 100644
--- a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
+++ b/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
@@ -11,12 +11,12 @@
% Released under the LaTeX Project Public License v1.3c or later
% See http://www.latex-project.org/lppl.txt
%
-% Version 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@name
+\newif\ifduck@invisible
% Environment %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@water
% body parts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@grumpy
+\newif\ifduck@laughing
+\newif\ifduck@parrot
% hair styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@shorthair
\newif\ifduck@longhair
@@ -54,6 +57,7 @@
\newif\ifduck@beard
\newif\ifduck@mohican
\newif\ifduck@mullet
+\newif\ifduck@parting
% clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@tshirt
\newif\ifduck@jacket
@@ -78,6 +82,8 @@
\newif\ifduck@bunny
\newif\ifduck@tophat
\newif\ifduck@darthvader
+\newif\ifduck@harlequin
+\newif\ifduck@strawhat
% Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@glasses
\newif\ifduck@sunglasses
@@ -109,14 +115,21 @@
\newif\ifduck@horsetail
\newif\ifduck@crozier
\newif\ifduck@davidlikespineapplepizza
+\newif\ifduck@wing
+\newif\ifduck@stethoscope
+\newif\ifduck@neckerchief
+\newif\ifduck@snowduck
+\newif\ifduck@vampire
- \tikzset{
- %
- % Pass unknown keys on to tikz
- %
- /duck/.search also={/tikz,/pgf},
- /duck/.cd,
- name/.code= \duck@nametrue \def\duck@name{#1},
+\tikzset{
+ %
+ % Pass unknown keys on to tikz
+ %
+ /duck/.search also={/tikz,/pgf},
+ /duck/.cd,
+ name/.code= \duck@nametrue \def\duck@name{#1},
+ invisible/.code = \duck@invisibletrue,
+ no duck/.forward to=/duck/invisible,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Environment
@@ -136,11 +149,13 @@
pupil/.code = \def\duck@pupil{#1},
bill/.code = \def\duck@bill{#1},
grumpy/.code = \duck@grumpytrue,
+ laughing/.code = \duck@laughingtrue,
+ parrot/.code = \duck@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@eyebrowtrue \def\duck@eyebrow{#1},
beard/.code = \duck@beardtrue \def\duck@beard{#1},
- mohican/.code = \duck@mohicantrue \def\duck@hair{#1},
+ mohican/.code = \duck@mohicantrue \def\duck@hair{#1},
mullet/.code = \duck@mullettrue \def\duck@hair{#1},
+ parting/.code = \duck@partingtrue \def\duck@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@darthvadertrue \def\duck@darthvader{#1},
darth vader/.forward to=/duck/darthvader,
+ harlequin/.code = \duck@harlequintrue \def\duck@harlequin{#1},
+ niuqelrah/.code = \def\duck@niuqelrah{#1},
+ strawhat/.code = \duck@strawhattrue \def\duck@strawhat{#1},
+ straw hat/.forward to=/duck/strawhat,
+ ribbon/.code = \def\duck@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@booktrue \def\duck@book{#1},
bookcolour/.code = \def\duck@bookcolour{#1},
book colour/.forward to=/duck/bookcolour,
+ book color/.forward to=/duck/bookcolour,
+ bookcolor/.forward to=/duck/bookcolour,
signpost/.code = \duck@signposttrue \def\duck@signpost{#1},
sign post/.forward to=/duck/signpost,
signcolour/.code = \def\duck@signcolour{#1},
sign colour/.forward to=/duck/signcolour,
+ sign color/.forward to=/duck/signcolour,
+ signcolor/.forward to=/duck/signcolour,
signback/.code = \def\duck@signback{#1},
sign back/.forward to=/duck/signback,
magicwand/.code = \duck@magicwandtrue,
@@ -282,8 +312,10 @@
prison/.code = \duck@prisontrue \def\duck@prison{#1},
speech/.code = \duck@speechtrue \def\duck@speech{#1},
think/.code = \duck@thinktrue \def\duck@think{#1},
- bubblecolour/.code = \def\duck@bubblecolour{#1},
+ bubblecolour/.code = \def\duck@bubblecolour{#1},
bubble colour/.forward to=/duck/bubblecolour,
+ bubble color/.forward to=/duck/bubblecolour,
+ bubblecolor/.forward to=/duck/bubblecolour,
torch/.code = \duck@torchtrue \def\duck@torch{#1},
basket/.code = \duck@baskettrue \def\duck@basket{#1},
easter/.code = \duck@eastertrue
@@ -301,6 +333,16 @@
davidlikespineapplepizza/.code = \duck@davidlikespineapplepizzatrue
\duck@speechtrue \def\duck@speech{\scalebox{\yscalefactor}{\scalebox{0.9}{\tiny ih, che schifo!}}},
david likes pineapple pizza/.forward to=/duck/davidlikespineapplepizza,
+ wing/.code = \duck@wingtrue \def\duck@wing{#1},
+ stethoscope/.code = \duck@stethoscopetrue \def\duck@stethoscope{#1},
+ neckerchief/.code = \duck@neckerchieftrue \def\duck@neckerchief{#1},
+ woggle/.code = \def\duck@woggle{#1},
+ snowduck/.code = \duck@snowducktrue \def\duck@snowduck{#1}
+ \def\duck@eye{#1} \def\duck@body{#1}
+ \duck@tophattrue \def\duck@tophat{black}
+ \duck@buttonstrue \def\duck@buttons{black},
+ snow duck/.forward to=/duck/snowduck,
+ vampire/.code = \duck@vampiretrue \def\duck@vampire{#1},
% setting defaults %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
glasses/.default = black,
sunglasses/.default= black,
@@ -335,6 +377,12 @@
sheep/.default = \duck@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@draw{
@@ -399,6 +447,8 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{pgfonlayer}{bodylayer}
+\ifduck@invisible
+\else
%
% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{pgfinterruptboundingbox}
@@ -414,7 +464,22 @@
\ifduck@grumpy
\fill[\duck@bill] \duckpathgrumpybill;
\else
- \fill[\duck@bill] \duckpathbill;
+ \ifduck@laughing
+ \fill[\duck@bill!80!black] (0.40,1.20) .. controls (0.54,1.36) and (0.65,1.31) .. (0.91,1.37) .. controls (0.45,1.06) and (0.36,1.18) .. (0.40,1.20) -- cycle;
+ \fill[\duck@bill]
+ (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@parrot
+ \fill[\duck@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@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@bill] \duckpathbill;
+ \fi
+ \fi
\fi
%
% Superhero mask %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -438,6 +503,7 @@
\fill[\duck@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@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@neckerchief
+ \fill[\duck@neckerchief]
+ (0.3650,1.0892) .. controls (0.4127,1.1589) and (0.4900,1.1450) .. (0.4900,1.1450) .. controls (0.6500,0.9300) and (1.1366,1.2400) .. (1.3675,1.2649) .. controls (1.4131,1.2533) and (1.4052,1.2446) .. (1.4099,1.2124) .. controls (1.3028,1.0810) and (0.7415,0.8930) .. (0.6807,0.9076) .. controls (0.8257,0.7387) and (0.6347,0.7168) .. (0.7151,0.4426) .. controls (0.6059,0.5672) and (0.5513,0.6588) .. (0.5938,0.8388) .. controls (0.5871,0.6953) and (0.4493,0.7565) .. (0.4716,0.4967) .. controls (0.3682,0.6697) and (0.3820,0.7984) .. (0.5321,0.9351) .. controls (0.4635,0.9699) and (0.4115,1.0215) .. (0.3650,1.0892) -- cycle;
+ \fill[\duck@woggle, rounded corners=\yscalefactor*1, rotate=-10] (0.33,1.05) rectangle (0.55,0.98);
+\fi
+%
% buttons (same argument as for the necklace)
\ifduck@buttons
\ifduck@jacket
@@ -547,6 +620,14 @@
\end{pgfinterruptboundingbox}
\fi
%
+% middle parting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@parting
+ \path (0.1,0.1) rectangle (2.1,2.22);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@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/.@def/.get=\duck@test}
\ifx\duck@eyebrow\duck@test
@@ -665,11 +746,12 @@
\end{pgfinterruptboundingbox}
\fi
%
-% Queen crown
+% Queen crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@queencrown
\fill[\duck@queencrown] \duckpathqueencrown;
\fi
-% King crown
+%
+% King crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@kingcrown
\fill[\duck@kingcrown] \duckpathkingcrown;
\fi
@@ -712,6 +794,28 @@
\end{pgfinterruptboundingbox}
\fi
%
+% Harlequin duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@harlequin
+ \path (0.19,1.85) rectangle (1.85,2.67);
+ \begin{pgfinterruptboundingbox}
+ \fill[\duck@harlequin] (0.6006,1.9719) .. controls (0.7432,1.8954) and (0.9320,1.8698) .. (0.9320,1.8698) -- (1.0404,2.3839) .. controls (0.9223,2.8873) and (0.1755,2.5634) .. (0.3019,2.2958) .. controls (0.5807,2.5024) and (0.7251,2.3376) .. (0.6006,1.9719) -- cycle;
+ \fill[\duck@niuqelrah] (1.2853,1.8902) .. controls (1.1177,1.8507) and (0.9278,1.8703) .. (0.9278,1.8703) -- (1.0404,2.3839) .. controls (1.3637,2.8347) and (1.9373,2.3532) .. (1.7049,2.1284) .. controls (1.5267,2.3895) and (1.3204,2.2666) .. (1.2853,1.8902) -- cycle;
+ \end{pgfinterruptboundingbox}
+ \fill[\duck@harlequin] (1.7,2.07) circle (0.1);
+ \fill[\duck@niuqelrah] (0.3,2.23) circle (0.1);
+\fi
+%
+% Straw hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@strawhat
+ \fill[\duck@strawhat,rotate=-15] (0.44,2.0) ellipse (0.75 and 0.1);
+ \fill[\duck@strawhat,rotate=-15] (0.1,2.05) rectangle (0.78,2.5);
+ \fill[\duck@strawhat,rotate=-15] (0.44,2.5) ellipse (0.34 and 0.08);
+ \fill[\duck@strawhat,rotate=-15] (-0.3,2.02) -- (1.18,2.02) -- (0.78,2.2) -- (0.1,2.2) -- cycle;
+ \fill[\duck@ribbon,rotate=-15] (0.44,2.2) ellipse (0.34 and 0.08);
+ \fill[\duck@ribbon,rotate=-15] (0.1,2.2) rectangle (0.78,2.3);
+ \fill[\duck@strawhat,rotate=-15] (0.44,2.3) ellipse (0.34 and 0.08);
+\fi
+%
%\end{pgfonlayer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
@@ -973,6 +1077,39 @@
\fill[\duck@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);
\fi
%
+% stethoscope
+\ifduck@stethoscope
+ \fill[\duck@stethoscope,rounded corners=\yscalefactor*0.5,rotate=-18] (0.08,0.7) rectangle (0.13,1.24);
+ \fill[\duck@stethoscope] (0.35,0.7) circle (0.1);
+ \begin{scope}
+ \fill[\duck@stethoscope,rounded corners=\yscalefactor*0.5,rotate=-30] (0.53,1.3) rectangle (0.58,1.72);
+ \clip[rotate=-30] (0.36,0.89) -- (0.36,1.36) -- (0.79,1.36) -- (0.79,0.89) -- (0.65,0.89) -- (0.65,0.96) -- (0.5,0.96) -- (0.5,0.89) -- cycle ;
+ \fill [\duck@stethoscope,rounded corners=\yscalefactor*3,rotate=-30,even odd rule] (0.775,1.35) rectangle (0.375,0.9) [rounded corners=\yscalefactor*2] (0.725,1.3) rectangle (0.425,0.95);
+ \end{scope}
+\fi
+%
+% snow duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@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@vampire
+ \ifduck@laughing
+ \fill[\duck@vampire] (0.55,1.28) -- (0.575,1.22) -- (0.6,1.29) -- cycle;
+ \else
+ \fill[\duck@vampire] (0.6,1.20) -- (0.625,1.16) -- (0.65,1.223) -- cycle;
+ \fi
+\fi
+% wing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@wing
+ \fill[\duck@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
}
diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
index df926510254..91f762ae9f8 100644
--- a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
+++ b/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
@@ -10,8 +10,8 @@
% Released under the LaTeX Project Public License v1.3c or later
% See http://www.latex-project.org/lppl.txt
%
-% Version 0.6
-% April 04, 2018
+% Version 0.7
+% July 10, 2018
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{tikzducks}