summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-06-30 21:36:12 +0000
committerKarl Berry <karl@freefriends.org>2020-06-30 21:36:12 +0000
commit19231c941e84eab338d693c69091cd0a16d45344 (patch)
tree48834c35b0a8fdf3182556ddf23507a4b4e3c6fe
parent5dc98f26301535cf34bb616e5e29c973c6afe3ea (diff)
tikzducks [now generic] (30jun20)
git-svn-id: svn://tug.org/texlive/trunk@55713 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/tikzducks/README.md (renamed from Master/texmf-dist/doc/latex/tikzducks/README.md)0
-rw-r--r--Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.pdf (renamed from Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf)bin440630 -> 442576 bytes
-rw-r--r--Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex (renamed from Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex)30
-rw-r--r--Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv56
-rw-r--r--Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex (renamed from Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty)226
-rw-r--r--Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty50
-rw-r--r--Master/texmf-dist/tex/generic/tikzducks/tikzlibraryducks.code.tex (renamed from Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex)0
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds4
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/collection-luatex.tlpsrc1
10 files changed, 217 insertions, 151 deletions
diff --git a/Master/texmf-dist/doc/latex/tikzducks/README.md b/Master/texmf-dist/doc/generic/tikzducks/README.md
index 248ed49d42f..248ed49d42f 100644
--- a/Master/texmf-dist/doc/latex/tikzducks/README.md
+++ b/Master/texmf-dist/doc/generic/tikzducks/README.md
diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf b/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.pdf
index 296ff06bb1d..b0c3b26712b 100644
--- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.pdf
+++ b/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex b/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex
index fbe6f48faef..283e60e7ab6 100644
--- a/Master/texmf-dist/doc/latex/tikzducks/tikzducks-doc.tex
+++ b/Master/texmf-dist/doc/generic/tikzducks/tikzducks-doc.tex
@@ -37,6 +37,7 @@
\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}
@@ -116,7 +117,7 @@
\url{https://github.com/samcarter/tikzducks}\\
\url{https://www.ctan.org/pkg/tikzducks}
}{samcarter}}
-\date{Version v1.4 \textendash{} 2020/04/22}
+\date{Version v1.5 \textendash{} 2020/06/30}
\begin{document}
\maketitle
@@ -155,7 +156,9 @@ Mihikma created the duck's beard,
%
Yudai Nakata helped with problems of \lstinline|\pdfrandomseed|,
%
-@marmot for his seemingly infinite knowledge of \TikZ which he shared with the world
+@marmot for his seemingly infinite knowledge of \TikZ which he shared with the world,
+%
+@JairoAdelRio for contributing the \ConTeXt{} User Module
%
and last but not least my thanks go to Martin Schr\"oder for his feedback to the code review.
@@ -164,7 +167,7 @@ The ducks mostly consist of basic geometric shapes drawn in \TikZ. Some of the m
\subsection{Dependencies}
-The \tikzducks package loads \TikZ, which in turn loads the \lstinline|xcolor| package (amongst others). If you require one of these packages to be loaded with some option, please consider loading it yourself before the \tikzducks package or use, e.g.
+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}
@@ -266,6 +269,27 @@ 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):
+
+\begin{tcolorbox}[title={\ConTeXt{} User Module}]
+\begin{lstlisting}[morekeywords={usemodule,usecolors,starttext,stoptext,starttikzpicture,stoptikzpicture}]
+\usemodule[tikzducks]
+\usecolors[xwi]
+\starttext
+
+\starttikzpicture
+\duck[tophat,bowtie]
+\stoptikzpicture
+
+\stoptext
+\end{lstlisting}
+
+\tcblower
+\begin{tikzpicture}
+\duck[tophat,bowtie]
+\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|:
diff --git a/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv b/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv
new file mode 100644
index 00000000000..d9b24b5b057
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/tikzducks/t-tikzducks.mkiv
@@ -0,0 +1,56 @@
+% !TeX root = ./testing/context_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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% 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}
+\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
+\define[2]\scalebox{\scale[factor={\ctxlua{context(3*#1)}}]{#2}}
+\let\tiny\tfxx
+\let\pdfrandomseed\randomseed
+%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%
+}
+%Stripes
+\def\stripes{\dosingleempty\dostripes}
+\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/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex
index aa15e471faf..8c5a996f57e 100644
--- a/Master/texmf-dist/tex/latex/tikzducks/tikzducks.sty
+++ b/Master/texmf-dist/tex/generic/tikzducks/tikzducks-generic.tex
@@ -12,20 +12,6 @@
% See http://www.latex-project.org/lppl.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\ProvidesPackage{tikzducks}[2020/04/22 version v1.4 Draw rubber ducks in TikZ]
-
-\RequirePackage{tikz}
-\usetikzlibrary{patterns} % for the wizard hat
-\usetikzlibrary{calc} % for the sports jerseys
-
-\definecolor{duck@overleafcol}{RGB}{72,172,60}
-
-\newcommand*{\duck}[1][]{%
- \begin{scope}%
- \tikzset{/duck/.cd,#1}%
- \duck@draw%
- \end{scope}%
-}
\newif\ifduck@name
\newif\ifduck@invisible
@@ -520,7 +506,7 @@
}
\def\duck@draw{
-%\begin{scope}
+%\scope
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% minimal bounding box size
@@ -599,9 +585,7 @@
\else
%
% body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\begin{pgfinterruptboundingbox}
- \fill[\duck@body] \duckpathbody;
-\end{pgfinterruptboundingbox}
+\fill[\duck@body,overlay] \duckpathbody;
%
% head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifdefined\duck@head\else\let\duck@head=\duck@body\fi
@@ -613,13 +597,8 @@
\fill[\duck@bill] \duckpathgrumpybill;
\else
\ifduck@laughing
- \begin{pgfinterruptboundingbox}
- \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;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@bill!80!black,overlay] (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,overlay] (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]
@@ -635,10 +614,10 @@
% Superhero mask %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% has to be behind the eyes
\ifduck@mask
- \begin{scope}
+ \scope
\clip (0.90,1.50) ellipse[x radius=0.50, y radius=0.625];
\fill[\duck@mask,rotate=-15] (-0.1,1.59) rectangle (1.3,1.88);
- \end{scope}
+ \endscope
\fi%
%
% right eye %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -675,9 +654,7 @@
%
% tshirt %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@tshirt
- \begin{pgfinterruptboundingbox}
- \fill[\duck@tshirt] \duckpathtshirt;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@tshirt,overlay] \duckpathtshirt;
\fi
%
% tie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -687,16 +664,12 @@
%
% jacket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@jacket
- \begin{pgfinterruptboundingbox}
- \fill[\duck@jacket] \duckpathjacket;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@jacket,overlay] \duckpathjacket;
\fi
%
% Áo dài %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@aodai
- \begin{pgfinterruptboundingbox}
- \fill[\duck@aodai] (1.819,1.419) .. controls (2.871,0.120) and (0.711,-0.145) .. (0.296,0.251) .. controls (-0.118,0.647) and (0.232,1.073) .. (0.440,1.128) -- (0.567,0.927) .. controls (0.567,0.927) and (0.543,0.906) .. (0.509,0.882) -- (0.481,0.929) -- (0.458,0.915) -- (0.487,0.868) .. controls (0.473,0.859) and (0.457,0.850) .. (0.441,0.842) -- (0.422,0.894) -- (0.397,0.885) -- (0.417,0.831) .. controls (0.404,0.826) and (0.391,0.821) .. (0.378,0.818) -- (0.364,0.869) -- (0.338,0.862) -- (0.351,0.815) .. controls (0.334,0.814) and (0.318,0.817) .. (0.304,0.825) .. controls (0.303,0.774) and (0.329,0.759) .. (0.365,0.763) -- (0.376,0.722) -- (0.402,0.729) -- (0.391,0.768) .. controls (0.405,0.772) and (0.420,0.778) .. (0.435,0.784) -- (0.447,0.750) -- (0.472,0.759) -- (0.459,0.796) .. controls (0.477,0.805) and (0.496,0.815) .. (0.512,0.825) -- (0.533,0.791) -- (0.556,0.805) -- (0.535,0.840) .. controls (0.567,0.860) and (0.590,0.877) .. (0.590,0.877) .. controls (1.011,1.168) and (0.887,0.936) .. (1.819,1.419) -- cycle;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@aodai,overlay] (1.819,1.419) .. controls (2.871,0.120) and (0.711,-0.145) .. (0.296,0.251) .. controls (-0.118,0.647) and (0.232,1.073) .. (0.440,1.128) -- (0.567,0.927) .. controls (0.567,0.927) and (0.543,0.906) .. (0.509,0.882) -- (0.481,0.929) -- (0.458,0.915) -- (0.487,0.868) .. controls (0.473,0.859) and (0.457,0.850) .. (0.441,0.842) -- (0.422,0.894) -- (0.397,0.885) -- (0.417,0.831) .. controls (0.404,0.826) and (0.391,0.821) .. (0.378,0.818) -- (0.364,0.869) -- (0.338,0.862) -- (0.351,0.815) .. controls (0.334,0.814) and (0.318,0.817) .. (0.304,0.825) .. controls (0.303,0.774) and (0.329,0.759) .. (0.365,0.763) -- (0.376,0.722) -- (0.402,0.729) -- (0.391,0.768) .. controls (0.405,0.772) and (0.420,0.778) .. (0.435,0.784) -- (0.447,0.750) -- (0.472,0.759) -- (0.459,0.796) .. controls (0.477,0.805) and (0.496,0.815) .. (0.512,0.825) -- (0.533,0.791) -- (0.556,0.805) -- (0.535,0.840) .. controls (0.567,0.860) and (0.590,0.877) .. (0.590,0.877) .. controls (1.011,1.168) and (0.887,0.936) .. (1.819,1.419) -- cycle;
\fi
%
% lapel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -711,9 +684,7 @@
%
% superhero cape %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cape
- \begin{pgfinterruptboundingbox}
- \fill[\duck@cape] \duckpathcape;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@cape,overlay] \duckpathcape;
\fi
%
% bowtie %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -754,57 +725,43 @@
% short hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@shorthair
\path (0.1,0.1) rectangle (2.1,2.25);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathshorthair;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathshorthair;
\fi
%
% long hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@longhair
\path (0.1,0.1) rectangle (2.1,2.25);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathlonghair;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathlonghair;
\fi
%
% crazy hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@crazyhair
\path (0.1,0.1) rectangle (2.1,2.4);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathcrazyhair;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathcrazyhair;
\fi
%
% receding hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@recedinghair
\path (0.1,0.1) rectangle (2.1,2.18);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathrecedinghair;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathrecedinghair;
\fi
%
% mohican hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@mohican
\path (0.1,0.1) rectangle (2.1,2.24);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathmohican;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathmohican;
\fi
%
% mullet hair %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@mullet
\path (0.1,0.1) rectangle (2.1,2.17);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@hair] \duckpathmullet;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@hair,overlay] \duckpathmullet;
\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}
+ \fill[\duck@hair,overlay] (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;
\fi
%
% eye brow %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -927,9 +884,7 @@
% crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@crown
\path (0.7,1.95) rectangle (1.4,2.45);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@crown] \duckpathcrown;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@crown,overlay] \duckpathcrown;
\fi
%
% Queen crown %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -945,17 +900,17 @@
% Bunny ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@bunny
\path (0.55,1.9) rectangle (1.2,2.55);
- \begin{pgfinterruptboundingbox}
- \begin{scope}
+ \pgfinterruptboundingbox
+ \scope
\clip[rotate=-5] (0.68,2.38) ellipse[x radius=0.3, y radius=0.4];
\fill[\duck@bunny,rotate=-5] (1.06,2.2) ellipse[x radius=0.3, y radius=0.4] (0.28,2.26) ellipse[x radius=0.3, y radius=0.4];
- \end{scope}
+ \endscope
- \begin{scope}
+ \scope
\clip[rotate=-5] (0.68,2.38) ellipse[x radius=0.25, y radius=0.35];
\fill[\duck@inear,rotate=-5] (1.06,2.2) ellipse[x radius=0.25, y radius=0.35] (0.28,2.26) ellipse[x radius=0.25, y radius=0.35];
- \end{scope}
- \end{pgfinterruptboundingbox}
+ \endscope
+ \endpgfinterruptboundingbox
\fi
%
% peaked cap %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -975,18 +930,14 @@
% darth vader %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@darthvader
\path (0.1,0.1) rectangle (2.1,2.22);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@darthvader] \duckpathdarthvader;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@darthvader,overlay] \duckpathdarthvader;
\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,overlay] (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,overlay] (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;
\fill[\duck@harlequin] (1.7,2.07) circle[radius=0.1];
\fill[\duck@niuqelrah] (0.3,2.23) circle[radius=0.1];
\fi
@@ -1024,9 +975,7 @@
% Conical Hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@conicalhat
\path (0.19,1.4) rectangle (1.68,2.32);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@conicalhat] (1.6722,1.4137) .. controls (1.6722,1.4337) and (1.3592,1.6230) .. (0.9513,1.7735) .. controls (0.5433,1.9239) and (0.1948,1.9784) .. (0.1948,1.9754) .. controls (0.2049,2.0230) and (1.1428,2.36) .. (1.1428,2.3) .. controls (1.1428,2.35) and (1.6821,1.4784) .. (1.6722,1.4137) -- cycle;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@conicalhat,overlay] (1.6722,1.4137) .. controls (1.6722,1.4337) and (1.3592,1.6230) .. (0.9513,1.7735) .. controls (0.5433,1.9239) and (0.1948,1.9784) .. (0.1948,1.9754) .. controls (0.2049,2.0230) and (1.1428,2.36) .. (1.1428,2.3) .. controls (1.1428,2.35) and (1.6821,1.4784) .. (1.6722,1.4137) -- cycle;
\fi
%
% Sailor hat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1188,21 +1137,21 @@
% football %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@football
\fill[\duck@football] (1.2,0.33) circle[radius=0.32];
- \begin{scope}
+ \scope
\clip (1.2,0.33) circle[radius=0.32];
\fill[black] (1.06,0.30) -- (1.01,0.17) -- (1.14,0.08) -- (1.26,0.14) -- (1.20,0.28) -- cycle (1.37,0.14) -- (1.46,0.27) -- (1.59,0.27) -- (1.41,0.04) -- cycle (1.28,0.38) -- (1.22,0.52) -- (1.33,0.61) -- (1.45,0.51) -- (1.43,0.37) -- cycle (0.87,0.44) -- (1.02,0.40) -- (1.10,0.53) -- (1.07,0.62) -- (0.94,0.57) -- cycle;
- \end{scope}
+ \endscope
\fi
%
% milkshake %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@milkshake
\fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
\fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03];
- \begin{scope}
+ \scope
\clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03);
\fill[cyan!10!white, rotate=-10] (0.8,0.94) ellipse[x radius=0.18, y radius=0.4];
\fill[\duck@milkshake, rotate=-10] (0.8,0.94) ellipse[x radius=0.15, y radius=0.36];
- \end{scope}
+ \endscope
\fill[white!85!yellow] (0.83,0.92) circle[radius=0.05] (0.88,0.9) circle[radius=0.05] (0.93,0.92) circle[radius=0.05] (0.99,0.91) circle[radius=0.05] (1.06,0.86) circle[radius=0.05] (1.13,0.87) circle[radius=0.05] (0.85,0.99) circle[radius=0.05] (0.9,0.98) circle[radius=0.07] (1.0,0.98) circle[radius=0.07] (1.1,0.95) circle[radius=0.07];
\fill[red!90!black] (1.0,1.1) circle[radius=0.05];
\fill[white!85!yellow] (0.94,1.05) circle[radius=0.05] (1.03,1.03) circle[radius=0.05];
@@ -1215,14 +1164,14 @@
\fill[cyan!10!white, rotate=-10] (0.8,0.50) ellipse[x radius=0.17, y radius=0.05];
\fill[cyan!10!white, rotate=-10] (0.8,0.55) ellipse[x radius=0.12, y radius=0.03];
\fill[cyan!10!white, rotate=-10] (0.8,0.7) ellipse[x radius=0.03, y radius=0.2];
- \begin{scope}
+ \scope
\clip[rotate=-10] (0.58,0.5) rectangle (1.02,1.03);
\fill[cyan!10!white, rotate=-10] (0.8,1.1) ellipse[x radius=0.18, y radius=0.4];
- \end{scope}
- \begin{scope}
+ \endscope
+ \scope
\clip[rotate=-10] (0.58,0.5) rectangle (1.02,0.87);
\fill[\duck@wine, rotate=-10] (0.8,1.1) ellipse[x radius=0.15, y radius=0.36];
- \end{scope}
+ \endscope
\fi
%
% prison duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1232,10 +1181,10 @@
\fill[\duck@prison, even odd rule] (0.72,-0.2) ellipse[x radius=0.10, y radius=0.07] (0.72,-0.2) ellipse[x radius=0.06, y radius=0.04];
\fill[\duck@prison,even odd rule,rotate=70] (0.4,-1.05) ellipse[x radius=0.1, y radius=0.07] (0.4,-1.05) ellipse[x radius=0.06, y radius=0.04] (0.2,-0.95) ellipse[x radius=0.1, y radius=0.07] (0.2,-0.95) ellipse[x radius=0.06, y radius=0.04] (0.22,-0.58) ellipse[x radius=0.1, y radius=0.07] (0.22,-0.58) ellipse[x radius=0.06, y radius=0.04];
\fill[\duck@prison,even odd rule,rotate=110](-0.33,-0.55) ellipse[x radius=0.1, y radius=0.07] (-0.33,-0.55) ellipse[x radius=0.06, y radius=0.04];
- \begin{scope}
+ \scope
\clip[rotate=-12] (0.45,0.15) rectangle (0.63,0.25);
\fill[\duck@prison,even odd rule,rotate=110](-0.07,-0.6) ellipse[x radius=0.1, y radius=0.07] (-0.07,-0.6) ellipse[x radius=0.06, y radius=0.04];
- \end{scope}
+ \endscope
\fi
%
% torch %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1251,10 +1200,10 @@
%
% sheep %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@sheep
- \begin{scope}
+ \scope
\clip[rotate=-5] (1.2,1.7) ellipse[x radius=0.3, y radius=0.4];
\fill[\duck@bill,rotate=-5] (0.8,1.5) ellipse[x radius=0.3, y radius=0.4];
- \end{scope}
+ \endscope
\fi
%
% basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1267,12 +1216,12 @@
%
% easter basket %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@easter
- \begin{scope}
+ \scope
\clip [start angle=180, end angle=0, x radius=0.3, y radius=0.45] (0.7,0.6) arc -- cycle [start angle=180, end angle=360, x radius=0.3, y radius=0.07] (0.7,0.6) arc -- cycle;
\fill[\duck@eggb, rotate=-5] (0.95,0.72) ellipse[x radius=0.09, y radius=0.13];
\fill[\duck@egga, rotate=10] (0.94,0.42) ellipse[x radius=0.09, y radius=0.13];
\fill[\duck@eggc, rotate=-30] (0.7,1.08) ellipse[x radius=0.09, y radius=0.13];
- \end{scope}
+ \endscope
\fi%
%
% horse tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1282,17 +1231,15 @@
\fi%
\ifduck@horsetail
\path (0.1,0.1) rectangle (2.82,2.14);
- \begin{pgfinterruptboundingbox}
- \fill[\duck@horsetail] \duckpathhorsetail;
- \end{pgfinterruptboundingbox}
+ \fill[\duck@horsetail,overlay] \duckpathhorsetail;
\fi
%
% crozier %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@crozier
- \begin{scope}
+ \scope
\clip [rotate=-20] (0.6,2.3) rectangle (1.1,1.999);
\fill[even odd rule,\duck@crozier] (1.5,1.6) circle[radius=0.2] (1.5,1.6) circle[radius=0.1];
- \end{scope}
+ \endscope
\fill[\duck@crozier,rotate=-20] (0.663,0.5) rectangle (0.763,2.0);
\fi
%
@@ -1300,11 +1247,11 @@
\ifduck@stethoscope
\fill[\duck@stethoscope,rounded corners=\scalingfactor*0.5,rotate=-18] (0.08,0.7) rectangle (0.13,1.24);
\fill[\duck@stethoscope] (0.35,0.7) circle[radius=0.1];
- \begin{scope}
+ \scope
\fill[\duck@stethoscope,rounded corners=\scalingfactor*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=\scalingfactor*3,rotate=-30,even odd rule] (0.775,1.35) rectangle (0.375,0.9) [rounded corners=\scalingfactor*2] (0.725,1.3) rectangle (0.425,0.95);
- \end{scope}
+ \endscope
\fi
%
% snow duck %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1331,11 +1278,11 @@
%
% Cheese %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@cheese
- \begin{scope}[xshift=26,yshift=-2]
+ \scope[xshift=26,yshift=-2]
\fill[\duck@cheese] (-0.3200,0.8058) -- (0.0608,0.7220) -- (0.0608,0.6366) -- (-0.3200,0.5410) -- (0.2143,0.4236) .. controls (0.3395,0.4810) and (0.4241,0.5627) .. (0.4117,0.6253) -- (0.4117,0.7634) .. controls (0.4261,0.8618) and (0.2607,0.8954) .. (0.1907,0.8962) -- cycle;
\fill[\duck@cheese!35!white] (-0.3200,0.8057) -- (-0.3200,0.5410) -- (0.2143,0.4236) -- (0.2143,0.7381) -- cycle;
\fill[\duck@cheese] (-0.23,0.71) circle[radius=0.04] (0.0,0.55) circle[radius=0.04] (-0.23,0.58) circle[radius=0.02] (-0.15,0.6) circle[radius=0.02] (-0.1,0.7) circle[radius=0.02] (0.1,0.65) circle[radius=0.02] (0,0.65) circle[radius=0.02] (0.1,0.5) circle[radius=0.02] (0.07,0.55) circle[radius=0.01] (0.12,0.6) circle[radius=0.01] (-0.08,0.54) circle[radius=0.01];
- \end{scope}
+ \endscope
\fi
%
% shovel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1353,10 +1300,8 @@
% umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ifduck@umbrella
\path (0.2,0.4) rectangle (2.22,2.7);
- \begin{pgfinterruptboundingbox}
- \fill[gray] (0.6922,0.5942) -- (0.7426,0.6103) .. controls (0.8276,0.3884) and (0.8855,0.4523) .. (0.9333,0.6543) -- (0.9334,0.6545) -- (0.9335,0.6547) .. controls (1.0347,1.0671) and (1.2906,1.9565) .. (1.2906,1.9565) -- (1.3415,1.9419) .. controls (1.3415,1.9419) and (1.0855,1.0519) .. (0.9849,0.6423) -- (0.9848,0.6420) .. controls (0.9240,0.3633) and (0.7874,0.3312) .. (0.6922,0.5942) -- cycle;
- \fill[\duck@umbrella] (0.2185,1.9927) .. controls (0.3559,2.1962) and (0.6837,2.0720) .. (0.6761,1.8240) .. controls (0.8398,2.0111) and (1.1891,1.9216) .. (1.1685,1.6915) .. controls (1.3000,1.8765) and (1.6639,1.7626) .. (1.6607,1.5356) .. controls (1.7865,1.7271) and (2.1350,1.6950) .. (2.1626,1.4589) .. controls (2.4996,2.5771) and (0.5644,3.2631) .. (0.2185,1.9927) -- cycle;
- \end{pgfinterruptboundingbox}
+ \fill[gray,overlay] (0.6922,0.5942) -- (0.7426,0.6103) .. controls (0.8276,0.3884) and (0.8855,0.4523) .. (0.9333,0.6543) -- (0.9334,0.6545) -- (0.9335,0.6547) .. controls (1.0347,1.0671) and (1.2906,1.9565) .. (1.2906,1.9565) -- (1.3415,1.9419) .. controls (1.3415,1.9419) and (1.0855,1.0519) .. (0.9849,0.6423) -- (0.9848,0.6420) .. controls (0.9240,0.3633) and (0.7874,0.3312) .. (0.6922,0.5942) -- cycle;
+ \fill[\duck@umbrella,overlay] (0.2185,1.9927) .. controls (0.3559,2.1962) and (0.6837,2.0720) .. (0.6761,1.8240) .. controls (0.8398,2.0111) and (1.1891,1.9216) .. (1.1685,1.6915) .. controls (1.3000,1.8765) and (1.6639,1.7626) .. (1.6607,1.5356) .. controls (1.7865,1.7271) and (2.1350,1.6950) .. (2.1626,1.4589) .. controls (2.4996,2.5771) and (0.5644,3.2631) .. (0.2185,1.9927) -- cycle;
\fi
%
% closed umbrella %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1397,7 +1342,7 @@
%
%\draw (current bounding box.north west) rectangle (current bounding box.south east);% For debugging bounding boxes
%
-%\end{scope}
+%\endscope
}% from `\def\duck@draw{` at the very beginning
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -1405,27 +1350,18 @@
% Random ducks
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\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}
\pgfmathdeclarerandomlist{head}{{shorthair}{longhair}{crazyhair}{mohican}{mullet}{beard}{alien}{hat}{cap}{santa}{chef}{graduate}{beret}{magichat}{witch}{crown}{bunny}{peakedcap}{tophat}{queencrown}{kingcrown}{harlequin}{strawhat}{parting}}
\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}{cheese}{shovel}{pickaxe}{crystalball}}
-\newcommand{\shuffleducks}{%
+\def\shuffleducks{%
\pgfmathrandomitem{\head}{head}%
\edef\randomhead{\head}%
\pgfmathrandomitem{\accessories}{accessories}%
\edef\randomaccessories{\accessories}%
}
-\newcommand{\randuck}{%
+\def\randuck{%
\shuffleducks%
\duck[\randomhead, \randomaccessories]%
}
@@ -1440,26 +1376,26 @@
% body parts %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\duckpathbody}{%
+\def\duckpathbody{%
(0.513,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.379) ..
(0.513,1.145) -- cycle
}
-\newcommand{\duckpathgrumpybill}{%
+\def\duckpathgrumpybill{%
(0.406,1.472) .. controls (0.643,1.530) and (0.643,1.530) ..
(0.800,1.300) .. controls (0.083,0.850) and (0.269,1.369) ..
(0.406,1.472) -- cycle
}
-\newcommand{\duckpathbill}{%
+\def\duckpathbill{%
(0.406,1.472) .. controls (0.643,1.530) and (0.541,1.303) ..
(0.910,1.370) .. controls (0.083,0.850) and (0.269,1.369) ..
(0.406,1.472) -- cycle
}
-\newcommand{\duckpathwing}{%
+\def\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) ..
@@ -1472,14 +1408,14 @@
% clothing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\duckpathtshirt}{%
+\def\duckpathtshirt{%
(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.976) and ( 1.240,1.279) ..
(0.590,1.000) -- cycle
}
-\newcommand{\duckpathjacket}{%
+\def\duckpathjacket{%
(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.880, 0.946) and ( 1.240,1.378) ..
@@ -1488,7 +1424,7 @@
% hair styles %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\duckpathshorthair}{%
+\def\duckpathshorthair{%
(1.3947,1.4175) .. controls (1.4546,1.4518) and (1.4699,1.6566) ..
(1.4343,1.7992) .. controls (1.2528,2.5033) and (0.2339,2.2710) ..
(0.4151,1.5907) .. controls (0.4345,1.8709) and (0.7421,2.0999) ..
@@ -1496,7 +1432,7 @@
(1.3947,1.4175) -- cycle
}
-\newcommand{\duckpathlonghair}{%
+\def\duckpathlonghair{%
(1.4508,0.7565) .. controls (1.5146,0.7888) and (1.5854,0.8216) ..
(1.6247,0.8831) .. controls (1.5859,0.8847) and (1.4726,0.9457) ..
(1.5587,0.9706) .. controls (1.6317,0.9685) and (1.7016,1.0046) ..
@@ -1512,7 +1448,7 @@
(1.4508,0.7565) -- cycle
}
-\newcommand{\duckpathcrazyhair}{%
+\def\duckpathcrazyhair{%
(0.1977,1.9023) .. controls (0.2633,2.0599) and (0.4819,2.0547) ..
(0.4713,2.0879) .. controls (0.4647,2.2106) and (0.2516,2.2392) ..
(0.2516,2.2392) .. controls (0.4352,2.2933) and (0.7427,1.9304) ..
@@ -1531,7 +1467,7 @@
(0.1977,1.9023) -- cycle
}
-\newcommand{\duckpathrecedinghair}{%
+\def\duckpathrecedinghair{%
(1.3385,1.4841) .. controls (1.4243,1.4529) and (1.4877,1.7127) ..
(1.3964,1.8658) .. controls (1.1071,2.3511) and (0.5189,2.1609) ..
(0.4381,1.6816) .. controls (0.4575,1.9618) and (0.9007,2.2059) ..
@@ -1539,14 +1475,14 @@
(1.3385,1.4841) -- cycle
}
-\newcommand{\duckpathmohican}{%
+\def\duckpathmohican{%
(0.7632,1.7935) .. controls (0.9223,2.3084) and (1.3870,1.8580) ..
(1.3920,1.5854) .. controls (1.4233,2.1466) and (0.6812,2.5808) ..
(0.6725,1.8166) .. controls (0.6725,1.8166) and (0.7615,1.7926) ..
(0.7632,1.7935) -- cycle
}
-\newcommand{\duckpathmullet}{%
+\def\duckpathmullet{%
(1.3723,1.2684) .. controls (1.3723,1.2684) and (1.5129,1.5571) ..
(1.4435,1.7815) .. controls (1.2652,2.3572) and (0.3342,2.2633) ..
(0.4106,1.5424) .. controls (0.4204,1.6825) and (0.5692,1.9195) ..
@@ -1558,7 +1494,7 @@
% Acessoires %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\duckpathqueencrown}{%
+\def\duckpathqueencrown{%
(0.7370,2.0732) .. controls (0.6966,2.2091) and (0.6769,2.3503) ..
(0.6354,2.4859) .. controls (0.6149,2.5164) and (0.5958,2.5732) ..
(0.6498,2.5808) .. controls (0.6973,2.5907) and (0.7091,2.5350) ..
@@ -1587,7 +1523,7 @@
(0.7370,2.0732) -- cycle
}
-\newcommand{\duckpathkingcrown}{%
+\def\duckpathkingcrown{%
(0.6572,2.0396) .. controls (0.6637,2.0838) and (0.6716,2.1289) ..
(0.6684,2.1735) .. controls (0.6481,2.2496) and (0.5923,2.3131) ..
(0.5818,2.3921) .. controls (0.5738,2.4607) and (0.6167,2.5343) ..
@@ -1607,7 +1543,7 @@
(0.6572,2.0396) -- cycle
}
-\newcommand{\duckpathdarthvader}{%
+\def\duckpathdarthvader{%
(0.4264,1.9092) .. controls (0.4347,1.9248) and (0.4612,1.9186) ..
(0.4969,1.9783) .. controls (0.5499,2.0670) and (0.7559,2.2377) ..
(0.9889,2.2057) .. controls (1.2691,2.1668) and (1.4075,1.8829) ..
@@ -1621,7 +1557,7 @@
(0.4264,1.9092) -- cycle
}
-\newcommand{\duckpathhorsetail}{%
+\def\duckpathhorsetail{%
(1.7248,1.3553) .. controls (2.0530,1.3369) and (2.1427,1.1604) ..
(2.2915,0.9970) .. controls (2.4759,0.7946) and (2.9531,0.8890) ..
(2.7668,0.9003) .. controls (2.4670,0.9184) and (2.5158,1.1488) ..
@@ -1629,7 +1565,7 @@
(1.7248,1.3553) -- cycle
}
-\newcommand{\duckpathcape}{%
+\def\duckpathcape{%
(0.225,0.966) .. controls (1.314,0.961) and (2.070,0.650) ..
(2.042,1.245) .. controls (1.863,1.164) and (1.844,1.173) ..
(1.792,1.340) .. controls (1.635,1.235) and (1.620,1.268) ..
@@ -1638,7 +1574,7 @@
(0.235,0.966) -- cycle
}
-\newcommand{\duckpathcrown}{%
+\def\duckpathcrown{%
(0.7365,2.0616) .. controls (0.7365,2.0616) and (0.7771,2.1763) ..
(0.6959,2.4650) -- (0.8895,2.2378) -- (1.0391,2.3943) --
(1.1260,2.1961) --
@@ -1647,7 +1583,7 @@
(0.7365,2.0616) -- cycle
}
-\newcommand{\duckpathtorch}{%
+\def\duckpathtorch{%
(1.4338,1.0258) .. controls (1.4308,0.8877) and (1.3468,0.8997) ..
(1.2447,0.7481) .. controls (1.1427,0.8982) and (1.0721,0.8892) ..
(1.0646,1.0243) .. controls (1.0541,1.1714) and (1.2642,1.1654) ..
@@ -1655,7 +1591,7 @@
(1.4338,1.0258) -- cycle
}
-\newcommand{\duckpathoverleaf}{%
+\def\duckpathoverleaf{%
(1.2699,0.6095) .. controls (1.2710,0.5992) and (1.2752,0.5910) .. (1.2822,0.5852) .. controls (1.2892,0.5793) and (1.2983,0.5763) .. (1.3095,0.5763) .. controls (1.3165,0.5762) and (1.3233,0.5778) .. (1.3295,0.5809) .. controls (1.3353,0.5840) and (1.3401,0.5885) .. (1.3436,0.5940) -- (1.3792,0.5940) .. controls (1.3731,0.5785) and (1.3640,0.5664) .. (1.3521,0.5578) .. controls (1.3398,0.5492) and (1.3252,0.5447) .. (1.3103,0.5449) .. controls (1.3002,0.5448) and (1.2902,0.5467) .. (1.2808,0.5505) .. controls (1.2718,0.5544) and (1.2636,0.5601) .. (1.2567,0.5672) .. controls (1.2500,0.5742) and (1.2446,0.5825) .. (1.2410,0.5915) .. controls (1.2372,0.6005) and (1.2353,0.6101) .. (1.2353,0.6198) .. controls (1.2352,0.6294) and (1.2370,0.6389) .. (1.2404,0.6479) .. controls (1.2438,0.6567) and (1.2489,0.6647) .. (1.2554,0.6715) .. controls (1.2625,0.6790) and (1.2709,0.6850) .. (1.2802,0.6892) .. controls (1.2891,0.6933) and (1.2988,0.6954) .. (1.3086,0.6955) .. controls (1.3207,0.6955) and (1.3325,0.6926) .. (1.3432,0.6871) .. controls (1.3540,0.6813) and (1.3633,0.6732) .. (1.3705,0.6634) .. controls (1.3751,0.6571) and (1.3786,0.6501) .. (1.3807,0.6427) .. controls (1.3831,0.6341) and (1.3842,0.6253) .. (1.3841,0.6164) .. controls (1.3840,0.6139) and (1.3839,0.6119) .. (1.3837,0.6092) .. controls (1.3458,0.6093) and (1.3079,0.6094) .. (1.2699,0.6095) -- cycle(1.3486,0.6358) .. controls (1.3458,0.6453) and (1.3410,0.6525) .. (1.3343,0.6575) .. controls (1.3276,0.6625) and (1.3192,0.6650) .. (1.3090,0.6650) .. controls (1.3004,0.6651) and (1.2920,0.6622) .. (1.2852,0.6570) .. controls (1.2783,0.6517) and (1.2733,0.6443) .. (1.2711,0.6359) .. controls (1.2969,0.6359) and (1.3228,0.6358) .. (1.3486,0.6358) -- cycle(1.5160,0.5487) -- (1.5160,0.5662) .. controls (1.5122,0.5593) and (1.5064,0.5538) .. (1.4992,0.5505) .. controls (1.4920,0.5471) and (1.4828,0.5455) .. (1.4715,0.5455) .. controls (1.4505,0.5455) and (1.4329,0.5527) .. (1.4187,0.5670) .. controls (1.4046,0.5814) and (1.3976,0.5993) .. (1.3975,0.6206) .. controls (1.3975,0.6303) and (1.3993,0.6401) .. (1.4029,0.6492) .. controls (1.4063,0.6580) and (1.4114,0.6661) .. (1.4180,0.6729) .. controls (1.4246,0.6801) and (1.4327,0.6857) .. (1.4416,0.6895) .. controls (1.4509,0.6932) and (1.4608,0.6950) .. (1.4708,0.6949) .. controls (1.4800,0.6951) and (1.4891,0.6933) .. (1.4976,0.6896) .. controls (1.5050,0.6862) and (1.5112,0.6807) .. (1.5156,0.6739) -- (1.5156,0.6911) -- (1.5480,0.6911) -- (1.5480,0.5485) -- (1.5160,0.5485) -- (1.5160,0.5487) -- cycle(1.4436,0.5910) .. controls (1.4513,0.5831) and (1.4619,0.5787) .. (1.4729,0.5789) .. controls (1.4833,0.5789) and (1.4926,0.5829) .. (1.5006,0.5911) .. controls (1.5083,0.5986) and (1.5126,0.6088) .. (1.5126,0.6196) .. controls (1.5127,0.6307) and (1.5084,0.6414) .. (1.5006,0.6494) .. controls (1.4926,0.6577) and (1.4833,0.6619) .. (1.4727,0.6619) .. controls (1.4618,0.6621) and (1.4514,0.6577) .. (1.4439,0.6499) .. controls (1.4361,0.6423) and (1.4318,0.6318) .. (1.4317,0.6205) .. controls (1.4315,0.6092) and (1.4355,0.5991) .. (1.4436,0.5910) -- cycle(1.6366,0.6913) -- (1.6366,0.6617) -- (1.6127,0.6617) -- (1.6127,0.5487) -- (1.5806,0.5487) -- (1.5806,0.6617) -- (1.5637,0.6617) -- (1.5637,0.6913) -- (1.5796,0.6913) -- (1.5796,0.6952) .. controls (1.5796,0.7102) and (1.5838,0.7214) .. (1.5922,0.7288) .. controls (1.6005,0.7362) and (1.6131,0.7399) .. (1.6300,0.7399) .. controls (1.6324,0.7398) and (1.6347,0.7396) .. (1.6370,0.7395) -- (1.6370,0.7097) -- (1.6347,0.7097) .. controls (1.6272,0.7097) and (1.6218,0.7084) .. (1.6186,0.7059) .. controls (1.6154,0.7034) and (1.6138,0.6993) .. (1.6138,0.6936) -- (1.6138,0.6910) .. controls (1.6214,0.6913) and (1.6290,0.6912) .. (1.6366,0.6913) -- cycle(1.1906,0.5487) -- (1.2231,0.5487) -- (1.2231,0.7374) -- (1.1906,0.7374) -- cycle(0.9820,0.6095) .. controls (0.9831,0.5992) and (0.9872,0.5910) .. (0.9943,0.5852) .. controls (1.0013,0.5793) and (1.0104,0.5763) .. (1.0216,0.5763) .. controls (1.0285,0.5762) and (1.0354,0.5778) .. (1.0416,0.5809) .. controls (1.0474,0.5839) and (1.0522,0.5885) .. (1.0556,0.5940) -- (1.0914,0.5940) .. controls (1.0854,0.5785) and (1.0763,0.5664) .. (1.0643,0.5578) .. controls (1.0522,0.5492) and (1.0382,0.5449) .. (1.0225,0.5449) .. controls (1.0124,0.5448) and (1.0024,0.5467) .. (0.9931,0.5505) .. controls (0.9840,0.5544) and (0.9758,0.5601) .. (0.9690,0.5672) .. controls (0.9622,0.5742) and (0.9569,0.5825) .. (0.9532,0.5915) .. controls (0.9495,0.6005) and (0.9475,0.6101) .. (0.9475,0.6198) .. controls (0.9475,0.6294) and (0.9492,0.6389) .. (0.9527,0.6479) .. controls (0.9560,0.6567) and (0.9611,0.6647) .. (0.9677,0.6715) .. controls (0.9747,0.6790) and (0.9830,0.6850) .. (0.9924,0.6892) .. controls (1.0012,0.6933) and (1.0109,0.6955) .. (1.0207,0.6955) .. controls (1.0327,0.6955) and (1.0446,0.6927) .. (1.0552,0.6871) .. controls (1.0660,0.6813) and (1.0753,0.6732) .. (1.0826,0.6634) .. controls (1.0871,0.6571) and (1.0906,0.6501) .. (1.0926,0.6427) .. controls (1.0949,0.6341) and (1.0960,0.6253) .. (1.0959,0.6164) .. controls (1.0959,0.6139) and (1.0957,0.6119) .. (1.0956,0.6092) .. controls (1.0577,0.6100) and (1.0199,0.6095) .. (0.9820,0.6095) -- cycle(1.0606,0.6358) .. controls (1.0578,0.6453) and (1.0531,0.6526) .. (1.0463,0.6575) .. controls (1.0397,0.6625) and (1.0312,0.6650) .. (1.0210,0.6650) .. controls (1.0124,0.6651) and (1.0041,0.6622) .. (0.9973,0.6570) .. controls (0.9903,0.6517) and (0.9853,0.6443) .. (0.9830,0.6359) .. controls (1.0089,0.6359) and (1.0348,0.6358) .. (1.0606,0.6358) -- cycle(1.1761,0.6624) .. controls (1.1632,0.6614) and (1.1542,0.6580) .. (1.1492,0.6523) .. controls (1.1441,0.6465) and (1.1415,0.6363) .. (1.1415,0.6214) -- (1.1415,0.5487) -- (1.1083,0.5487) -- (1.1083,0.6913) -- (1.1394,0.6913) -- (1.1394,0.6748) .. controls (1.1438,0.6808) and (1.1494,0.6856) .. (1.1559,0.6891) .. controls (1.1621,0.6923) and (1.1690,0.6938) .. (1.1760,0.6937) .. controls (1.1760,0.6833) and (1.1761,0.6728) .. (1.1761,0.6624) -- cycle(0.8646,0.8092) .. controls (0.8244,0.8248) and (0.6787,0.8306) .. (0.6784,0.7437) .. controls (0.6359,0.7165) and (0.6078,0.6721) .. (0.6078,0.6246) .. controls (0.6077,0.5410) and (0.7016,0.4916) .. (0.7705,0.5391) .. controls (0.8394,0.5866) and (0.8268,0.6919) .. (0.7486,0.7217) .. controls (0.7411,0.7246) and (0.7248,0.7297) .. (0.7117,0.7286) .. controls (0.6931,0.7168) and (0.6704,0.6924) .. (0.6597,0.6682) .. controls (0.6918,0.7064) and (0.7528,0.6983) .. (0.7737,0.6530) .. controls (0.7947,0.6076) and (0.7614,0.5559) .. (0.7115,0.5562) .. controls (0.6914,0.5562) and (0.6724,0.5649) .. (0.6594,0.5802) .. controls (0.6410,0.6019) and (0.6363,0.6254) .. (0.6400,0.6484) .. controls (0.6532,0.7289) and (0.7487,0.7748) .. (0.8197,0.7924) .. controls (0.7966,0.7801) and (0.7548,0.7600) .. (0.7255,0.7380) .. controls (0.8108,0.7051) and (0.8246,0.7770) .. (0.8646,0.8092) -- cycle(0.8731,0.5487) -- (0.8189,0.6913) -- (0.8542,0.6913) -- (0.8874,0.5965) -- (0.9217,0.6913) -- (0.9561,0.6913) -- (0.8991,0.5487) -- cycle
}
@@ -1665,7 +1601,7 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\picduck}{%
+\def\picduck{%
% bill %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\qbezier(6.5,29.5)(-1,17.5)(16.8,27.3)
\qbezier(6.5,29.5)(9,30.5)(11.4,28.0)
@@ -1740,10 +1676,6 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand*{\stripes}[1][]{\tikzset{%
- /stripes/.cd,#1}\stripes@draw%
-}
-
\tikzset{
/stripes/.cd,
color/.code = \def\stripes@color{#1},
@@ -1767,15 +1699,15 @@
\def\stripes@draw{%
\path (0.1,0.1) rectangle (2.1,1.45);
- \begin{pgfinterruptboundingbox}
- \begin{scope}
+ \pgfinterruptboundingbox
+ \scope
\clip \duckpathjacket;
\foreach \shifta in {0,\stripes@distance,...,2.4}{%
\fill[\stripes@color,rotate around={\stripes@rotate:(1.2,0.9)}]
($(\stripes@initialx,\stripes@initialy)+(\shifta,0)$) rectangle ($(\stripes@initialx,\stripes@initialy)+(\shifta,0)+(\stripes@width,\stripes@height)$);
}
- \end{scope}
- \end{pgfinterruptboundingbox}
+ \endscope
+ \endpgfinterruptboundingbox
\node at (wing) {\stripes@emblem };
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty b/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty
new file mode 100644
index 00000000000..b377387c2da
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/tikzducks/tikzducks.sty
@@ -0,0 +1,50 @@
+% !TeX root = ./testing/test.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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ProvidesPackage{tikzducks}[2020/06/30 version v1.5 Draw rubber ducks in TikZ]
+
+\RequirePackage{expl3}
+\RequirePackage{tikz}
+\usetikzlibrary{patterns} % for the wizard hat
+\usetikzlibrary{calc} % for the sports jerseys
+
+\definecolor{duck@overleafcol}{RGB}{72,172,60}
+
+\newcommand*{\duck}[1][]{%
+ \begin{scope}%
+ \tikzset{/duck/.cd,#1}%
+ \duck@draw%
+ \end{scope}%
+}
+
+\ExplSyntaxOn
+\ifdefined\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}
+\fi
+\ExplSyntaxOff
+\newcommand*{\stripes}[1][]{\tikzset{%
+ /stripes/.cd,#1}\stripes@draw%
+}
+
+\input tikzducks-generic
diff --git a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex b/Master/texmf-dist/tex/generic/tikzducks/tikzlibraryducks.code.tex
index 4c90b1f0e63..4c90b1f0e63 100644
--- a/Master/texmf-dist/tex/latex/tikzducks/tikzlibraryducks.code.tex
+++ b/Master/texmf-dist/tex/generic/tikzducks/tikzlibraryducks.code.tex
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 549f5957f3d..05019619c36 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1393,6 +1393,7 @@ chomp (my $ctan_root = `tlpkginfo --ctan-root`);
'xkeyval', "&MAKExkeyval",
'xlop', "&MAKEflatten",
'xltabular', "&MAKEflatten",
+ 'xml2pmx', "die 'skipping, nontrivial compilation needed'",
'xmltex', "&MAKExmltex",
'xor', "die 'skipping, will be in xpackages when ready (Morten says)'",
'xpackages', "die 'skipping, now l3packages, etc.'",
@@ -1722,6 +1723,7 @@ $standarddest = "texmf-dist";
'texdraw', 'generic',
'texsis', 'texsis',
'textmerg', 'generic',
+ 'tikzducks', 'generic',
'tugboat-plain', 'plain',
'ulem', 'generic',
'uptex-base', 'uptex',
@@ -2132,6 +2134,7 @@ $standardtex
'tikz-qtree', '(pgf|tikz-)(subpic|q?tree(-compat)?)\.(tex|sty)',
'tikz-sfc', '\.code\.tex$',
'tikz-trackschematic', '\.code\.tex$',
+ 'tikzducks', '-generic.tex$|\.mkiv$|' . $standardtex,
'tikzposter', 'tikzposter[^-].*\.tex|' . $standardtex,
# tipa: we want to install all .sty except tipaman|boxchar|codelist.
# i can't explain why ^(?!...), the "zero-width negative look-ahead
@@ -2435,6 +2438,7 @@ $standardtex
'texsis', 'otherformats',
'textmerg', 'generic',
'textpath', 'metapost',
+ 'tikzducks', 'generic',
'timing', 'fonts',
'trajan', 'fonts',
'tugboat-plain', 'plain',
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index c1d87d741e6..644239480c9 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -180,7 +180,6 @@ depend clefval
depend cleveref
depend clipboard
depend clock
-depend cloze
depend clrdblpg
depend clrstrip
depend cmdstring
diff --git a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
index 6d34ac3da46..ab2cb569d28 100644
--- a/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-luatex.tlpsrc
@@ -11,6 +11,7 @@ depend barracuda
depend bezierplot
depend checkcites
depend chickenize
+depend cloze
depend combofont
depend cstypo
depend ctablestack