texlive[71015] Master: tikzducks (20apr24)

commits+karl at tug.org commits+karl at tug.org
Sat Apr 20 21:26:11 CEST 2024


Revision: 71015
          https://tug.org/svn/texlive?view=revision&revision=71015
Author:   karl
Date:     2024-04-20 21:26:11 +0200 (Sat, 20 Apr 2024)
Log Message:
-----------
tikzducks (20apr24)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.pdf
    trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex
    trunk/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv
    trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex
    trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc-settings.sty

Added: trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc-settings.sty
===================================================================
--- trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc-settings.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc-settings.sty	2024-04-20 19:26:11 UTC (rev 71015)
@@ -0,0 +1,183 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Personal helper theme for package documentations
+% Copyright samcarter
+%
+% This file may be distributed and/or modified
+% under the LaTeX Project Public License 1.3c or later
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Usage:
+% ln ~/Life/latex/beamertheme-sam/themesam.sty package-doc-settings.sty 
+% \usepackage[
+%   themecolor=samdblue
+% ]{\jobname-settings}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Colours
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{xcolor}
+\definecolor{samyellow}{RGB}{246,193,65}
+\definecolor{samorange}{RGB}{241,147,45}
+\definecolor{samred}{RGB}{191,26,46}% TikZbricks
+\definecolor{sammagenta}{RGB}{170,42,104}% TikZmarmots
+\definecolor{samviolet}{RGB}{136,46,114}% TikZlings
+\definecolor{samlila}{RGB}{101,67,159}% Rainbow beamer theme
+\definecolor{samdblue}{RGB}{0,51,134}% beamer theme
+\definecolor{samlblue}{RGB}{22,89,155}% TikZducks
+\definecolor{samteal}{RGB}{25,143,157}% Tcolorbox beamer theme
+\definecolor{samlgreen}{RGB}{68,170,153}% Jigsaw
+\definecolor{samdgreen}{RGB}{78,178,125}
+\definecolor{samlgray}{RGB}{160,160,185}
+\definecolor{samdgray}{RGB}{60,60,85}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Package options
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage{xkeyval}
+\DeclareOptionX{themecolor}[samdblue]{\colorlet{themecolor}{#1}}
+\DeclareOptionX{listingcolor}[samlblue]{\colorlet{listingcolor}{#1}}
+\ExecuteOptionsX{themecolor,listingcolor}
+\ProcessOptionsX
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Packages
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifclassloaded{beamer}{}{%
+  \RequirePackage[english]{babel}
+  \RequirePackage[paper=a4paper,margin=2.9cm]{geometry}
+  \RequirePackage{scrlayer-scrpage}
+  \let\hrulefillx\hrulefill
+  \RequirePackage[bitstream-charter]{mathdesign}
+  \let\hrulefill\hrulefillx
+  \RequirePackage[hang,flushmargin,bottom]{footmisc}
+  \RequirePackage[colorlinks=true,breaklinks=true,allcolors=themecolor]{hyperref}
+}
+\RequirePackage[T1]{fontenc}
+\RequirePackage{xspace}
+\RequirePackage{inconsolata}% mono font with bold, but italic is missing
+% \RequirePackage[scale=0.85]{cascadia-code}
+% \AddToHook{cmd/ttfamily/before}{\fontseries{sl}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Listings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\RequirePackage[
+  cachedir=./build/
+]{minted}
+
+% smuggling custom pygmentize style in cache folder
+% (a real pygmentise style would need installtion in some python folder)
+\begin{filecontents*}[noheader]{./build/sam.pygstyle}
+\makeatletter
+\def\PYG at reset{\let\PYG at it=\relax \let\PYG at bf=\relax%
+    \let\PYG at ul=\relax \let\PYG at tc=\relax%
+    \let\PYG at bc=\relax \let\PYG at ff=\relax}
+\def\PYG at tok#1{\csname PYG at tok@#1\endcsname}
+\def\PYG at toks#1+{\ifx\relax#1\empty\else%
+    \PYG at tok{#1}\expandafter\PYG at toks\fi}
+\def\PYG at do#1{\PYG at bc{\PYG at tc{\PYG at ul{%
+    \PYG at it{\PYG at bf{\PYG at ff{#1}}}}}}}
+\def\PYG#1#2{\PYG at reset\PYG at toks#1+\relax+\PYG at do{#2}}
+
+% optional arguments
+\expandafter\def\csname PYG at tok@na\endcsname{\def\PYG at tc##1{\textcolor{black}{##1}}}
+
+% macros
+\expandafter\def\csname PYG at tok@k\endcsname{\def\PYG at tc##1{\textcolor{listingcolor}{\bfseries ##1}}}
+% curly brakets
+\expandafter\def\csname PYG at tok@nb\endcsname{\def\PYG at tc##1{\textcolor{listingcolor}{\bfseries ##1}}}
+
+% comments (italics won't work with the inconsolata font)
+\expandafter\def\csname PYG at tok@c\endcsname{\def\PYG at tc##1{\textcolor{gray}{##1}}}
+
+\def\PYGZbs{\char`\\}
+\def\PYGZus{\char`\_}
+\def\PYGZob{\char`\{}
+\def\PYGZcb{\char`\}}
+\def\PYGZca{\char`\^}
+\def\PYGZam{\char`\&}
+\def\PYGZlt{\char`\<}
+\def\PYGZgt{\char`\>}
+\def\PYGZsh{\char`\#}
+\def\PYGZpc{\char`\%}
+\def\PYGZdl{\char`\$}
+\def\PYGZhy{\char`\-}
+\def\PYGZsq{\char`\'}
+\def\PYGZdq{\char`\"}
+\def\PYGZti{\char`\~}
+% for compatibility with earlier versions
+\def\PYGZat{@}
+\def\PYGZlb{[}
+\def\PYGZrb{]}
+\makeatother
+\end{filecontents*}
+
+\usemintedstyle{sam}
+\setminted{
+  breaksymbolleft={},
+  tabsize=2,
+  breaklines=true,
+}
+\newminted[samcode]{latex}{}
+\newmintinline[saminline]{latex}{}
+
+% use non-bold and all coloured for inline code in articles
+\ifdefined\insertaspectratio\else
+  \patchcmd{\minted at inputpyg@inline}{\minted at input}{\color{listingcolor}\renewcommand\textcolor[3][]{##3}\renewcommand\bfseries{}\minted at input}{}{}
+\fi
+
+\RequirePackage[most]{tcolorbox}
+\tcbuselibrary{minted}
+\tcbset{%
+  colframe=themecolor,
+  arc=2mm,
+  fonttitle=\bfseries,
+  sidebyside,
+  center lower,
+  righthand width=5.7cm,
+  bottom=2pt, 
+  top=2pt,
+  sidebyside gap=10pt,
+  lower separated=false,
+  listing engine=minted,
+  minted language=latex,
+  colback=themecolor!10
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% document settings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\@ifclassloaded{scrartcl}{%
+  \KOMAoptions{parskip=half}
+  \addtokomafont{sectioning}{\color{themecolor}}
+  \addtokomafont{date}{\normalsize}
+  \addtokomafont{author}{\normalsize}
+  \setlength{\footnotemargin}{0.7em}
+}{}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Custom macros
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\providecommand*{\CTAN}{\textsc{CTAN}\xspace}
+\providecommand*{\TikZ}{Ti\emph{k}Z\xspace}
+\providecommand*{\miktex}{MiK\TeX\xspace}
+\providecommand*{\texlive}{\TeX{}Live\xspace}
+\providecommand*{\tikzbrick}{Ti\emph{k}Zbrick\xspace}
+\providecommand*{\tikzducks}{Ti\emph{k}Zducks\xspace}
+\providecommand*{\tikzlings}{Ti\emph{k}Zlings\xspace}
+\providecommand*{\tikzmarmots}{Ti\emph{k}Zmarmots\xspace}
+\providecommand*{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc-settings.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex
===================================================================
--- trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex	2024-04-20 19:24:35 UTC (rev 71014)
+++ trunk/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex	2024-04-20 19:26:11 UTC (rev 71015)
@@ -11,84 +11,50 @@
 % See http://www.latex-project.org/lppl.txt
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\documentclass[parskip=half]{scrartcl}
+% !TeX program = txs:///arara
+% arara: latexmk: {
+% arara: --> engine: pdflatex,
+% arara: --> options: [
+% arara: -->    '-shell-escape',
+% arara: -->    '-synctex=1',
+% arara: -->    '-interaction=nonstopmode',
+% arara: -->  ]
+% arara: --> }
+\documentclass{scrartcl}
 
+% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\title{The \texorpdfstring{\tikzducks}{tikzducks} package}
+\subtitle{using ducks in \TikZ}
+\author{%
+  \texorpdfstring{
+    \begin{tikzpicture}
+      \duck
+    \end{tikzpicture}\\[0.8em]
+    \texttt{samcarter}\\
+    \url{https://github.com/samcarter/tikzducks}\\
+    \url{https://www.ctan.org/pkg/tikzducks}
+  }{samcarter}}
+\date{Version v1.7 \textendash{} 2024/04/19}
+
+\usepackage[
+  themecolor=samlblue
+]{\jobname-settings}
+
+\colorlet{blue}{samlblue}
+\colorlet{red}{samred}
+
 % packages %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\usepackage[T1]{fontenc}  
-\usepackage[utf8]{inputenc}    
-\usepackage[english]{babel}
-\usepackage[bitstream-charter]{mathdesign}
 \usepackage{tikzducks}
 \usetikzlibrary{ducks,3d}
-\usepackage[most]{tcolorbox}
-\usepackage[paper=a4paper,margin=3cm,foot=2cm]{geometry}
-\usepackage{url}
-\usepackage{xspace}
-\usepackage{scrlayer-scrpage} 
 \usepackage{marvosym}
 \usepackage{fontawesome}
-\usepackage[hang,flushmargin,bottom]{footmisc}
-\usepackage{imakeidx}
-\usepackage[colorlinks=true,breaklinks=true,urlcolor=duckblue,linkcolor=duckblue,citecolor=duckblue,filecolor=duckblue]{hyperref}
 
-% macros %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\CTAN}{\textsc{CTAN}\xspace}
-\newcommand{\TikZ}{Ti\emph{k}Z\xspace}
-\newcommand{\tikzducks}{Ti\emph{k}Zducks\xspace}
-\newcommand{\miktex}{MiK\TeX\xspace}
-\newcommand{\texlive}{\TeX{}Live\xspace}
-\newcommand{\ConTeXt}{C\kern-.0333emon\-\kern-.0667em\TeX\kern-.0333emt}
-
 % customisation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\definecolor{duckblue}{RGB}{0,70,140}
-\addtokomafont{sectioning}{\color{duckblue}}
-\addtokomafont{date}{\normalsize}
-\addtokomafont{author}{\normalsize}
-\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,sailor,bobblehat,scarf,strawbroom, strawbroomstick, strawbroomribbon, broom, broomstick},
-  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%
-  },
-}
-
-\lstset{style=duckstyle}
-\pgfkeys{/duck/|stripes|/.style={stripes={#1}}}
-
 \pgfmathsetseed{2}
 \setlength{\footheight}{41pt}
 \newlength{\duckoffset}
 
 \cfoot{%
-  \tikzset{external/export=false}%
   \shuffleducks
   \begin{tikzpicture}[scale=0.5] 
       \duck[signpost=\scalebox{0.6}{\thepage},\randomhead]
@@ -95,30 +61,7 @@
   \end{tikzpicture}
 } 
 \pagestyle{scrheadings}
-\indexsetup{firstpagestyle=scrheadings}
-\makeindex[columns=3]
 
-\usetikzlibrary{external}
-\ifnum\pdfshellescape=1
-  \tikzexternalize[prefix=./tikzducks-doc-figures/]
-\fi
-
-% meta %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\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.6 \textendash{} 2023/04/05}
-
 \begin{document}
 \maketitle
 \thispagestyle{scrheadings}
@@ -146,7 +89,7 @@
 
 Many other users contributed to this package (in random order):
 %
-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 \saminline|\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'',
 %
@@ -154,7 +97,7 @@
 %
 Mihikma created the duck's beard,
 %
-Yudai Nakata helped with problems of \lstinline|\pdfrandomseed|,
+Yudai Nakata helped with problems of \saminline|\pdfrandomseed|,
 %
 @marmot for his seemingly infinite knowledge of \TikZ which he shared with the world,    
 %
@@ -162,18 +105,8 @@
 %
 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{svg2tikz} extension (\url{https://github.com/xyz2tex/svg2tikz}).
 
-\subsection{Dependencies}
-
-The \tikzducks package loads \lstinline|expl3| and \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}
-\end{lstlisting}
-It also uses the \lstinline|\usetikzlibrary{patterns}| and \lstinline|\usetikzlibrary{calc}|. 
-
 \subsection{License}
 
 Copyright \raisebox{0.2em}{\tiny\fontfamily{cmr}\selectfont\textcopyright}
@@ -190,7 +123,7 @@
 \end{tikzpicture}
 \end{tcblisting}
 
-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:
+To customise this basic duck, the package uses \saminline|pgf| keys. For almost all parts the colour can be changed using \saminline|<shape name>=<colour name>|. For example to change the colour of the duck:
 \begin{tcblisting}{title={Blue duck}}
 \begin{tikzpicture}
   \duck[body=blue]
@@ -199,8 +132,7 @@
 
 If the keyword consists of multiples words, it works both with and without spaces. In the following usually the version without spaces is given. 
 
-\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:
+In addition to the keys defined in this package, all usual \TikZ and \saminline|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{tikzpicture}[scale=0.6]
@@ -207,15 +139,15 @@
   \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[body=gray!50!white, head=gray!50!white,
+        xshift=80pt, scale=.3, yshift=50pt]
 \end{tikzpicture}
 \end{tcblisting}
 
-To make the usage easier for the \TikZ-savvy users, Andrew Stacey contributed a \TikZ library. It can be loaded with \lstinline|\usetikzlibrary{ducks}|. In addition to the normal functionality of the \tikzducks package, the ducks are now also available as \lstinline|pic|. A short example:
+To make the usage easier for the \TikZ-savvy users, Andrew Stacey contributed a \TikZ library. It can be loaded with \saminline|\usetikzlibrary{ducks}|. In addition to the normal functionality of the \tikzducks package, the ducks are now also available as \saminline|pic|. A short example:
 
 \begin{tcolorbox}[title={\TikZ library ``ducks''}]
-\begin{lstlisting}[morekeywords={ducks,duck,standalone,tikz,document}]
+\begin{samcode}
 \documentclass{standalone}
 
 \usepackage{tikz}
@@ -225,7 +157,7 @@
 
 \begin{tikzpicture}
 \draw (0,0) pic[
-    duck/water=green,
+    duck/water=blue,
     duck/alien,
   ] {duck};
 \draw (4,0) pic[
@@ -234,13 +166,13 @@
 \end{tikzpicture}
 
 \end{document}
-\end{lstlisting} 
+\end{samcode} 
 
 \tcblower
 \begin{tikzpicture}
 \draw (0,0) pic[
-    duck/water=green,
-    duck/alien,
+    duck/water=blue,
+    duck/alien=samdgreen,
   ] {duck};
 \draw (2,1) pic[
     scale=1.4,
@@ -272,7 +204,7 @@
 And thanks to @JairoAdelRio there is even a \ConTeXt{} User Module available. Some of the colours might look different and not being a \ConTeXt{} user myself, I can't guarantee maintenance of this module.  
 
 \begin{tcolorbox}[title={\ConTeXt{}  User Module}]
-\begin{lstlisting}[morekeywords={usemodule,usecolors,starttext,stoptext,starttikzpicture,stoptikzpicture}]
+\begin{samcode}
 \usemodule[tikzducks]
 \usecolors[xwi]
 \starttext
@@ -282,11 +214,11 @@
 \stoptikzpicture
 
 \stoptext
-\end{lstlisting} 
+\end{samcode} 
 
 \tcblower
 \begin{tikzpicture}
-\duck[tophat,bowtie]
+  \duck[tophat,bowtie]
 \end{tikzpicture}
 \end{tcolorbox}
 
@@ -293,7 +225,7 @@
 For those who prefer to work with pdf\TeX:
 
 \begin{tcolorbox}[title={pdfTeX}]
-\begin{lstlisting}[morekeywords={endtikzpicture,bye,input}]
+\begin{samcode}
 \input tikzducks-plain.tex
 
 \tikzpicture
@@ -301,28 +233,28 @@
 \endtikzpicture
 
 \bye
-\end{lstlisting} 
+\end{samcode}
 
 \tcblower
 \begin{tikzpicture}
-\duck[bobblehat,cheese]
+  \duck[bobblehat,cheese]
 \end{tikzpicture}
 \end{tcolorbox}
 
 \subsection{Body parts}
 
-The various parts of the duck can also be coloured independently, i.e.\ \lstinline|body|, \lstinline|head| or \lstinline|bill|:
+The various parts of the duck can also be coloured independently, i.e.\ \saminline|body|, \saminline|head| or \saminline|bill|:
 
 \begin{tcblisting}{title={Harlequin duck}}
 \begin{tikzpicture}
   \duck[body=yellow,
-    head=yellow!50!orange, 
-    bill=red,
-    eye=green]
+        head=yellow!50!orange, 
+        bill=red,
+        eye=green]
 \end{tikzpicture}
 \end{tcblisting}
 
-Furthermore using the keywords \lstinline|grumpy|, \lstinline|laughing| or \lstinline|parrot| the shape of the bill can be changed:
+Furthermore using the keywords \saminline|grumpy|, \saminline|laughing| or \saminline|parrot| the shape of the bill can be changed:
 
 \begin{tcblisting}{title={Grumpy duck}}
 \begin{tikzpicture}
@@ -405,7 +337,7 @@
 \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.
+Eyebrows and a beard are also part of the package. The colour choice is more tricky for them -- if a colour is explicitly specified (\saminline|eyebrow=<colour name>| or \saminline|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.
 
 \begin{tcblisting}{title={Eye brow duck}}
 \begin{tikzpicture}
@@ -431,7 +363,7 @@
 \end{tcblisting}
 \footnotetext[\thefootnote]{The beard is based on an answer by Mihikma, see \url{https://tex.stackexchange.com/a/401777/36296}}
 
-Please note that not all of the accessories, especially hats, shown in the following sections, will suite every hairstyle. In case the desired combination of hair style and hat does not work well, there is always the possibility to look up the original definition of the hat in the \lstinline|tikzducks| source code and recreate it with a more suitable position or size.
+Please note that not all of the accessories, especially hats, shown in the following sections, will suite every hairstyle. In case the desired combination of hair style and hat does not work well, there is always the possibility to look up the original definition of the hat in the \saminline|tikzducks| source code and recreate it with a more suitable position or size.
 
 \subsection{Clothing}
 
@@ -452,8 +384,8 @@
 \begin{tcblisting}{title={Tie duck}}
 \begin{tikzpicture}
   \duck[tshirt,
-      jacket=gray,
-      tie]
+        jacket=gray,
+        tie]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -460,8 +392,8 @@
 \begin{tcblisting}{title={Bowtie duck}}
 \begin{tikzpicture}
   \duck[tshirt,
-      jacket=gray,
-      bowtie]
+        jacket=gray,
+        bowtie]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -468,8 +400,7 @@
 \begin{tcblisting}{title={Áo dài duck}}
 \begin{tikzpicture}
   \duck[tshirt=cyan,
-        aodai=blue!50!black
-  ]
+        aodai=blue!65!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -512,7 +443,8 @@
 
 \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}
 
@@ -537,7 +469,8 @@
 
 \begin{tcblisting}{title={Graduate duck}}
 \begin{tikzpicture}
-  \duck[graduate=gray!20!black,tassel=red!70!black]
+  \duck[graduate=gray!20!black,
+        tassel=red!70!black]
 \end{tikzpicture}  
 \end{tcblisting}
 
@@ -556,7 +489,7 @@
 \begin{tcblisting}{title={Harlequin duck}}
 \begin{tikzpicture}
   \duck[harlequin=blue,
-    niuqelrah=red]
+        niuqelrah=red]
 \end{tikzpicture}  
 \end{tcblisting}
 
@@ -574,15 +507,15 @@
 
 \begin{tcblisting}{title={Crown duck}}
 \begin{tikzpicture}
-\duck[body=black!75!white,
-      crown=yellow!70!brown]
+  \duck[body=black!75!white,
+        crown=yellow!70!brown]
 \end{tikzpicture}
 
 \begin{tikzpicture}
-\duck[queencrown=gray]
+  \duck[queencrown=gray]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[kingcrown=brown!70!red]
+  \duck[kingcrown=brown!70!red]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -607,8 +540,8 @@
 \begin{tcblisting}{title={Unicorn duck}}
 \begin{tikzpicture}
   \duck[body=pink,
-    unicorn=magenta!60!violet,
-    longhair=magenta!60!violet]
+        unicorn=magenta!60!violet,
+        longhair=magenta!60!violet]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -615,10 +548,12 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Bunny duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-\duck[body=white!80!brown, bill=white!60!brown, bunny]
+  \duck[body=white!80!brown, 
+        bill=white!60!brown, 
+        bunny]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[bunny=red,inear=blue]
+  \duck[bunny=red,inear=blue]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{Unless an explicit colour is specified, the bunny ears will take the body colour as default colour, the inner parts will be drawn in a lighter shade.}
@@ -626,7 +561,9 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Sheep duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-\duck[body=white!80!brown, bill=white!60!brown, sheep]
+  \duck[body=white!80!brown, 
+        bill=white!60!brown, 
+        sheep]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{The in-ear colour of the sheep chosen to be the same as the bill}
@@ -634,7 +571,9 @@
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Horse duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-\duck[body=brown!80!white, longhair=brown!50!black, horsetail]
+  \duck[body=brown!80!white, 
+        longhair=brown!50!black, 
+        horsetail]
 \end{tikzpicture}
 \end{tcblisting}
 \footnotetext[\thefootnote]{If no colour is specified, the horse tail will have the same colour as the hair}
@@ -682,14 +621,14 @@
 
 \begin{tcblisting}{title={Signpost duck}}
 \begin{tikzpicture} 
-    \duck[signpost=42]
+  \duck[signpost=42]
 \end{tikzpicture}
 \begin{tikzpicture} 
-\duck[signpost=\scalebox{0.4}{
-  \parbox{2cm}{\color{black}
-  \centering Science\\ first}},
-  signcolour=brown!70!gray,
-  signback=white!80!brown]
+  \duck[signpost=\scalebox{0.4}{
+        \parbox{2cm}{\color{black}
+        \centering Science\\ first}},
+        signcolour=brown!70!gray,
+        signback=white!80!brown]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -696,13 +635,16 @@
 \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}}
@@ -720,7 +662,8 @@
 
 \begin{tcblisting}{title={Dinner jacket duck}}
 \begin{tikzpicture}
-  \duck[jacket=gray,lapel=black,buttons]
+  \duck[jacket=gray,
+        lapel=black,buttons]
 \end{tikzpicture}  
 \end{tcblisting}
 
@@ -729,7 +672,8 @@
   \duck[book=\scalebox{0.5}{\TeX}]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[book=\scalebox{0.6}{$\pi$}, bookcolour=blue!50!black]
+  \duck[book=\scalebox{0.6}{$\pi$}, 
+        bookcolour=blue!50!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -756,7 +700,8 @@
 \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)}
@@ -801,7 +746,7 @@
 \begin{tcblisting}{title={Chef duck$^{\thefootnote}$}}
 \begin{tikzpicture}
   \duck[chef=white!95!yellow,
-      rollingpin=brown!80!black]
+        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}}
@@ -850,12 +795,20 @@
 \end{tikzpicture}  
 \end{tcblisting}
 
-\begin{tcblisting}{title={Wing duck}}
+\addtocounter{footnote}{1}
+\begin{tcblisting}{title={Banana duck$^{\thefootnote}$}}
 \begin{tikzpicture}
-  \duck[wing=yellow!90!brown]
+  \duck[banana=yellow!80!orange]
 \end{tikzpicture}
 \end{tcblisting}
 
+\begin{tcblisting}{title={Stick duck$^{\thefootnote}$}}
+\begin{tikzpicture}
+  \duck[stick=red!60!green,leaf=green!70!red]
+\end{tikzpicture}
+\end{tcblisting}
+\footnotetext[\thefootnote]{The banana and the stick were kindly contributed by @NuzzleTOO}
+
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Basket duck$^{\thefootnote}$}}
 \begin{tikzpicture}
@@ -868,12 +821,18 @@
   \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={Wing duck}}
+\begin{tikzpicture}
+  \duck[wing=yellow!90!brown]
+\end{tikzpicture}
+\end{tcblisting}
+
 \begin{tcblisting}{title={Ducktor}}
 \begin{tikzpicture}
   \duck[stethoscope=gray!80!black]
@@ -883,7 +842,7 @@
 \begin{tcblisting}{title={Neckerchief duck}}
 \begin{tikzpicture}
   \duck[neckerchief=red!70!black,
-    woggle=blue!60!black]
+        woggle=blue!60!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -890,7 +849,7 @@
 \begin{tcblisting}{title={Winter duck}}
 \begin{tikzpicture}
   \duck[bobblehat=red!70!black,
-    scarf=red!70!black]
+        scarf=red!70!black]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -930,17 +889,13 @@
 
 \begin{tcblisting}{title={Sweeping Duck}}
 \begin{tikzpicture}
-  \duck[
-    strawbroom=brown!50!white,
-    strawbroomstick=brown,
-    strawbroomribbon=red!50!black
-  ]
+  \duck[strawbroom=brown!50!white,
+        strawbroomstick=brown,
+        strawbroomribbon=red!50!black]
 \end{tikzpicture}  
 \begin{tikzpicture}
-  \duck[
-    broom=brown,
-    broomstick=gray!50!black
-  ]
+  \duck[broom=brown,
+        broomstick=gray!50!black]
 \end{tikzpicture}  
 \end{tcblisting}
 
@@ -953,12 +908,6 @@
 \end{tikzpicture}  
 \end{tcblisting}
 
-\begin{tcblisting}{title={Handbag Duck}}
-\begin{tikzpicture}
-  \duck[handbag=red!70!black]
-\end{tikzpicture}   
-\end{tcblisting}
-
 \addtocounter{footnote}{1}
 \begin{tcblisting}{title={Overleaf Duck$^{\thefootnote}$}}
 \begin{tikzpicture}
@@ -967,9 +916,14 @@
 \end{tcblisting}
 \footnotetext[\thefootnote]{added to celebrate that \tikzducks are now also available on overleaf, see \url{https://www.overleaf.com/blog/tex-live-upgrade-september-2019}}
 
-\clearpage
+\begin{tcblisting}{title={Handbag Duck}}
+\begin{tikzpicture}
+  \duck[handbag=red!70!black]
+\end{tikzpicture}   
+\end{tcblisting}
+
 \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 ...)
+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 \saminline|\randuck|, which automatically creates a duck with a randomly chosen accessories and something on top of the head (hair, a hat, ears, alien antenna ...)
 
 \begin{tcblisting}{title={Random duck}}
 \begin{tikzpicture}
@@ -978,7 +932,7 @@
 \end{tikzpicture}
 \end{tcblisting}
 
-In case the duck should not be completely random, but only some of the random elements are desired, these can be accessed independently by using \lstinline|\randomhead| and \lstinline|\randomaccessories| for a random headpiece and a random accessories, respectively. Small caveat: Before using \lstinline|\randomhead| or \lstinline|\randomaccessories|, \lstinline|\shuffleducks| has to be used to provide the random items (for \lstinline|\randuck| this is done automatically).     
+In case the duck should not be completely random, but only some of the random elements are desired, these can be accessed independently by using \saminline|\randomhead| and \saminline|\randomaccessories| for a random headpiece and a random accessories, respectively. Small caveat: Before using \saminline|\randomhead| or \saminline|\randomaccessories|, \saminline|\shuffleducks| has to be used to provide the random items (for \saminline|\randuck| this is done automatically).     
 
 \begin{tcblisting}{title={Random head gear and accessories}}
 \begin{tikzpicture}
@@ -989,7 +943,7 @@
 
 \section{Further customisation}
 
-This package will never be able to do everything every potential user might want to do, as this number quickly approaches $\infty$ -- but as the ducks are simply things inside \lstinline|tikzpicture|s, all the heavy weapons of the \TikZ package are available for further customisation.
+This package will never be able to do everything every potential user might want to do, as this number quickly approaches $\infty$ -- but as the ducks are simply things inside \saminline|tikzpicture|s, all the heavy weapons of the \TikZ package are available for further customisation.
 
 \begin{tcblisting}{title={Adding things to the duck}}
 \begin{tikzpicture}
@@ -1010,20 +964,26 @@
 \begin{tcblisting}{title={Redraw parts}}
 \begin{tikzpicture}
   \duck
-  \path[preaction={fill, red!50!black},pattern=fivepointed stars, pattern color=yellow]  
-      \duckpathlonghair;
+  \path[preaction={fill, red!50!black},
+        pattern=fivepointed stars, 
+        pattern color=yellow]  
+        \duckpathlonghair;
 \end{tikzpicture}
 \end{tcblisting}
 
 In detail, the following paths are available:
 
-\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}
+\begin{samcode}
+\duckpathbody, \duckpathgrumpybill, \duckpathbill, \duckpathtshirt,
+\duckpathjacket,\duckpathcape, \duckpathshorthair, \duckpathlonghair, 
+\duckpathcrazyhair, \duckpathrecedinghair, \duckpathcrown,  
+\duckpathmohican,  \duckpathmullet,  \duckpathqueencrown,  
+\duckpathkingcrown,  \duckpathdarthvader,  \duckpathhorsetail
+\end{samcode}
 
-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|.
+In case one of the other shapes is needed, please have a look at the package source code, which can be found in \saminline|tikzducks.sty|.
 
-To ease the placement of further accessories, some particular spots of the duck are marked with \TikZ coordinates, namely the \lstinline|wing|, \lstinline|head|, \lstinline|bill| and \lstinline|tail|. 
+To ease the placement of further accessories, some particular spots of the duck are marked with \TikZ coordinates, namely the \saminline|wing|, \saminline|head|, \saminline|bill| and \saminline|tail|. 
 
 {
 \footnotesize\ttfamily
@@ -1042,18 +1002,18 @@
 \end{tcblisting}
 }
 
-To distinguish coordinates from multiple ducks in the same \lstinline|tikzpicture|, one can name the ducks using the option \lstinline[emph={name}]|name|. If this option is used, the coordinates are prefixed with the respective name and a dash: \lstinline|<name>-<coordinate>|.
+To distinguish coordinates from multiple ducks in the same \saminline|tikzpicture|, one can name the ducks using the option \saminline|name|. If this option is used, the coordinates are prefixed with the respective name and a dash: \saminline|<name>-<coordinate>|.
 
 \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]
+  \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|. 
+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: \saminline|\duckhookbackground|, \saminline|\duckhookbody|, \saminline|\duckhookclothing|, \saminline|\duckhookhair|, \saminline|\duckhookhat| and \saminline|\duckhookforeground|. 
 
 \begin{center}
 \footnotesize\ttfamily \textbackslash duckhook\dots
@@ -1060,7 +1020,7 @@
 
   \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);}
+    \newcommand{\hooks}{\draw[themecolor, 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
@@ -1113,7 +1073,11 @@
 \begin{tcblisting}{title={Hooks}}
 \begin{tikzpicture}
   \begingroup
-    \newcommand{\duckhookclothing}{\path[pattern=fivepointed stars, pattern color=yellow] \duckpathjacket;}
+    \newcommand{\duckhookclothing}{
+      \path[pattern=fivepointed stars, 
+            pattern color=yellow] 
+            \duckpathjacket;
+    }
     \duck[witch=black!50!gray,
           longhair=red!80!black,
           jacket=black!50!gray,
@@ -1129,7 +1093,7 @@
 \tikzducks are huge sports fans! They do a lot of different sports themselves (see all the piece of sports equipment amongst the accessories), but to cheer their favourite teams, they need suitable fan clothing. In \href{https://tex.stackexchange.com/a/387126/36296}{The Duck Pond} Carla Maggi was so kind to contribute the necessary code to dress the ducks in their team's colours.
 
 \addtocounter{footnote}{1}
-A (non-representative) survey$^{\thefootnote}$\footnotetext[\thefootnote]{see the selection of jerseys in \url{https://tex.stackexchange.com/a/387126/36296}} showed that most sports jerseys can be emulated by drawing stripes of various colours, sizes and orientations -- and this is exactly what the \lstinline|stripes| macro does, drawing stripes across the shape of the duck's jacket. In order to preserve the whole flexibility of this powerful macro, it was integrated as an independent command into the \tikzducks package, this means it can simply be used on top of a drawn duck:
+A (non-representative) survey$^{\thefootnote}$\footnotetext[\thefootnote]{see the selection of jerseys in \url{https://tex.stackexchange.com/a/387126/36296}} showed that most sports jerseys can be emulated by drawing stripes of various colours, sizes and orientations -- and this is exactly what the \saminline|stripes| macro does, drawing stripes across the shape of the duck's jacket. In order to preserve the whole flexibility of this powerful macro, it was integrated as an independent command into the \tikzducks package, this means it can simply be used on top of a drawn duck:
 
 \begin{tcblisting}{title={\texttt{stripes} macro}}
 \begin{tikzpicture}
@@ -1138,11 +1102,11 @@
 \end{tikzpicture}
 \end{tcblisting}
 
-This may be impractical as the stripes are drawn on top of any accessories or hair the duck may have. Therefore the option \lstinline|stripes| let's you inject any code you would normally use to draw the stripes at the correct layer above the duck's clothing but beneath the hair and accessories:
+This may be impractical as the stripes are drawn on top of any accessories or hair the duck may have. Therefore the option \saminline|stripes| let's you inject any code you would normally use to draw the stripes at the correct layer above the duck's clothing but beneath the hair and accessories:
 
 \begin{tcblisting}{title={Using \texttt{stripes} for \texttt{tikzducks}}}
 \begin{tikzpicture}
-  \duck[longhair,|stripes|={\stripes}]
+  \duck[longhair,stripes={\stripes}]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1149,23 +1113,23 @@
 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\\
+  \saminline|color|      & colour of the stripes, default:     
+                          \saminline|black| \\
+  \saminline|distance|  &  periodicity length of the stripes, default: 
+                           \saminline|0.3| \\
+  \saminline|width|      &  stripe width, default: \saminline|0.15| \\ 
+  \saminline|height|    &  length of the stripes, default: 
+                          \saminline|2.7| \\
+  \saminline|initialx|  &  x coordinate of staring point, default: 
+                          \saminline|0.1| \\
+  \saminline|initialy|  &  y coordinate of staring point, default: 
+                          \saminline|-0.3| \\
+  \saminline|rotate|    &  rotation angle in degree, default:
+                          \saminline|-10|\\
+  \saminline|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.
+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 \saminline|tshirt| or \saminline|jacket| of the desired colour underneath the stripes.
 
 \begin{tcblisting}{title={\texttt{stripes} options}}
 \begin{tikzpicture}
@@ -1172,43 +1136,37 @@
   \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]}]
+  \duck[stripes={\stripes[distance=0.6]}]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[width=0.03]}]
+  \duck[stripes={\stripes[width=0.03]}]
 \end{tikzpicture}
 
 \begin{tikzpicture} 
-\duck[|stripes|={\stripes[emblem={\includegraphics[width=0.3cm]{example-image-a}}]}]
+\duck[stripes={\stripes[emblem={
+\includegraphics[width=.3cm]{example-image-a}
+}]}]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[height=1.0]}]
+  \duck[stripes={\stripes[height=1.0]}]
 \end{tikzpicture}
 
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[initialx=1]}]
+  \duck[stripes={\stripes[initialx=1]}]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[initialy=0.8]}]
+  \duck[stripes={\stripes[initialy=0.8]}]
 \end{tikzpicture}
 
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[rotate=45]}]
+  \duck[stripes={\stripes[rotate=45]}]
 \end{tikzpicture}
 \begin{tikzpicture}
-\duck[|stripes|={
-      \stripes[rotate=-45]}]
+  \duck[stripes={\stripes[rotate=-45]}]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1215,30 +1173,36 @@
 For more complex or multicoloured designs the stripes can easily be stacked on top of each other:
 \begin{tcblisting}{title={multicoloured \texttt{stripes}}}
 \begin{tikzpicture} 
-\duck[tshirt=red, |stripes|={
-\stripes[color=yellow, width=0.1]
-\stripes[color=orange, width=0.1, initialx=0.0]}]
+  \duck[tshirt=red, stripes={
+    \stripes[color=yellow, width=0.1]
+    \stripes[color=orange, width=0.1, 
+             initialx=0.0]}]
 \end{tikzpicture}
 \end{tcblisting}
 
-\tcbset{righthand width=3cm}
-A few examples to see \lstinline|stripes| in action:
+A few examples to see \saminline|stripes| in action:
 \begin{tcblisting}{title={Inter duck}}
 \definecolor{blueinter}{RGB}{0,102,170}%
 \begin{tikzpicture}
-\duck[tshirt=black,|stripes|={\stripes[color=blueinter]},football]
+  \duck[tshirt=black,
+        stripes={\stripes[color=blueinter]},
+        football]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Juve duck}}
 \begin{tikzpicture} 
-\duck[tshirt=black,|stripes|={\stripes[color=white]},football]
+  \duck[tshirt=black,
+        stripes={\stripes[color=white]},
+        football]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Milan duck}}
 \begin{tikzpicture}
-\duck[tshirt=black,|stripes|={\stripes[color=red]},football]
+  \duck[tshirt=black,
+        stripes={\stripes[color=red]},
+        football]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1245,7 +1209,8 @@
 \begin{tcblisting}{title={M\"{o}nchengladbach duck}}
 \definecolor{mggreen}{RGB}{37,166,89}%
 \begin{tikzpicture} 
-\duck[tshirt=mggreen,|stripes|={\stripes},football]
+  \duck[tshirt=mggreen,
+        stripes={\stripes},football]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1252,7 +1217,7 @@
 \begin{tcblisting}{title={Palmeiras duck}}
 \definecolor{verdep}{RGB}{0,100,55}%
 \begin{tikzpicture} 
-\duck[tshirt=green,jacket=verdep,football] 
+  \duck[tshirt=green,jacket=verdep,football] 
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1260,27 +1225,38 @@
 \definecolor{rossocagliari}{RGB}{149,20,38}%
 \definecolor{blucagliari}{RGB}{23,52,84}%
 \begin{tikzpicture} 
-\duck[tshirt=white, jacket=blucagliari,|stripes|={
-\stripes[color=rossocagliari, width=0.46, distance=3]},football]
+  \duck[tshirt=white, 
+        jacket=blucagliari,
+        stripes={
+          \stripes[color=rossocagliari, 
+                   width=0.46, distance=3]},
+        football]
 \end{tikzpicture}
 \end{tcblisting}
 
 \begin{tcblisting}{title={Sampdoria duck}}
 \begin{tikzpicture} 
-\duck[tshirt=blue, jacket=blue,|stripes|={
-\stripes[color=white,rotate=-90,width=0.6,distance=1] 
-\stripes[color=red,rotate=-90,width=0.2,distance=1.2] 
-\stripes[color=black,rotate=-90,width=0.1,distance=1.3]
-},football]
+  \duck[tshirt=blue, jacket=blue,stripes={
+    \stripes[color=white,rotate=-90,
+             width=0.6,distance=1] 
+    \stripes[color=red,rotate=-90,
+             width=0.2,distance=1.2] 
+    \stripes[color=black,rotate=-90,
+             width=0.1,distance=1.3]
+  },football]
 \end{tikzpicture}
 \end{tcblisting}
 
 \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]
-},football]
+  \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]
+  },football]
 \end{tikzpicture}
 \end{tcblisting}
 
@@ -1290,7 +1266,4 @@
 
 If you have created a duck you would like to share with the community, I would be happy to add it to this collection, just make a pull request or open an issue in the bug tracking system.
 
-\clearpage
-\printindex
-
 \end{document}

Modified: trunk/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv	2024-04-20 19:24:35 UTC (rev 71014)
+++ trunk/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv	2024-04-20 19:26:11 UTC (rev 71015)
@@ -14,7 +14,7 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 % Code for this ConTeXt User Module kindly provided by @JairoAdelRio https://github.com/samcarter/tikzducks/pull/25
-\writestatus{loading}{ConTeXt User Module / TikZDucks 2023/04/05 version v1.6 Draw rubber ducks in TikZ}
+\writestatus{loading}{ConTeXt User Module / TikZDucks 2024/04/19 version v1.7 Draw rubber ducks in TikZ}
 
 \setupcolors[state=start]
 \usemodule[tikz]

Modified: trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex	2024-04-20 19:24:35 UTC (rev 71014)
+++ trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex	2024-04-20 19:26:11 UTC (rev 71015)
@@ -115,6 +115,8 @@
 \newif\ifduck at handbag
 \newif\ifduck at cocktail
 \newif\ifduck at overleaf
+\newif\ifduck at banana
+\newif\ifduck at stick
 
 \tikzset{
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -519,13 +521,21 @@
   handbag/.code             = \duck at handbagtrue
                               \def\duck at handbag{#1},
   handbag/.default          = red!70!black,  
-  cocktail/.code             = \duck at cocktailtrue,
+  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},
+  banana/.code              = \duck at bananatrue
+                              \def\duck at banana{#1},
+  banana/.default           = yellow!80!orange,
+  stick/.code               = \duck at sticktrue
+                              \def\duck at stick{#1},
+  stick/.default            = red!60!green,
+  leaf/.code                = \def\duck at leaf{#1},
+  leaf                      = green!70!red
 }
 
 \def\duck at draw{
@@ -1381,6 +1391,37 @@
   \fill[red!80!black] (0.94,0.72) circle[radius=0.01];
 \fi
 %
+% banana %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at banana
+  \begin{scope}[yshift=10,xshift=19,rotate=-25,scale=1.3]
+    \fill[\duck at banana!30!] (0.02,0) .. controls (0.21,0.20) and (0.21,0.40) .. (0.02,0.6) arc [start angle=60,end angle=120, radius =0.04] .. controls (0.07,0.40) and (0.07,0.20) .. (-0.02,0) --cycle ;
+    %peel
+    \begin{scope}
+      \clip (-0.04,-0.01) rectangle (0.20,0.3);
+      \fill[\duck at banana] (0.03,0) .. controls (0.22,0.20) and (0.22,0.40) .. (0.03,0.6) arc [start angle=60,end angle=120, radius =0.06] .. controls (0.06,0.40) and (0.06,0.20) .. (-0.03,0);
+    \end{scope}
+    \fill[\duck at banana!60!] (0.12,0.3) arc [start angle=140, end angle=-100, y radius=0.20, x radius=0.06]  arc [start angle=-90, end angle=90, y radius=0.15, x radius=0.02] (0.12,0.3) arc [start angle=60, end angle=270, y radius=0.15, x radius=0.1] arc [start angle=270, end angle=90, y radius=0.13, x radius=0.04];
+  \end{scope}
+\fi
+%
+% stick %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck at stick
+  \begin{scope}[rotate=-30,yshift=16,xshift=12]
+    %leaf
+    \begin{scope}[rotate=60, xshift=8.2,yshift=8.1]
+    \fill[\duck at leaf] (-0.01,0) .. controls (-0.1,0) and (-0.02, 0.2) .. (0,0.2) .. controls (0.02, 0.2) and (0.1,0) .. (0.01,0.0);
+    \path[clip] (-0.04,-0.04)-- (-0.01,0) .. controls (-0.1,0) and (-0.02, 0.2) .. (0,0.2) .. controls (0.02, 0.2) and (0.1,0) .. (0.01,0)-- (0.04,-0.04) --cycle;
+    \draw[\duck at leaf!80!, line width=0.1] (0,-0.04) --  (0,0.2) \foreach \i in {0.02,0.04,...,0.2} {(0,\i) -- ++(0.1,\i) (0,\i) -- ++(-0.1,\i)} ;
+    \end{scope} 
+    %stick itself
+    \fill[\duck at stick!90!red] (-0.04,0.8) -- (-0.04,0.4) arc[start angle=345,end angle=270,radius=0.03] -- ++(0,-0.01) arc[start angle=90,end angle=15,radius=0.03] -- (-0.04,0) arc [start angle=180, end angle=360 ,x radius=0.04, y radius=0.02] -- (0.04, 0.4) arc [start angle=180, end angle=120, radius=0.08] arc [start angle=-90, end angle=90, x radius=0.02, y radius=0.04] arc [start angle=240, end angle=180, radius=0.08] -- (0.04,0.75) arc [start angle=0, end angle=120 ,x radius=0.04, y radius=0.02] --cycle; 
+    \fill[\duck at stick!90!] (0.08, 0.51) ellipse [x radius=0.02, y radius=0.04] (0,0.75) ellipse [x radius=0.04, y radius=0.02] ;
+    \draw[\duck at stick!90!red, line width=0.06] (0.08, 0.51) ellipse [x radius=0.016, y radius=0.032]
+    ellipse [x radius=0.012, y radius=0.024] ellipse [x radius=0.008, y radius=0.016] (0,0.75) ellipse [y radius=0.016, x radius=0.032] ellipse [y radius=0.012, x radius=0.024]  ellipse [y radius=0.008, x radius=0.016] ;
+    \fill[\duck at stick!90!red] (0.08, 0.51) ellipse [x radius=0.004, y radius=0.008] (0,0.75) ellipse [x radius=0.008, y radius=0.004];
+  \end{scope}
+\fi
+%
 % overleaf duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifduck at overleaf
   \fill[white] \duckpathoverleaf;

Modified: trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty	2024-04-20 19:24:35 UTC (rev 71014)
+++ trunk/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty	2024-04-20 19:26:11 UTC (rev 71015)
@@ -12,7 +12,7 @@
 % See http://www.latex-project.org/lppl.txt
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzducks}[2023/04/05 version v1.6 Draw rubber ducks in TikZ]
+\ProvidesPackage{tikzducks}[2024/04/19 version v1.7 Draw rubber ducks in TikZ]
 
 \RequirePackage{expl3}
 \RequirePackage{tikz}

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2024-04-20 19:24:35 UTC (rev 71014)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2024-04-20 19:26:11 UTC (rev 71015)
@@ -2540,7 +2540,7 @@
  'tikz-qtree',  '(pgf|tikz-)(subpic|q?tree(-compat)?)\.(tex|sty)',
  'tikz-sfc',		'\.code\.tex$',
  'tikz-trackschematic',	'\.code\.tex$|tic\.sty$', # not *documentation.sty
- 'tikzducks',	'-(generic|plain).tex$|\.mkiv$|' . $standardtex,
+ 'tikzducks',	'(code|-(generic|plain)).tex$|ducks\.sty|\.mkiv$', # not *doc-settings.sty
  'tikzmarmots',	'\.code\.tex$|tikzmarmots(|-v1)\.sty$', # not *doc-settings.sty
  'tikzposter',  'tikzposter[^-].*\.tex|' . $standardtex,
  # tipa: we want to install all .sty except tipaman|boxchar|codelist.



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