summaryrefslogtreecommitdiff
path: root/graphics/pgf/contrib/tikzducks
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-04-06 03:04:06 +0000
committerNorbert Preining <norbert@preining.info>2023-04-06 03:04:06 +0000
commitecbacf9e5b13d0940f27ca7c07d3f728256dc5dc (patch)
tree37cba6b437931801da61ce98dfe781ba978da91d /graphics/pgf/contrib/tikzducks
parent085271aaf9917d7116be9774c6cd0a117aa4111e (diff)
CTAN sync 202304060304
Diffstat (limited to 'graphics/pgf/contrib/tikzducks')
-rw-r--r--graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv50
-rw-r--r--graphics/pgf/contrib/tikzducks/tikzducks-doc.pdfbin442576 -> 471679 bytes
-rw-r--r--graphics/pgf/contrib/tikzducks/tikzducks-doc.tex63
-rw-r--r--graphics/pgf/contrib/tikzducks/tikzducks-generic.tex62
-rw-r--r--graphics/pgf/contrib/tikzducks/tikzducks-plain.tex61
-rw-r--r--graphics/pgf/contrib/tikzducks/tikzducks.sty28
6 files changed, 218 insertions, 46 deletions
diff --git a/graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv b/graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv
index d9b24b5b05..93b587b169 100644
--- a/graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv
+++ b/graphics/pgf/contrib/tikzducks/t-tikzducks.mkiv
@@ -14,43 +14,49 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Code for this ConTeXt User Module kindly provided by @JairoAdelRio https://github.com/samcarter/tikzducks/pull/25
-\writestatus{loading}{ConTeXt User Module / TikZDucks 2020/06/30 version v1.5 Draw rubber ducks in TikZ}
+\writestatus{loading}{ConTeXt User Module / TikZDucks 2023/04/05 version v1.6 Draw rubber ducks in TikZ}
+
\setupcolors[state=start]
\usemodule[tikz]
\enabledirectives[colors.pgf]
\usetikzlibrary[patterns] % for the wizard hat
\usetikzlibrary[calc]
\definecolor[duck@overleafcol][x=48AC3C]
-%\unprotect does not work here
+
\catcode`\@=11
-%So \scalebox and co. works in MkIV too
+
+% Defining commands not available in context %%%%%%%%%%%%%%%%%%%%%%%%%
\define[2]\scalebox{\scale[factor={\ctxlua{context(3*#1)}}]{#2}}
\let\tiny\tfxx
\let\pdfrandomseed\randomseed
-%Duck
+
+% Duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\duck{\dosingleempty\doduck}
\def\doduck[#1]{%
- \iffirstargument
- \startscope%
- \tikzset{/duck/.cd,#1}%
- \duck@draw%
- \stopscope%
- \else
- \startscope%
- \tikzset{/duck/.cd}%
- \duck@draw%
- \stopscope%
- \fi%
+ \iffirstargument
+ \startscope%
+ \tikzset{/duck/.cd,#1}%
+ \duck@draw%
+ \stopscope%
+ \else
+ \startscope%
+ \tikzset{/duck/.cd}%
+ \duck@draw%
+ \stopscope%
+ \fi%
}
-%Stripes
+
+% Stripes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\stripes{\dosingleempty\dostripes}
-\def\dostripes[#1]{
- \iffirstargument
- \tikzset{/stripes/.cd,#1}\stripes@draw
- \else
- \tikzset{/stripes/.cd}\stripes@draw
- \fi
+\def\dostripes[#1]{%
+ \iffirstargument
+ \tikzset{/stripes/.cd,#1}\stripes@draw
+ \else
+ \tikzset{/stripes/.cd}\stripes@draw
+ \fi
}
+
\input tikzducks-generic.tex
+
\catcode`\@=12
\endinput
diff --git a/graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf b/graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf
index b0c3b26712..c294bfd56f 100644
--- a/graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf
+++ b/graphics/pgf/contrib/tikzducks/tikzducks-doc.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikzducks/tikzducks-doc.tex b/graphics/pgf/contrib/tikzducks/tikzducks-doc.tex
index 283e60e7ab..0caac48b15 100644
--- a/graphics/pgf/contrib/tikzducks/tikzducks-doc.tex
+++ b/graphics/pgf/contrib/tikzducks/tikzducks-doc.tex
@@ -54,7 +54,7 @@
commentstyle={\color{green!50!black}\slshape},
columns=fullflexible,
emphstyle=\color{orange!70!black},
- emph=[1]{water,body,head,eye,pupil,bill,grumpy,tshirt,jacket,tie,cape,shorthair,longhair,crazyhair,recedinghair,eyebrow,beard,glasses,sunglasses,alien,hat,cap,santa,chef,cheese,graduate,tassel,beret,crown,unicorn,icecream,flavoura,flavourb,flavourc,book,bookcolour,signpost,signcolour,signback,magichat,magicstars,magicwand,witch,cricket,rollingpin,lightsaber,torch,cake,pizza,hockey,baguette,wing,football,mask,bunny,inear,necklace,milkshake,wine,peakedcap,prison,tophat,speech,bubblecolour,think,buttons,sheep,squareglasses,tail,basket,easter,egga,eggb,eggc,mohican,mullet,horsetail,darthvader,crozier,queencrown,kingcrown,wing,laughing,parrot,stethoscope,niuqelrah,harlequin,neckerchief,woggle,snowduck,invisible,strawhat,ribbon,vampire,parting,crystalball,helmet,shovel,pickaxe,bowtie,lapel,umbrella,umbrellaclosed,handbag,cocktail,viking,devil,aodai,conicalhat,overleaf,sailor},
+ 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},
@@ -117,7 +117,7 @@
\url{https://github.com/samcarter/tikzducks}\\
\url{https://www.ctan.org/pkg/tikzducks}
}{samcarter}}
-\date{Version v1.5 \textendash{} 2020/06/30}
+\date{Version v1.6 \textendash{} 2023/04/05}
\begin{document}
\maketitle
@@ -127,10 +127,10 @@
\label{intro}
Rubber ducks can be made of latex, but can they also be made with \LaTeX? Yes! The \tikzducks package is a \LaTeX{} package for rubber ducks to be used in \TikZ pictures.
-This project is a continuation of \href{tex.stackexchange.com/a/347458/36296}{How can we draw a duck?}.
+This project is a continuation of \href{https://tex.stackexchange.com/a/347458/36296}{How can we draw a duck?}.
This package is work in progress (and will probably never be really finished as there is an infinite amount of things which could be added), therefore I would be happy to hear your feedback and ideas how to improve the package.
-The head version of the source code can be found on \url{github.com/samcarter/tikzducks}, including a bug tracker -- please make constructive use of it! A more stable package version can be found on \CTAN (\url{www.ctan.org/pkg/tikzducks}) and is included in both \miktex and \texlive as \tikzducks. If you seek any other assistance (not bug reports/feature requests), I suggest asking a question at \url{topanswers.xyz/tex}.
+The head version of the source code can be found on \url{https://github.com/samcarter/tikzducks}, including a bug tracker -- please make constructive use of it! A more stable package version can be found on \CTAN (\url{https://www.ctan.org/pkg/tikzducks}) and is included in both \miktex and \texlive as \tikzducks. If you seek any other assistance (not bug reports/feature requests), I suggest asking a question at \url{https://topanswers.xyz/tex}.
\subsection{Acknowledgements}
@@ -163,7 +163,7 @@ Yudai Nakata helped with problems of \lstinline|\pdfrandomseed|,
and last but not least my thanks go to Martin Schr\"oder for his feedback to the code review.
\pagebreak
-The ducks mostly consist of basic geometric shapes drawn in \TikZ. Some of the more complex shapes (e.g.\ the different hair styles) are first drawn in \texttt{inkscape} (\url{https://inkscape.org}) and then exported to \TikZ paths using the \texttt{SVG to TikZ/PGF} extension (\url{https://github.com/kjellmf/svg2tikz}).
+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}
@@ -269,7 +269,7 @@ For the \TeX{} purists, there is also a picture mode variant:
\end{tcblisting}
}
-And thanks to @JairoAdelRio there is even a \ConTeXt{} User Module available (caveat: some colours might look different):
+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}]
@@ -278,7 +278,7 @@ And thanks to @JairoAdelRio there is even a \ConTeXt{} User Module available (ca
\starttext
\starttikzpicture
-\duck[tophat,bowtie]
+ \duck[tophat,bowtie]
\stoptikzpicture
\stoptext
@@ -290,6 +290,25 @@ And thanks to @JairoAdelRio there is even a \ConTeXt{} User Module available (ca
\end{tikzpicture}
\end{tcolorbox}
+For those who prefer to work with pdf\TeX:
+
+\begin{tcolorbox}[title={pdfTeX}]
+\begin{lstlisting}[morekeywords={endtikzpicture,bye,input}]
+\input tikzducks-plain.tex
+
+\tikzpicture
+ \duck[bobblehat,cheese]
+\endtikzpicture
+
+\bye
+\end{lstlisting}
+
+\tcblower
+\begin{tikzpicture}
+\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|:
@@ -547,6 +566,12 @@ There is a multitude of things a duck might need. The following examples all als
\end{tikzpicture}
\end{tcblisting}
+\begin{tcblisting}{title={Bobble hat duck}}
+\begin{tikzpicture}
+ \duck[bobblehat=red!70!red]
+\end{tikzpicture}
+\end{tcblisting}
+
\begin{tcblisting}{title={Crown duck}}
\begin{tikzpicture}
\duck[body=black!75!white,
@@ -862,6 +887,13 @@ There is a multitude of things a duck might need. The following examples all als
\end{tikzpicture}
\end{tcblisting}
+\begin{tcblisting}{title={Winter duck}}
+\begin{tikzpicture}
+ \duck[bobblehat=red!70!black,
+ scarf=red!70!black]
+\end{tikzpicture}
+\end{tcblisting}
+
\addtocounter{footnote}{1}
\begin{tcblisting}{title={Snow Duck$^{\thefootnote}$}}
\begin{tikzpicture}
@@ -896,6 +928,22 @@ There is a multitude of things a duck might need. The following examples all als
\end{tikzpicture}
\end{tcblisting}
+\begin{tcblisting}{title={Sweeping Duck}}
+\begin{tikzpicture}
+ \duck[
+ strawbroom=brown!50!white,
+ strawbroomstick=brown,
+ strawbroomribbon=red!50!black
+ ]
+\end{tikzpicture}
+\begin{tikzpicture}
+ \duck[
+ broom=brown,
+ broomstick=gray!50!black
+ ]
+\end{tikzpicture}
+\end{tcblisting}
+
\begin{tcblisting}{title={Umbrella Duck}}
\begin{tikzpicture}
\duck[umbrella=cyan]
@@ -926,6 +974,7 @@ With all these available accessories it might be hard to decide which one to cho
\begin{tcblisting}{title={Random duck}}
\begin{tikzpicture}
\randuck
+ \randuck[xshift=3cm,scale=0.7]
\end{tikzpicture}
\end{tcblisting}
diff --git a/graphics/pgf/contrib/tikzducks/tikzducks-generic.tex b/graphics/pgf/contrib/tikzducks/tikzducks-generic.tex
index 8c5a996f57..019e65e2b7 100644
--- a/graphics/pgf/contrib/tikzducks/tikzducks-generic.tex
+++ b/graphics/pgf/contrib/tikzducks/tikzducks-generic.tex
@@ -41,6 +41,7 @@
\newif\ifduck@bowtie
\newif\ifduck@lapel
\newif\ifduck@aodai
+\newif\ifduck@scarf
% Headgear %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@alien
\newif\ifduck@hat
@@ -66,6 +67,7 @@
\newif\ifduck@devil
\newif\ifduck@conicalhat
\newif\ifduck@sailor
+\newif\ifduck@bobblehat
% Accessories %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newif\ifduck@glasses
\newif\ifduck@sunglasses
@@ -106,6 +108,8 @@
\newif\ifduck@cheese
\newif\ifduck@shovel
\newif\ifduck@pickaxe
+\newif\ifduck@strawbroom
+\newif\ifduck@broom
\newif\ifduck@umbrella
\newif\ifduck@umbrellaclosed
\newif\ifduck@handbag
@@ -183,6 +187,9 @@
\def\duck@aodai{#1},
ao dai/.forward to = /duck/aodai,
aodai/.default = blue!50!black,
+ scarf/.code = \duck@scarftrue
+ \def\duck@scarf{#1},
+ scarf/.default = red!70!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% hair styles
@@ -318,6 +325,10 @@
sailor/.code = \duck@sailortrue
\def\duck@sailor{#1},
sailor/.default = white!80!gray,
+ bobblehat/.code = \duck@bobblehattrue
+ \def\duck@bobblehat{#1},
+ bobble hat/.forward to = /duck/bobblehat,
+ bobblehat/.default = red!70!black,
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Accessories
@@ -485,7 +496,19 @@
shovel/.default = gray,
pickaxe/.code = \duck@pickaxetrue
\def\duck@pickaxe{#1},
- pickaxe/.default = gray,
+ pickaxe/.default = gray,
+ strawbroom/.code = \duck@strawbroomtrue
+ \def\duck@strawbroom{#1},
+ strawbroom/.default = brown!50!white,
+ strawbroomstick/.code = \def\duck@strawbroomstick{#1},
+ strawbroomstick = brown,
+ strawbroomribbon/.code = \def\duck@strawbroomribbon{#1},
+ strawbroomribbon = red!50!black,
+ broom/.code = \duck@broomtrue
+ \def\duck@broom{#1},
+ broom/.default = brown,
+ broomstick/.code = \def\duck@broomstick{#1},
+ broomstick = gray!50!black,
umbrella/.code = \duck@umbrellatrue
\def\duck@umbrella{#1},
umbrella/.default = cyan,
@@ -704,6 +727,11 @@
\fill[\duck@woggle, rounded corners=\scalingfactor*1, rotate=-10] (0.33,1.05) rectangle (0.55,0.98);
\fi
%
+% Scarf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@scarf
+ \fill[\duck@scarf] (1.3780,1.2876) .. controls (1.1405,1.0484) and (0.7278,0.8710) .. (0.4865,1.1319) .. controls (0.4312,1.1245) and (0.3749,1.1088) .. (0.3443,1.0553) .. controls (0.4097,0.9269) and (0.4360,0.9534) .. (0.5231,0.8623) -- (0.4780,0.5230) -- (0.5666,0.5486) -- (0.6442,0.5011) -- (0.6584,0.6852) -- (0.6881,0.3913) -- (0.7782,0.4358) -- (0.8543,0.4133) -- (0.7988,0.8309) .. controls (1.0539,0.8635) and (1.1298,0.8415) .. (1.4849,1.1302) .. controls (1.4898,1.1985) and (1.4313,1.2543) .. (1.3780,1.2876) -- cycle;
+\fi
+%
% buttons (same argument as for the necklace)
\ifduck@buttons
\ifduck@jacket
@@ -983,6 +1011,15 @@
\fill[\duck@sailor] (1.0390,2.2743) .. controls (0.9475,2.2748) and (0.8569,2.2355) .. (0.7943,2.1690) .. controls (0.7147,2.1872) and (0.6335,2.2098) .. (0.5512,2.2029) .. controls (0.5524,2.1164) and (0.5536,2.0299) .. (0.5547,1.9434) .. controls (0.6637,1.9348) and (0.7679,1.8974) .. (0.8716,1.8653) .. controls (1.0321,1.8101) and (1.1932,1.7522) .. (1.3420,1.6697) .. controls (1.3671,1.6622) and (1.3911,1.6147) .. (1.4083,1.6518) .. controls (1.4623,1.7160) and (1.5163,1.7802) .. (1.5702,1.8444) .. controls (1.5154,1.8979) and (1.4433,1.9287) .. (1.3757,1.9624) .. controls (1.3666,2.1156) and (1.2403,2.2511) .. (1.0881,2.2707) .. controls (1.0718,2.2731) and (1.0554,2.2743) .. (1.0390,2.2743) -- cycle;
\fi
%
+% Bobble hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@bobblehat
+ \pgfinterruptboundingbox
+ \fill[\duck@bobblehat] (0.4639,1.7996) .. controls (0.5789,1.8438) and (1.3853,1.6023) .. (1.4046,1.4672) .. controls (1.4581,1.5025) and (1.5242,1.5917) .. (1.4544,1.6879) .. controls (1.5205,2.1879) and (0.7711,2.3780) .. (0.5562,1.9848) .. controls (0.4314,1.9650) and (0.4277,1.8625) .. (0.4639,1.7996) -- cycle;
+ \fill[\duck@bobblehat] (1.1,2.2) circle [radius=0.1];
+ \endpgfinterruptboundingbox
+ \path (0.43,1.3) rectangle (1.5,2.3);
+\fi
+%
% adding hook for users to customise %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\csname duckhookhat\endcsname
%
@@ -1297,6 +1334,23 @@
\fill[\duck@pickaxe] (-0.0085, 0.6858) .. controls (0.6422, 0.3523) and (0.7609, 0.3068) .. (1.4114, 0.1108) .. controls (0.6589, 0.1246) and (0.5556, 0.1887) .. (-0.0085, 0.6858) -- cycle;
\fi
%
+% strawbroom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@strawbroom
+ \fill[\duck@strawbroomstick] (0.9160,0.5478) -- (1.2792,1.6574) .. controls (1.3063,1.6961) and (1.3956,1.6649) .. (1.3688,1.6176) -- (0.9508,0.5179) .. controls (0.9360,0.5142) and (0.9202,0.5331) .. (0.9160,0.5478) -- cycle;
+ \fill[\duck@strawbroom] (0.5528,0.2890) .. controls (0.6449,0.3598) and (0.7460,0.5693) .. (0.8911,0.6871) .. controls (0.9481,0.7215) and (1.0395,0.6925) .. (1.0553,0.6224) .. controls (1.1219,0.4385) and (0.9965,0.2147) .. (1.0056,0.1000) .. controls (0.8926,0.0241) and (0.5950,0.2078) .. (0.5528,0.2890) -- cycle;
+ \draw[\duck@strawbroomribbon,line width=\scalingfactor*0.4pt] (0.7916,0.5876) .. controls (0.7916,0.5876) and (0.8210,0.5404) .. (0.8451,0.5304) .. controls (0.8708,0.5197) and (0.9021,0.5419) .. (0.9284,0.5329) .. controls (0.9544,0.5240) and (0.9663,0.4903) .. (0.9919,0.4806) .. controls (1.0148,0.4720) and (1.0653,0.4781) .. (1.0653,0.4781);
+ \draw[\duck@strawbroomribbon,line width=\scalingfactor*0.4pt] (0.7565,0.5493) .. controls (0.7565,0.5493) and (0.7897,0.4961) .. (0.8169,0.4848) .. controls (0.8458,0.4727) and (0.8812,0.4978) .. (0.9109,0.4876) .. controls (0.9401,0.4776) and (0.9535,0.4396) .. (0.9824,0.4287) .. controls (1.0083,0.4189) and (1.0652,0.4259) .. (1.0652,0.4259);
+\fi
+%
+% broom %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifduck@broom
+ \scope[rotate=-10]
+ \draw[\duck@broomstick,line width=\scalingfactor*1.8pt] (0.9, 1.8) -- ++(0,-1.4);
+ \draw[\duck@broomstick,line width=\scalingfactor*1.8pt] (0.6, 0.42) -- ++(0.6,0);
+ \fill[\duck@broom] (0.6, 0.40) -- ++(-0.05,-0.1) -- ++(0.7,0) -- ++(-0.05, 0.1) -- cycle;
+ \endscope
+\fi
+%
% umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@umbrella
\path (0.2,0.4) rectangle (2.22,2.7);
@@ -1361,10 +1415,10 @@
\edef\randomaccessories{\accessories}%
}
-\def\randuck{%
+\newcommand*{\randuck}[1][]{%
\shuffleducks%
- \duck[\randomhead, \randomaccessories]%
-}
+ \duck[\randomhead, \randomaccessories, #1]%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
diff --git a/graphics/pgf/contrib/tikzducks/tikzducks-plain.tex b/graphics/pgf/contrib/tikzducks/tikzducks-plain.tex
new file mode 100644
index 0000000000..9b01fb4d62
--- /dev/null
+++ b/graphics/pgf/contrib/tikzducks/tikzducks-plain.tex
@@ -0,0 +1,61 @@
+% !TeX root = ./testing/plain_duck.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The tikzducks package
+% A package to bring rubber ducks into tikz
+% Maintained by samcarter
+%
+% Project repository and bug tracker:
+% https://github.com/samcarter/tikzducks
+%
+% Released under the LaTeX Project Public License v1.3c or later
+% See http://www.latex-project.org/lppl.txt
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\input miniltx
+\input graphicx.sty
+\input tikz.tex
+\usetikzlibrary{calc}%
+\usetikzlibrary{patterns}%
+
+\catcode`\@=11
+
+\let\pdfrandomseed\randomseed
+\font\tiny=cmr5
+
+% Duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\duck{\futurelet\next\doduck}
+\def\doduck{%
+ \ifx[\next %]
+ \expandafter\doduckopt
+ \else
+ \scope%%
+ \tikzset{/duck/.cd}%
+ \duck@draw%
+ \endscope%%
+ \fi
+}
+\def\doduckopt[#1]{%
+ \scope%%
+ \tikzset{/duck/.cd,#1}%
+ \duck@draw%
+ \endscope%%
+}
+
+% Stripes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\stripes{\futurelet\next\dostripes}
+\def\dostripes{
+ \ifx[\next %]
+ \expandafter\dostripesopt
+ \else
+ \tikzset{/stripes/.cd}\stripes@draw
+ \fi
+}
+\def\dostripesopt[#1]{%
+ \tikzset{/stripes/.cd,#1}\stripes@draw
+}
+
+\input tikzducks-generic.tex
+
+\catcode`\@=12 \ No newline at end of file
diff --git a/graphics/pgf/contrib/tikzducks/tikzducks.sty b/graphics/pgf/contrib/tikzducks/tikzducks.sty
index b377387c2d..843658c93a 100644
--- a/graphics/pgf/contrib/tikzducks/tikzducks.sty
+++ b/graphics/pgf/contrib/tikzducks/tikzducks.sty
@@ -12,7 +12,7 @@
% See http://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzducks}[2020/06/30 version v1.5 Draw rubber ducks in TikZ]
+\ProvidesPackage{tikzducks}[2023/04/05 version v1.6 Draw rubber ducks in TikZ]
\RequirePackage{expl3}
\RequirePackage{tikz}
@@ -30,21 +30,23 @@
\ExplSyntaxOn
\ifdefined\sys_rand_seed:
-\pgfmathsetseed {\sys_rand_seed:}
+ \pgfmathsetseed {\sys_rand_seed:}
\else
-\ifdefined\pdfrandomseed % pdflatex
-\else
-\ifdefined\randomseed
-\let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
-\else
-\let\pdfrandomseed\time % pre TL19 xelatex
-\fi
-\fi
-\pgfmathsetseed{\number\pdfrandomseed}
+ \ifdefined\pdfrandomseed % pdflatex
+ \else
+ \ifdefined\randomseed
+ \let\pdfrandomseed\randomseed % post TL19 xelatex and lualatex
+ \else
+ \let\pdfrandomseed\time % pre TL19 xelatex
+ \fi
+ \fi
+ \pgfmathsetseed{\number\pdfrandomseed}
\fi
\ExplSyntaxOff
-\newcommand*{\stripes}[1][]{\tikzset{%
- /stripes/.cd,#1}\stripes@draw%
+
+\newcommand*{\stripes}[1][]{%
+ \tikzset{/stripes/.cd,#1}%
+ \stripes@draw%
}
\input tikzducks-generic