How can we draw a duck (in order to create a tikzducks package and store it in CTAN)?












77
















This question led to a new package:
tikzducks




We have a scsnowman package but we don't have a ducks package, that's quite inexplicable since ducks are frequently used on TeX.SE (e.g., samcarter had to fall back on PHdove of phaistos package here).



I'm not an expert, nevertheless, I'd like to create a tikzducks package, similar to tikzpeople, but I need your help in order to create a customizable duck!



Requirements:




  • I'd like to have a duck, not something a bit like it (ducks with a human body are NOT accepted)

  • wings are mandatory

  • from the look of the duck, it should appear cleary that it was
    created with LaTeX, not with other commercial tools.


Possible color-keys for the duck:




  • body

  • head

  • wings

  • eyes

  • beak.


Possible optional add-ons:




  • hat

  • sport tools (e.g., cricket bat)

  • male/female versions

  • a seasonal version

  • a Chinese version

  • a cook version (not cooked version)

  • a mathematician version.


As shown in Ulrike Fisher's answer, tikzpeople package has a beak feature but it doesn't allow to change the body of the image, so we get a person with a beak (quite ugly).



Loopspace pointed out that there is already a ducks package but it doesn't allow to change the style of the duck (like tikzpeople does for people) and it is not yet present in CTAN.



Moreover, I'd like a style similar to this example of the seasonal version:



enter image description here



Go wild!




P.S. = consider this question as if it has always a bounty open!











share|improve this question




















  • 5





    Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

    – Christian Hupfer
    Jan 2 '17 at 13:28






  • 2





    @CarLaTeX: Very Good!

    – Christian Hupfer
    Jan 2 '17 at 13:38






  • 11





    Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

    – cfr
    Jan 3 '17 at 2:52






  • 3





    If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

    – dbmag9
    Jan 6 '17 at 10:17








  • 3





    @UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

    – Hironobu YAMASHITA
    Jan 10 '17 at 14:36
















77
















This question led to a new package:
tikzducks




We have a scsnowman package but we don't have a ducks package, that's quite inexplicable since ducks are frequently used on TeX.SE (e.g., samcarter had to fall back on PHdove of phaistos package here).



I'm not an expert, nevertheless, I'd like to create a tikzducks package, similar to tikzpeople, but I need your help in order to create a customizable duck!



Requirements:




  • I'd like to have a duck, not something a bit like it (ducks with a human body are NOT accepted)

  • wings are mandatory

  • from the look of the duck, it should appear cleary that it was
    created with LaTeX, not with other commercial tools.


Possible color-keys for the duck:




  • body

  • head

  • wings

  • eyes

  • beak.


Possible optional add-ons:




  • hat

  • sport tools (e.g., cricket bat)

  • male/female versions

  • a seasonal version

  • a Chinese version

  • a cook version (not cooked version)

  • a mathematician version.


As shown in Ulrike Fisher's answer, tikzpeople package has a beak feature but it doesn't allow to change the body of the image, so we get a person with a beak (quite ugly).



Loopspace pointed out that there is already a ducks package but it doesn't allow to change the style of the duck (like tikzpeople does for people) and it is not yet present in CTAN.



Moreover, I'd like a style similar to this example of the seasonal version:



enter image description here



Go wild!




P.S. = consider this question as if it has always a bounty open!











share|improve this question




















  • 5





    Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

    – Christian Hupfer
    Jan 2 '17 at 13:28






  • 2





    @CarLaTeX: Very Good!

    – Christian Hupfer
    Jan 2 '17 at 13:38






  • 11





    Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

    – cfr
    Jan 3 '17 at 2:52






  • 3





    If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

    – dbmag9
    Jan 6 '17 at 10:17








  • 3





    @UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

    – Hironobu YAMASHITA
    Jan 10 '17 at 14:36














77












77








77


15







This question led to a new package:
tikzducks




We have a scsnowman package but we don't have a ducks package, that's quite inexplicable since ducks are frequently used on TeX.SE (e.g., samcarter had to fall back on PHdove of phaistos package here).



I'm not an expert, nevertheless, I'd like to create a tikzducks package, similar to tikzpeople, but I need your help in order to create a customizable duck!



Requirements:




  • I'd like to have a duck, not something a bit like it (ducks with a human body are NOT accepted)

  • wings are mandatory

  • from the look of the duck, it should appear cleary that it was
    created with LaTeX, not with other commercial tools.


Possible color-keys for the duck:




  • body

  • head

  • wings

  • eyes

  • beak.


Possible optional add-ons:




  • hat

  • sport tools (e.g., cricket bat)

  • male/female versions

  • a seasonal version

  • a Chinese version

  • a cook version (not cooked version)

  • a mathematician version.


As shown in Ulrike Fisher's answer, tikzpeople package has a beak feature but it doesn't allow to change the body of the image, so we get a person with a beak (quite ugly).



Loopspace pointed out that there is already a ducks package but it doesn't allow to change the style of the duck (like tikzpeople does for people) and it is not yet present in CTAN.



Moreover, I'd like a style similar to this example of the seasonal version:



enter image description here



Go wild!




P.S. = consider this question as if it has always a bounty open!











share|improve this question

















This question led to a new package:
tikzducks




We have a scsnowman package but we don't have a ducks package, that's quite inexplicable since ducks are frequently used on TeX.SE (e.g., samcarter had to fall back on PHdove of phaistos package here).



I'm not an expert, nevertheless, I'd like to create a tikzducks package, similar to tikzpeople, but I need your help in order to create a customizable duck!



Requirements:




  • I'd like to have a duck, not something a bit like it (ducks with a human body are NOT accepted)

  • wings are mandatory

  • from the look of the duck, it should appear cleary that it was
    created with LaTeX, not with other commercial tools.


Possible color-keys for the duck:




  • body

  • head

  • wings

  • eyes

  • beak.


Possible optional add-ons:




  • hat

  • sport tools (e.g., cricket bat)

  • male/female versions

  • a seasonal version

  • a Chinese version

  • a cook version (not cooked version)

  • a mathematician version.


As shown in Ulrike Fisher's answer, tikzpeople package has a beak feature but it doesn't allow to change the body of the image, so we get a person with a beak (quite ugly).



Loopspace pointed out that there is already a ducks package but it doesn't allow to change the style of the duck (like tikzpeople does for people) and it is not yet present in CTAN.



Moreover, I'd like a style similar to this example of the seasonal version:



enter image description here



Go wild!




P.S. = consider this question as if it has always a bounty open!








tikz-pgf fun tikzducks






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 13 '18 at 0:14









Henri Menke

72.5k8160269




72.5k8160269










asked Jan 2 '17 at 13:23









CarLaTeXCarLaTeX

30.8k449129




30.8k449129








  • 5





    Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

    – Christian Hupfer
    Jan 2 '17 at 13:28






  • 2





    @CarLaTeX: Very Good!

    – Christian Hupfer
    Jan 2 '17 at 13:38






  • 11





    Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

    – cfr
    Jan 3 '17 at 2:52






  • 3





    If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

    – dbmag9
    Jan 6 '17 at 10:17








  • 3





    @UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

    – Hironobu YAMASHITA
    Jan 10 '17 at 14:36














  • 5





    Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

    – Christian Hupfer
    Jan 2 '17 at 13:28






  • 2





    @CarLaTeX: Very Good!

    – Christian Hupfer
    Jan 2 '17 at 13:38






  • 11





    Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

    – cfr
    Jan 3 '17 at 2:52






  • 3





    If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

    – dbmag9
    Jan 6 '17 at 10:17








  • 3





    @UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

    – Hironobu YAMASHITA
    Jan 10 '17 at 14:36








5




5





Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

– Christian Hupfer
Jan 2 '17 at 13:28





Don't forget the version: Cooking Ducks (no, not Cooking a duck ;-)) and Ducks solving Math problems ;-)

– Christian Hupfer
Jan 2 '17 at 13:28




2




2





@CarLaTeX: Very Good!

– Christian Hupfer
Jan 2 '17 at 13:38





@CarLaTeX: Very Good!

– Christian Hupfer
Jan 2 '17 at 13:38




11




11





Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

– cfr
Jan 3 '17 at 2:52





Why not a male version if there is to be a female version? Male birds are typically the more interesting to look at, given their tendency to favour fantastical displays in techni-colour glory.

– cfr
Jan 3 '17 at 2:52




3




3





If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

– dbmag9
Jan 6 '17 at 10:17







If there is to be a duck adorned with a flowery necklace, why not name it descriptively (flowerduck) rather than implying that flowers have the meaning 'female'? Semantic ideals of LaTeX and all that.

– dbmag9
Jan 6 '17 at 10:17






3




3





@UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

– Hironobu YAMASHITA
Jan 10 '17 at 14:36





@UlrikeFischer I am the author of scsnowman; sc means "snowman commedian". Some TeXnicians in Japan are interested in the variety of snowman glyphs in Unicode fonts (I also described in the package documentatkon) and they are sometimes called "snowman enthusiasts" or "snowman comedians" (including me!).

– Hironobu YAMASHITA
Jan 10 '17 at 14:36










6 Answers
6






active

oldest

votes


















80





+150










No new ducks will be added to the question, instead this project moved on to become a latex package. Please visit the project repository at https://github.com/samcarter/tikzducks or have a look at https://www.ctan.org/pkg/tikzducks if you want to see new ducks :)




enter image description here



documentclass{article}
usepackage[svgnames]{xcolor}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}

usepackage[paperwidth=38cm,paperheight=42cm,margin=1cm]{geometry}

usepackage{bbding}

newcommand{duck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (61.6632,119.6616) .. (95.1826,113) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{grumpyduck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (70.9472,97.0244) .. (85.1826,120) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{addalien}{%
draw[line width=3pt,color=YellowGreen] (110,62) -- (130,20);
draw[line width=3pt,color=YellowGreen] (72,58) -- (60,15);
path[fill=YellowGreen] (130,20) circle (0.2cm);
path[fill=YellowGreen] (60,15) circle (0.2cm);
}

newcommand{addhat}[1]{%
path[fill=#1] (90,55) ellipse (1.3cm and 0.25cm);
path[fill=#1] (90,30) ellipse (0.7cm and 0.2cm);
path[fill=#1] (115,30) rectangle (65,55);
}

newcommand{addsunglasses}{
draw[line width=3pt,color=black] (48,95) arc (190:370:20) ;
path[draw=black,line width=3pt] (95,90) -- (130,100);
path[fill=black, rotate=20] (111,58) ellipse (0.4cm and 0.4cm);
path[fill=black, rotate=20] (80,60) ellipse (0.37cm and 0.37cm);
}

newcommand{addglasses}[1]{
draw[line width=2pt,color=#1] (62,80) arc (267:297:20) ;
path[draw=#1,line width=2pt] (93,88) -- (130,100);
path[draw=#1,line width=2pt, rotate=20] (107,58) ellipse (0.35cm and 0.35cm);
path[draw=#1,line width=2pt, rotate=20] (78,61) ellipse (0.32cm and 0.32cm);
}

newcommand{addicecream}[3]{
path[draw=Sienna,fill=Goldenrod,line width=1pt,yshift=50pt,rotate=20,xshift=50pt]
(45,60)--(60,120)--(75,60);
path[draw=Sienna, fill=Goldenrod, rotate=20,line width=1pt] (144,118) ellipse (0.4cm and 0.25cm);
path[fill=#1, rotate=20] (138,116) circle (0.3cm);
path[fill=#2, rotate=20] (148,116) circle (0.3cm);
path[fill=#3, rotate=20] (142,102) circle (0.3cm);
}

newcommand{addunicorn}{
path[draw=VioletRed,fill=Pink,line width=1pt,yshift=20pt,rotate=-25,xshift=0pt]
(50,60)--(60,20)--(70,60);
}

newcommand{addhair}[1]{%
path[fill=#1, xshift=-5pt] (151.3277,174.3473) .. controls (157.7099,171.1213) and (164.7938,167.8644) .. (168.7230,161.6896) .. controls (164.8427,161.5316) and (153.5102,155.4255) .. (162.1164,152.9395) .. controls (169.4207,153.1460) and (176.4092,149.5358) .. (179.3920,142.6587) .. controls (185.5577,133.4026) and (172.4051,138.2448) .. (169.0163,134.3455) .. controls (174.7801,132.5948) and (184.6532,131.7138) .. (187.4798,127.5635) .. controls (176.4675,125.1191) and (163.1258,123.3733) .. (156.8817,112.6068) .. controls (152.4387,98.5734) and (153.2098,83.5059) .. (149.6492,69.2411) .. controls (131.4926,-1.1678) and (29.6020,22.0627) .. (47.7294,90.0940) .. controls (49.6639,62.0732) and (72.5401,38.6998) .. (96.3583,54.2220) .. controls (130.5162,76.1752) and (139.7469,117.8581) .. (115.3043,143.8986) .. controls (115.2213,148.9109) and (117.2762,158.3403) .. (124.2981,163.2993) .. controls (131.3200,168.2584) and (141.2814,171.4676) .. (151.3277,174.3473) -- cycle;
}

newcommand{addshirt}[1]{%
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,180) -- cycle;
}

newcommand{addtie}[1]{
draw[line width=10pt,color=#1] (60,150) -- (50,190);
}

newcommand{addtshirt}[1]{
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,122.1537) .. (59,150) -- cycle;
}

newcommand{addshorthair}[1]{
path[fill=#1, xshift=-5pt] (145.7190,108.2466) .. controls (151.7052,104.8240) and (153.2448,84.3447) .. (149.6842,70.0799) .. controls (131.5276,-0.3291) and (29.6371,22.9015) .. (47.7644,90.9328) .. controls (49.6989,62.9120) and (80.4610,40.0060) .. (101.1924,59.4599) .. controls (128.6626,85.2375) and (139.4074,111.8552) .. (145.7190,108.2466) -- cycle;
}

newcommand{addwizzard}{
path[fill=BlueViolet!50!Pink,line width=1pt,yshift=-40pt,rotate=5,xshift=32pt]
(20,100)--(60,0)--(100,100);
pgftext[at=pgfpoint{71}{-15}, left, base]{color{Gold}EightStarBold}
pgftext[at=pgfpoint{63}{0}, left, base]{color{Gold}EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{15}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{30}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
draw[line width=6pt,color=black] (90,160) -- (60,210);
draw[line width=6pt,color=white] (85,168.333) -- (80,176.666);
}

newcommand{makeeinstein}[1]{
path[fill=#1,xshift=-4pt] (24.7738,59.7679) .. controls (31.3318,44.0108) and (53.1939,44.5256) .. (52.1285,41.2094) .. controls (51.4718,28.9400) and (30.1562,26.0780) .. (30.1562,26.0780) .. controls (48.5184,20.6686) and (79.2723,56.9617) .. (62.4298,11.1490) .. controls (65.1702,13.6709) and (88.0663,32.6096) .. (85.8201,7.5499) .. controls (87.7073,21.1456) and (96.9496,45.9959) .. (104.3286,23.2724) .. controls (113.1425,-15.9325) and (101.8773,49.6572) .. (138.4988,13.8484) .. controls (141.5713,17.0755) and (121.2714,39.5689) .. (139.2365,36.1290) .. controls (136.0271,66.8833) and (155.4874,23.7659) .. (155.4874,23.7659) .. controls (155.4874,23.7659) and (151.7518,45.0675) .. (147.8705,54.3986) .. controls (147.8705,54.3986) and (173.2987,55.3029) .. (176.7812,61.7670) .. controls (124.2612,69.4624) and (206.6010,77.2343) .. (154.2298,77.2507) .. controls (158.6628,83.1536) and (135.1295,89.9115) .. (169.9992,90.5427) .. controls (93.3592,92.0258) and (132.6373,57.7941) .. (94.5654,45.5826) .. controls (60.1628,40.4228) and (57.2813,64.7295) .. (51.9497,70.3679) .. controls (53.2460,53.9344) and (41.0100,59.0530) .. (24.7738,59.7679) -- cycle;

draw[line width=5pt,color=#1,line cap=round] (96,80) -- (82,73);
draw[line width=5pt,color=#1,line cap=round] (50,69) -- (60,68);

}

newcommand{addbook}[2]{
path[fill=#1,rotate=20] (110,120) rectangle (150,180);
node[rotate=-20, color=white] at (73,180) {makebox[2cm][c]{#2}};
}

newcommand{addwater}[1]{
draw [decorate,decoration=snake, line width=3pt, color=#1] (0,200) -- (100,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (180,200) -- (220,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (50,210) -- (150,210);
draw [decorate,decoration=snake, line width=3pt, color=#1] (110,230) -- (250,230);
draw [decorate,decoration=snake, line width=3pt, color=#1] (20,240) -- (70,240);
draw [decorate,decoration=snake, line width=3pt, color=#1] (60,250) -- (250,250);
}


begin{document}

% grumpy
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Gold}
end{tikzpicture}
%
%Christian Hupfer
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwizzard
end{tikzpicture}
%
% short hairs
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat}
addtshirt{LightBlue!50!white}
addshirt{LightSlateGrey}
addshorthair{brown!50!Grey}
end{tikzpicture}
%
%Men in black
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Wheat}
addtshirt{white}
addshirt{black}
addtie{black}
addhat{black}
addsunglasses
end{tikzpicture}
%

% ducklings
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.6, xscale=0.6, inner sep=0pt, outer sep=0pt]
duck{Gold}
begin{scope}[xshift=300pt, scale=.3, yshift=400pt]
duck{Gold}
end{scope}
begin{scope}[xshift=180pt, scale=.3, yshift=350pt]
duck{Gold}
end{scope}
begin{scope}[xshift=240pt, scale=.3, yshift=450pt]
duck{Gold}
end{scope}
end{tikzpicture}
%
% samcarter
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat!95!red}
addshirt{MidnightBlue}
addhair{OrangeRed!50!Brown}
end{tikzpicture}
%
% hair
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhair{SeaGreen}
end{tikzpicture}
%
% unicorn
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Pink}
addhair{MediumVioletRed}
addunicorn
end{tikzpicture}

% icecream
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addicecream{Wheat}{Plum}{Chocolate}
end{tikzpicture}
%
% sunglasses
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addsunglasses
end{tikzpicture}
%
% normal duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
end{tikzpicture}
% blue duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{SteelBlue}
end{tikzpicture}

% alien duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addalien
end{tikzpicture}
%
% hat duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhat{SaddleBrown}
end{tikzpicture}
%
% swimming
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwater{blue!50!cyan}
end{tikzpicture}
%
% Brazil colour duck for Paulo
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
definecolor{brazilgreen}{RGB}{0,155,58}
definecolor{brazilyellow}{RGB}{254,223,0}
definecolor{brazilblue}{RGB}{0,39,118}
duck{brazilyellow}
addshirt{brazilblue}
addshorthair{brazilgreen}
end{tikzpicture}

% prof. van duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold!40!white}
makeeinstein{gray!50!white}
addglasses{brown!70!black}
addbook{brown!70!black}{TeX}
end{tikzpicture}

end{document}





share|improve this answer





















  • 3





    You're currently 22 ducks short of your promise!

    – JPi
    Jul 27 '17 at 19:47






  • 4





    @JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

    – samcarter
    Jul 27 '17 at 19:48








  • 1





    You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

    – Ignasi
    Jul 28 '17 at 9:55






  • 2





    @CarLaTeX Guess I should learn how to write a package over the summer break :)

    – samcarter
    Jul 28 '17 at 10:42






  • 1





    Gimme 100 ducks because of the bounty! :D

    – Paulo Cereda
    Jul 29 '17 at 10:04



















56














documentclass{article}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{tikzpeople}
begin{document}
begin{tikzpicture}
node[duck,evil,minimum size=1.5cm] (B){};
end{tikzpicture}
end{document}


enter image description here



Without code ...



enter image description here






share|improve this answer





















  • 3





    tikzpeople don't have hands or wings (but can hold a sword and a shield)

    – Ulrike Fischer
    Jan 2 '17 at 13:36













  • Why the horns? Is it a devil duck?

    – jamesqf
    Jan 2 '17 at 22:16











  • @CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

    – cfr
    Jan 3 '17 at 2:57











  • never seen a duck with line up haircut. :)

    – CroCo
    Jan 3 '17 at 7:26






  • 1





    @jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

    – Steven B. Segletes
    Jan 3 '17 at 10:56





















35





+100









Here is what I have done till now (to be improved, of course).



enter image description here



This is my tikzducks.sty:



NeedsTeXFormat{LaTeX2e}
ProvidesPackage{tikzducks}[2016/01/05 All we need isdots ducks!]

RequirePackage{tikz}
usetikzlibrary{shapes.geometric,shapes.symbols,positioning,decorations.pathmorphing}
usetikzlibrary{shapes,arrows,decorations.markings}

RequirePackage{halloweenmath}

tikzset{%
pics/wing/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (1,0) to[bend left] (.7,-.6) to[bend left] cycle;
}},
pics/eye/.style={code={%
draw[fill=white] (-.1,-.05) ellipse (.3 and .2);
draw[fill=black] (0,0) circle[radius=.1];
}},
pics/paw/.style={code={%
draw[fill=orange] (0,0) -- (0,.8) -- (.1,.8) -- (.1,.05) -- (.8,.05) to[bend right] (.7,-.2) to[bend right] (.6,-.45) -- cycle;
}},
pics/body/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (.6,-1.2) to[bend right] (2,-2.4) to[bend right=70, smooth] (3.7,-.1) to[bend left] cycle;
}},
pics/head/.style={code={%
draw[fill=yellow] (0,0) circle[radius=.9];
}},
pics/closedbeak/.style={code={%
draw[fill=orange] (0,0) -- (-.35,.1) -- (-.65,-.3) -- (-.1,-.7) to[bend right=70] (.2,-.5) -- cycle;
}},
pics/openbeak/.style={code={%
draw[fill=orange] (0,0) -- (.5,.35) to[bend left=70] (.55,.25) -- (.23,-.29) -- (.3,-.7) to[bend left=70] (.25,-.75) -- (-.01,-.45) -- cycle;
}},
create duck coordinates/.style = {insert path={(0,0) coordinate (duck)}},
pics/duck/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic at (2.2,.8) {closedbeak};
pic[rotate=300] at (1.6,.9) {eye};
pic[xscale=1,yscale=-1,rotate=75] at (1.91,1.08) {eye};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create duckwithopenbeak coordinates/.style = {insert path={(0,0) coordinate (duckwithopenbeak)}},
pics/duckwithopenbeak/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic[rotate=300] at (1.94,1.06) {eye};
pic[rotate=-20] at (2.4,.9) {openbeak};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create bow coordinates/.style = {insert path={(1.3,1.8) coordinate (bow)}},
pics/bow/.style={code={%
draw[red, fill=pink, rounded corners] (0,0) -- (.7,.55) -- (.7,-.55) -- cycle;
draw[red, fill=pink, rounded corners] (0,0) -- (-.7,.55) -- (-.7,-.55) -- cycle;
draw[red, fill=pink] (0,0) circle [radius=1/4];
}},
pics/daisy/.style={code={%
foreach i in {0,45,...,325}
draw[blue, fill=white, rotate=i]
(0,0) .. controls ++(-30:1/2) and ++(30:1/2) .. cycle;
draw[orange, fill=yellow] circle [radius=1/8];
}},
create nacklace coordinates/.style = {insert path={(.6,.7) coordinate (nacklace)}},
pics/nacklace/.style={code={%
path (0,0) coordinate (nacklacebase);
pic at (nacklacebase) {daisy};
pic[below right=1em and 1em of nacklacebase] {daisy};
pic[below right=2em and 2em of nacklacebase] {daisy};
}},
create blackboard coordinates/.style = {insert path={(3.5,1.8) coordinate (blackboard)}},
pics/blackboard/.style={code={%
node at (0,0) [rectangle, fill=black, draw=brown, very thick,font={color{white}bfseriessmall},minimum height=10ex] {$ax^2+bx+c=0$};
}},
create glasses coordinates/.style = {insert path={(1.5,.8) coordinate (glasses)}},
pics/glasses/.style={code={%
node [circle, draw=blue, very thick,minimum height=1.1em] (rglass) {};
node[right=.5em of rglass, circle, draw=blue, very thick,minimum height=1.1em] (lglass) {};
coordinate[above left=.1em and .9em of rglass] (rrglass);
coordinate[below left=.5em and .1em of rrglass] (rrrglass);
coordinate[above right=.1em and .9em of lglass] (llglass);
coordinate[below right=.5em and .1em of llglass] (lllglass);
draw[draw=blue, very thick] (rglass) -- (lglass);
draw[draw=blue, very thick] (rglass) -- (rrglass) -- (rrrglass);
draw[draw=blue, very thick] (lglass) -- (llglass) -- (lllglass);
}},
create soccerball coordinates/.style = {insert path={(2.6,-1.1) coordinate (soccerball)}},
pics/soccerball/.style={code={%
draw[fill=white] (0,0) circle [radius=.9];
begin{scope}
clip (0,0) circle [radius=.9];
foreach i in {-.4,.4}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,.4) {};
foreach i in {-.8,0,.8}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,-.4) {};
end{scope}
}},
create befana coordinates/.style = {insert path={(0,0) coordinate (befana)}},
pics/befana/.style={code={%
node {$displaystylemathwitch$};
}},
create ghost coordinates/.style = {insert path={(-.8,-.12) coordinate (ghost)}},
pics/ghost/.style={code={%
node {$xrightswishingghost{mspace{30mu}}$};
}},
create help coordinates/.style = {insert path={(4.6,2.3) coordinate (help)}},
pics/help/.style={code={%
node[draw, fill=white, shape=starburst, text width=5.7em, text centered] (helpnode) {%
Help! \ A texttt{textbackslash phantom}!
};
coordinate[below left=-.1em and -0.3em of helpnode] (lhelpnode);
coordinate[below right=0.35em and -1.5em of helpnode] (rhelpnode);
coordinate[below left=2.3em and 1.1em of helpnode] (bhelpnode);
coordinate[below left=-.3em and -0.4em of helpnode] (llhelpnode);
coordinate[below right=0em and -.9em of helpnode] (rrhelpnode);
path[fill=white] (llhelpnode) -- (bhelpnode) -- (rrhelpnode);
draw[fill=white] (lhelpnode) -- (bhelpnode) -- (rhelpnode);
}},
create righttooth coordinates/.style = {insert path={(2.11,.1) coordinate (righttooth)}},
create lefttooth coordinates/.style = {insert path={(2.29,.15) coordinate (lefttooth)}},
pics/tooth/.style={code={%
draw[fill=white] (0,0) -- (.05,-.2) -- (.11,.1);
}},
create cloak coordinates/.style = {insert path={(.65,.69) coordinate (cloak)}},
pics/cloak/.style={code={%
draw[white,fill=black] (0,0) to[bend left=10] (-2.1,.1)
decorate [decoration={snake, segment length=10pt, amplitude=3pt}]
{to (-2,-1.4)} to[bend left=9] (.3,-.4) to[bend left=30] cycle;
draw[white,fill=black] (0,0) to[bend left=10] (-.1,.7) to[bend right=15] (.7,-.3) -- (.3,-.4) to[bend left=30] cycle;
}},
pics/batflock/.style={code={%
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=-50] {$mathbat$};},
mark=at position 0.04 with {node[scale=0.5,rotate=-40] {$mathbat$};},
mark=at position 0.07 with {node[scale=0.6,rotate=-35] {$mathbat$};},
mark=at position 0.11 with {node[scale=0.7,rotate=-30] {$mathbat$};},
mark=at position 0.15 with {node[scale=0.8,rotate=-20] {$mathbat$};},
mark=at position 0.20 with {node[scale=0.9,rotate=-10] {$mathbat$};},
mark=at position 0.25 with {node[scale=1.0,rotate=5] {$mathbat$};},
mark=at position 0.31 with {node[scale=1.1,rotate=15] {$mathbat$};},
mark=at position 0.38 with {node[scale=1.2,rotate=15] {$mathbat$};},
mark=at position 0.44 with {node[scale=1.3,rotate=0] {$mathbat$};},
mark=at position 0.50 with {node[scale=1.4,rotate=-15] {$mathbat$};},
mark=at position 0.57 with {node[scale=1.5,rotate=-25] {$mathbat$};},
mark=at position 0.65 with {node[scale=1.6,rotate=-30] {$mathbat$};},
mark=at position 0.73 with {node[scale=1.7,rotate=-35] {$mathbat$};},
mark=at position 0.81 with {node[scale=1.8,rotate=-40] {$mathbat$};},
mark=at position 0.89 with {node[scale=1.9,rotate=-42] {$mathbat$};},
}}] plot[smooth, tension=1] coordinates {(0,0) (2.5,1) (1,3) (7,4.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.06 with {node[scale=0.5,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.11 with {node[scale=0.6,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.17 with {node[scale=0.7,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.23 with {node[scale=0.8,rotate=5] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.30 with {node[scale=0.9,rotate=0] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.38 with {node[scale=1.0,rotate=-10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.48 with {node[scale=1.1,rotate=-20] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.58 with {node[scale=1.2,rotate=-30] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.68 with {node[scale=1.3,rotate=-40] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.79 with {node[scale=1.4,rotate=-41] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.90 with {node[scale=1.5,rotate=-42] {$xleftflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(1.7,1.3) (0,2.7) (2,4.5) (5,5.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.16 with {node[scale=0.4,rotate=-5] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.25 with {node[scale=0.5,rotate=-25] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.34 with {node[scale=0.6,rotate=-36] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.44 with {node[scale=0.7,rotate=-38] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.55 with {node[scale=0.8,rotate=-40] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.67 with {node[scale=0.9,rotate=-42] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.81 with {node[scale=1.0,rotate=-46] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.95 with {node[scale=1.1,rotate=-50] {$xrightflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(2.5,2) (2,2.7) (6.5,3.3)};
}},
}

newcommand{duck}{%
begin{tikzpicture}
pic {duck};
end{tikzpicture}
}

newcommand{daisyduck}{%
begin{tikzpicture}
pic {duck};
path[create nacklace coordinates];
pic at (nacklace) {nacklace};
end{tikzpicture}
}

newcommand{femaleduck}{%
begin{tikzpicture}
pic {duck};
path[create bow coordinates];
pic[rotate=35] at (bow) {bow};
end{tikzpicture}
}

newcommand{mathduck}{%
begin{tikzpicture}
path[create blackboard coordinates];
pic at (blackboard) {blackboard};
pic {duck};
path[create glasses coordinates];
pic[rotate=30, transform shape] at (glasses) {glasses};
end{tikzpicture}
}

newcommand{soccerduck}{%
begin{tikzpicture}
pic {duck};
path[create soccerball coordinates];
pic[rotate=30] at (soccerball) {soccerball};
end{tikzpicture}
}

newcommand{befanaduck}{%
begin{tikzpicture}
path[use as bounding box] (-2.5,-1.5) rectangle (2.5,1.5);
pic[scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (3.17,1.59) {duck};
path[create befana coordinates];
pic[transform canvas={scale=4}] at (befana) {befana};
pic[rotate=330,scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (paw) {paw};
end{tikzpicture}
}

newcommand{ghostduck}{%
begin{tikzpicture}
path[use as bounding box] (-6,-2.5) rectangle (6,2.5);
path[create ghost coordinates];
pic[transform canvas={scale=7}] at (ghost) {ghost};
pic {duckwithopenbeak};
path[create help coordinates];
pic at (help) {help};
end{tikzpicture}
}

newcommand{vampireduck}{%
begin{tikzpicture}
pic at (-6,-1) {batflock};
path[create righttooth coordinates];
pic at (righttooth) {tooth};
path[create lefttooth coordinates];
pic at (lefttooth) {tooth};
pic {duck};
path[create cloak coordinates];
pic at (cloak) {cloak};
pic at (-1,0) {wing};
end{tikzpicture}
}


This is the code of the presentation:



% arara: pdflatex
% arara: convert: {density: 160, otheroptions: -dispose previous -delay 140 -loop 1, format: gif}
documentclass{beamer}
usepackage{cprotect}
usepackage{tikzducks}

usetheme{Madrid}
setbeamertemplate{navigation symbols}{}
cprotecttitle{Quack guide to verb|tikzducks| package}
subtitle{Actually, some examples to be improved and transformed into a package}
author{CarLaTeX}
institute{Duck fan club}

begin{document}
begin{frame}[plain]
titlepage
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Standard version}
Command:
begin{center}
verb|duck|
end{center}
Result:
begin{figure}
centering
duck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Female version}
Command:
begin{center}
verb|femaleduck|
end{center}
Result:
begin{figure}
centering
femaleduck
end{figure}
Accessory verb|pic| available: verb|bow|
begin{tikzpicture}
pic[scale=.7, transform canvas={scale=.7}] at (.6,.2) {bow};
end{tikzpicture}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Daisy version}
Command:
begin{center}
verb|daisyduck|
end{center}
Result:
begin{figure}
centering
daisyduck
end{figure}
Accessory verb|pic|s available: verb|daisy|
begin{tikzpicture}
pic[scale=.75, transform canvas={scale=.75}] at (.35,.25) {daisy};
end{tikzpicture}
hspace{1em} and verb|nacklace|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.5,1) {nacklace};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Mathematician version}
Command:
begin{center}
verb|mathduck|
end{center}
Result:
begin{figure}
centering
mathduck
end{figure}
Accessory verb|pic|s available:
verb|glasses|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.7,.2) {glasses};
end{tikzpicture}
hspace{2.4em} and verb|blackboard|
begin{tikzpicture}
pic[scale=.4, transform canvas={scale=.4}] at (1.4,.5) {blackboard};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Soccer player version}
Command:
begin{center}
verb|soccerduck|
end{center}
Result:
begin{figure}
centering
soccerduck
end{figure}
Accessory verb|pic| available: verb|soccerball|
begin{tikzpicture}
pic[scale=.5,transform canvas={scale=.5},transform shape] at (.5,.3) {soccerball};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{The Befana duckdots}
Using verb|displaystylemathwitch| $displaystylemathwitch$ from the gorgeous Gustavo Mezzetti's package verb|halloweenmath|, here is the Befanafootnote{For anyone who doesn't know who the Befana is, she's a sort of female version of Santa Claus, who brings gifts or coal (to good and bad children, respectively) every year on January, 6textsuperscript{th}.} duck!

Command:
begin{center}
verb|befanaduck|
end{center}
Result:
begin{figure}
centering
befanaduck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots the ghost duckdots}
Using verb|xrightswishingghost| $xrightswishingghost{}$, again from verb|halloweenmath| package, here is the ghost duck!\
Command:
begin{center}
verb|ghostduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.7textwidth}{!}{%
ghostduck
}
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots and the vampire duck!}
The vampire duck, with bats from verb|halloweenmath| package!

Command:
begin{center}
verb|vampireduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.5textwidth}{!}{%
vampireduck
}
end{figure}
end{frame}
end{document}





share|improve this answer


























  • +1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

    – GuM
    Jan 8 '17 at 1:57






  • 1





    Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

    – Chris H
    Jan 11 '17 at 11:21











  • @ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

    – CarLaTeX
    Jan 11 '17 at 13:16











  • Really lovely! (:-) But why not node {$displaystylemathwitch$}?

    – GuM
    Jan 11 '17 at 20:22











  • I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

    – GuM
    Jan 12 '17 at 0:39



















12














Since David Carlisle is too shy to add his solutions here, I've copied them from chat for him and added as community wiki.



documentclass{article}
usepackage{color}
begin{document}
Football duck:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
{thicklinesmultiput(30,40)(9,0){5}{line(0,1){17}}}%
put(70,42){circle*{10}}
end{picture}

Pineapple pizza duck dedicated to me:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
put(70,42){{color[RGB]{230,230,200}circle*{40}}}
put(70,42){{color{yellow}rule{2pt}{2pt}}}
put(65,38){{color{yellow}rule{2pt}{2pt}}}
put(66,42){{color{yellow}rule{2pt}{2pt}}}
put(72,36){{color{yellow}rule{2pt}{2pt}}}
put(75,42){{color{yellow}rule{2pt}{2pt}}}
put(72,46){{color{yellow}rule{2pt}{2pt}}}
put(69,43){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(65,36){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(62,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(69,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(71,38){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(66,45){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
end{picture}
end{document}


enter image description here






share|improve this answer





















  • 2





    I'm too shy, it says so above.

    – David Carlisle
    Sep 8 '17 at 10:25



















8
















I'm pretty sure that somebody is going to complain that this answer is insufficiently serious and unworthy of this site's lofty aims. To the critics say I, you clearly spend too little time mucking about in the river.





True love with a soul mate ...



documentclass[border=10pt,x11names,dvipsnames,svgnames]{standalone}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
newcounter{duckno}
tikzset{
hwyaden/.pic={
tikzset{hwyaden/.cd, shading/.style={#1}}
stepcounter{duckno}
begin{scope}[local bounding box/.expanded=htheduckno]
shade [hwyaden/shading] (0,0) -- (-mathhwyaden,0) -- (120:{6*mathhwyaden}) arc (120:60:{6*mathhwyaden}) -- (mathhwyaden,0) -- cycle;
end{scope}
clip ([yshift={-4*mathhwyaden},xshift={-2*mathhwyaden}]htheduckno.south west) coordinate (a) rectangle ([yshift={6*mathhwyaden}, xshift={2*mathhwyaden}]htheduckno.east |- a) coordinate (e);
shade [top color=blue!50!cyan, bottom color=blue!75!black!25, middle color=blue!50!black, decorate, decoration={snake, amplitude=1pt, segment length=mathhwyaden}] ([xshift=mathhwyaden, yshift=-mathhwyaden]e) -| ([xshift=-mathhwyaden, yshift=-mathhwyaden]a) -| cycle;
},
hwyaden/.search also={/tikz/},
hwyaden/.cd,
shading/.style=black,
size/.store in=mathhwyaden,
size=10pt,
}
begin{document}
begin{tikzpicture}
pic {hwyaden={ball color=brown, postaction={outer color=Brown, inner color=Apricot, opacity=.5}}};
pic at (60pt,0) {hwyaden={preaction={outer color=DarkGreen, inner color=ForestGreen, opacity=1}, ball color=LimeGreen, opacity=.75, postaction={outer color=DarkGreen, inner color=Gold, opacity=.75}}};
node (d) [anchor=mid west, white, font=itshapebfseries, align=left] at ([yshift={-5*mathhwyaden}]h1.west) {Heads down, tails up,\Dabbling free!};
node [white, anchor=north east, font=footnotesizeitshape] at (d.south -| current bounding box.east) {--- Kenneth Grahame};
end{tikzpicture}
end{document}


A duck with her drake ...



duck & drake






share|improve this answer


























  • google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

    – CarLaTeX
    Jul 29 '17 at 3:18











  • @CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

    – cfr
    Jul 29 '17 at 3:26











  • I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

    – CarLaTeX
    Jul 29 '17 at 3:33











  • @CarLaTeX My duck and her drake aspire to be peacocks.

    – cfr
    Jul 29 '17 at 3:35






  • 1





    @samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

    – cfr
    Jul 29 '17 at 16:06



















6















TikZPicducks



documentclass{standalone}

begin{document}

setlength{unitlength}{1.5cm}
begin{picture}(4.2,4.5)
thicklines%

% bill
qbezier(0.65,2.95)(-0.1,1.75)(1.68,2.73)
qbezier(0.65,2.95)(0.9,3.05)(1.14,2.80)
qbezier(1.14,2.80)(1.35,2.65)(1.68,2.73)

% head
qbezier(0.65,2.95)(0.6,4.15)(1.68,4.24)
qbezier(1.68,4.24)(2.9,4.1)(2.53,2.4)

% body
qbezier(0.8,2.32)(-0.6,1.1)(0.8,0.3)
qbezier(0.8,0.3)(2,-0.1)(3.5,0.65)
qbezier(3.5,0.65)(4.6,1.5)(3.5,2.83)
qbezier(3.5,2.83)(3,2.5)(2.53,2.4)

% right eye
qbezier(1.3,3.2)(1.38,3.45)(1.6,3.4)
qbezier(1.6,3.4)(1.73,3.3)(1.67,3.1)
qbezier(1.67,3.1)(1.6,2.9)(1.45,2.93)
qbezier(1.45,2.93)(1.27,2.95)(1.3,3.2)
put(1.53,3.13){circle*{0.17}}

% left eye -0.53, +0.12
qbezier(0.77,3.32)(0.84,3.57)(1.03,3.5)
qbezier(1.03,3.5)(1.12,3.4)(1.04,3.22)
qbezier(1.04,3.22)(0.97,3.07)(0.87,3.07)
qbezier(0.87,3.07)(0.72,3.09)(0.77,3.32)
put(0.95,3.27){circle*{0.14}}

end{picture}

end{document}


enter image description here






share|improve this answer





















  • 2





    David will be proud of you! Great!

    – CarLaTeX
    Jan 23 at 17:23











  • @CarLaTeX I have to make up for my theft of the parabola question :)

    – samcarter
    Jan 23 at 17:26











  • Very fair from you, lol!

    – CarLaTeX
    Jan 23 at 17:27











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "85"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f346695%2fhow-can-we-draw-a-duck-in-order-to-create-a-tikzducks-package-and-store-it-in-c%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























6 Answers
6






active

oldest

votes








6 Answers
6






active

oldest

votes









active

oldest

votes






active

oldest

votes









80





+150










No new ducks will be added to the question, instead this project moved on to become a latex package. Please visit the project repository at https://github.com/samcarter/tikzducks or have a look at https://www.ctan.org/pkg/tikzducks if you want to see new ducks :)




enter image description here



documentclass{article}
usepackage[svgnames]{xcolor}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}

usepackage[paperwidth=38cm,paperheight=42cm,margin=1cm]{geometry}

usepackage{bbding}

newcommand{duck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (61.6632,119.6616) .. (95.1826,113) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{grumpyduck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (70.9472,97.0244) .. (85.1826,120) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{addalien}{%
draw[line width=3pt,color=YellowGreen] (110,62) -- (130,20);
draw[line width=3pt,color=YellowGreen] (72,58) -- (60,15);
path[fill=YellowGreen] (130,20) circle (0.2cm);
path[fill=YellowGreen] (60,15) circle (0.2cm);
}

newcommand{addhat}[1]{%
path[fill=#1] (90,55) ellipse (1.3cm and 0.25cm);
path[fill=#1] (90,30) ellipse (0.7cm and 0.2cm);
path[fill=#1] (115,30) rectangle (65,55);
}

newcommand{addsunglasses}{
draw[line width=3pt,color=black] (48,95) arc (190:370:20) ;
path[draw=black,line width=3pt] (95,90) -- (130,100);
path[fill=black, rotate=20] (111,58) ellipse (0.4cm and 0.4cm);
path[fill=black, rotate=20] (80,60) ellipse (0.37cm and 0.37cm);
}

newcommand{addglasses}[1]{
draw[line width=2pt,color=#1] (62,80) arc (267:297:20) ;
path[draw=#1,line width=2pt] (93,88) -- (130,100);
path[draw=#1,line width=2pt, rotate=20] (107,58) ellipse (0.35cm and 0.35cm);
path[draw=#1,line width=2pt, rotate=20] (78,61) ellipse (0.32cm and 0.32cm);
}

newcommand{addicecream}[3]{
path[draw=Sienna,fill=Goldenrod,line width=1pt,yshift=50pt,rotate=20,xshift=50pt]
(45,60)--(60,120)--(75,60);
path[draw=Sienna, fill=Goldenrod, rotate=20,line width=1pt] (144,118) ellipse (0.4cm and 0.25cm);
path[fill=#1, rotate=20] (138,116) circle (0.3cm);
path[fill=#2, rotate=20] (148,116) circle (0.3cm);
path[fill=#3, rotate=20] (142,102) circle (0.3cm);
}

newcommand{addunicorn}{
path[draw=VioletRed,fill=Pink,line width=1pt,yshift=20pt,rotate=-25,xshift=0pt]
(50,60)--(60,20)--(70,60);
}

newcommand{addhair}[1]{%
path[fill=#1, xshift=-5pt] (151.3277,174.3473) .. controls (157.7099,171.1213) and (164.7938,167.8644) .. (168.7230,161.6896) .. controls (164.8427,161.5316) and (153.5102,155.4255) .. (162.1164,152.9395) .. controls (169.4207,153.1460) and (176.4092,149.5358) .. (179.3920,142.6587) .. controls (185.5577,133.4026) and (172.4051,138.2448) .. (169.0163,134.3455) .. controls (174.7801,132.5948) and (184.6532,131.7138) .. (187.4798,127.5635) .. controls (176.4675,125.1191) and (163.1258,123.3733) .. (156.8817,112.6068) .. controls (152.4387,98.5734) and (153.2098,83.5059) .. (149.6492,69.2411) .. controls (131.4926,-1.1678) and (29.6020,22.0627) .. (47.7294,90.0940) .. controls (49.6639,62.0732) and (72.5401,38.6998) .. (96.3583,54.2220) .. controls (130.5162,76.1752) and (139.7469,117.8581) .. (115.3043,143.8986) .. controls (115.2213,148.9109) and (117.2762,158.3403) .. (124.2981,163.2993) .. controls (131.3200,168.2584) and (141.2814,171.4676) .. (151.3277,174.3473) -- cycle;
}

newcommand{addshirt}[1]{%
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,180) -- cycle;
}

newcommand{addtie}[1]{
draw[line width=10pt,color=#1] (60,150) -- (50,190);
}

newcommand{addtshirt}[1]{
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,122.1537) .. (59,150) -- cycle;
}

newcommand{addshorthair}[1]{
path[fill=#1, xshift=-5pt] (145.7190,108.2466) .. controls (151.7052,104.8240) and (153.2448,84.3447) .. (149.6842,70.0799) .. controls (131.5276,-0.3291) and (29.6371,22.9015) .. (47.7644,90.9328) .. controls (49.6989,62.9120) and (80.4610,40.0060) .. (101.1924,59.4599) .. controls (128.6626,85.2375) and (139.4074,111.8552) .. (145.7190,108.2466) -- cycle;
}

newcommand{addwizzard}{
path[fill=BlueViolet!50!Pink,line width=1pt,yshift=-40pt,rotate=5,xshift=32pt]
(20,100)--(60,0)--(100,100);
pgftext[at=pgfpoint{71}{-15}, left, base]{color{Gold}EightStarBold}
pgftext[at=pgfpoint{63}{0}, left, base]{color{Gold}EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{15}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{30}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
draw[line width=6pt,color=black] (90,160) -- (60,210);
draw[line width=6pt,color=white] (85,168.333) -- (80,176.666);
}

newcommand{makeeinstein}[1]{
path[fill=#1,xshift=-4pt] (24.7738,59.7679) .. controls (31.3318,44.0108) and (53.1939,44.5256) .. (52.1285,41.2094) .. controls (51.4718,28.9400) and (30.1562,26.0780) .. (30.1562,26.0780) .. controls (48.5184,20.6686) and (79.2723,56.9617) .. (62.4298,11.1490) .. controls (65.1702,13.6709) and (88.0663,32.6096) .. (85.8201,7.5499) .. controls (87.7073,21.1456) and (96.9496,45.9959) .. (104.3286,23.2724) .. controls (113.1425,-15.9325) and (101.8773,49.6572) .. (138.4988,13.8484) .. controls (141.5713,17.0755) and (121.2714,39.5689) .. (139.2365,36.1290) .. controls (136.0271,66.8833) and (155.4874,23.7659) .. (155.4874,23.7659) .. controls (155.4874,23.7659) and (151.7518,45.0675) .. (147.8705,54.3986) .. controls (147.8705,54.3986) and (173.2987,55.3029) .. (176.7812,61.7670) .. controls (124.2612,69.4624) and (206.6010,77.2343) .. (154.2298,77.2507) .. controls (158.6628,83.1536) and (135.1295,89.9115) .. (169.9992,90.5427) .. controls (93.3592,92.0258) and (132.6373,57.7941) .. (94.5654,45.5826) .. controls (60.1628,40.4228) and (57.2813,64.7295) .. (51.9497,70.3679) .. controls (53.2460,53.9344) and (41.0100,59.0530) .. (24.7738,59.7679) -- cycle;

draw[line width=5pt,color=#1,line cap=round] (96,80) -- (82,73);
draw[line width=5pt,color=#1,line cap=round] (50,69) -- (60,68);

}

newcommand{addbook}[2]{
path[fill=#1,rotate=20] (110,120) rectangle (150,180);
node[rotate=-20, color=white] at (73,180) {makebox[2cm][c]{#2}};
}

newcommand{addwater}[1]{
draw [decorate,decoration=snake, line width=3pt, color=#1] (0,200) -- (100,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (180,200) -- (220,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (50,210) -- (150,210);
draw [decorate,decoration=snake, line width=3pt, color=#1] (110,230) -- (250,230);
draw [decorate,decoration=snake, line width=3pt, color=#1] (20,240) -- (70,240);
draw [decorate,decoration=snake, line width=3pt, color=#1] (60,250) -- (250,250);
}


begin{document}

% grumpy
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Gold}
end{tikzpicture}
%
%Christian Hupfer
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwizzard
end{tikzpicture}
%
% short hairs
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat}
addtshirt{LightBlue!50!white}
addshirt{LightSlateGrey}
addshorthair{brown!50!Grey}
end{tikzpicture}
%
%Men in black
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Wheat}
addtshirt{white}
addshirt{black}
addtie{black}
addhat{black}
addsunglasses
end{tikzpicture}
%

% ducklings
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.6, xscale=0.6, inner sep=0pt, outer sep=0pt]
duck{Gold}
begin{scope}[xshift=300pt, scale=.3, yshift=400pt]
duck{Gold}
end{scope}
begin{scope}[xshift=180pt, scale=.3, yshift=350pt]
duck{Gold}
end{scope}
begin{scope}[xshift=240pt, scale=.3, yshift=450pt]
duck{Gold}
end{scope}
end{tikzpicture}
%
% samcarter
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat!95!red}
addshirt{MidnightBlue}
addhair{OrangeRed!50!Brown}
end{tikzpicture}
%
% hair
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhair{SeaGreen}
end{tikzpicture}
%
% unicorn
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Pink}
addhair{MediumVioletRed}
addunicorn
end{tikzpicture}

% icecream
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addicecream{Wheat}{Plum}{Chocolate}
end{tikzpicture}
%
% sunglasses
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addsunglasses
end{tikzpicture}
%
% normal duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
end{tikzpicture}
% blue duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{SteelBlue}
end{tikzpicture}

% alien duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addalien
end{tikzpicture}
%
% hat duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhat{SaddleBrown}
end{tikzpicture}
%
% swimming
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwater{blue!50!cyan}
end{tikzpicture}
%
% Brazil colour duck for Paulo
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
definecolor{brazilgreen}{RGB}{0,155,58}
definecolor{brazilyellow}{RGB}{254,223,0}
definecolor{brazilblue}{RGB}{0,39,118}
duck{brazilyellow}
addshirt{brazilblue}
addshorthair{brazilgreen}
end{tikzpicture}

% prof. van duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold!40!white}
makeeinstein{gray!50!white}
addglasses{brown!70!black}
addbook{brown!70!black}{TeX}
end{tikzpicture}

end{document}





share|improve this answer





















  • 3





    You're currently 22 ducks short of your promise!

    – JPi
    Jul 27 '17 at 19:47






  • 4





    @JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

    – samcarter
    Jul 27 '17 at 19:48








  • 1





    You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

    – Ignasi
    Jul 28 '17 at 9:55






  • 2





    @CarLaTeX Guess I should learn how to write a package over the summer break :)

    – samcarter
    Jul 28 '17 at 10:42






  • 1





    Gimme 100 ducks because of the bounty! :D

    – Paulo Cereda
    Jul 29 '17 at 10:04
















80





+150










No new ducks will be added to the question, instead this project moved on to become a latex package. Please visit the project repository at https://github.com/samcarter/tikzducks or have a look at https://www.ctan.org/pkg/tikzducks if you want to see new ducks :)




enter image description here



documentclass{article}
usepackage[svgnames]{xcolor}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}

usepackage[paperwidth=38cm,paperheight=42cm,margin=1cm]{geometry}

usepackage{bbding}

newcommand{duck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (61.6632,119.6616) .. (95.1826,113) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{grumpyduck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (70.9472,97.0244) .. (85.1826,120) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{addalien}{%
draw[line width=3pt,color=YellowGreen] (110,62) -- (130,20);
draw[line width=3pt,color=YellowGreen] (72,58) -- (60,15);
path[fill=YellowGreen] (130,20) circle (0.2cm);
path[fill=YellowGreen] (60,15) circle (0.2cm);
}

newcommand{addhat}[1]{%
path[fill=#1] (90,55) ellipse (1.3cm and 0.25cm);
path[fill=#1] (90,30) ellipse (0.7cm and 0.2cm);
path[fill=#1] (115,30) rectangle (65,55);
}

newcommand{addsunglasses}{
draw[line width=3pt,color=black] (48,95) arc (190:370:20) ;
path[draw=black,line width=3pt] (95,90) -- (130,100);
path[fill=black, rotate=20] (111,58) ellipse (0.4cm and 0.4cm);
path[fill=black, rotate=20] (80,60) ellipse (0.37cm and 0.37cm);
}

newcommand{addglasses}[1]{
draw[line width=2pt,color=#1] (62,80) arc (267:297:20) ;
path[draw=#1,line width=2pt] (93,88) -- (130,100);
path[draw=#1,line width=2pt, rotate=20] (107,58) ellipse (0.35cm and 0.35cm);
path[draw=#1,line width=2pt, rotate=20] (78,61) ellipse (0.32cm and 0.32cm);
}

newcommand{addicecream}[3]{
path[draw=Sienna,fill=Goldenrod,line width=1pt,yshift=50pt,rotate=20,xshift=50pt]
(45,60)--(60,120)--(75,60);
path[draw=Sienna, fill=Goldenrod, rotate=20,line width=1pt] (144,118) ellipse (0.4cm and 0.25cm);
path[fill=#1, rotate=20] (138,116) circle (0.3cm);
path[fill=#2, rotate=20] (148,116) circle (0.3cm);
path[fill=#3, rotate=20] (142,102) circle (0.3cm);
}

newcommand{addunicorn}{
path[draw=VioletRed,fill=Pink,line width=1pt,yshift=20pt,rotate=-25,xshift=0pt]
(50,60)--(60,20)--(70,60);
}

newcommand{addhair}[1]{%
path[fill=#1, xshift=-5pt] (151.3277,174.3473) .. controls (157.7099,171.1213) and (164.7938,167.8644) .. (168.7230,161.6896) .. controls (164.8427,161.5316) and (153.5102,155.4255) .. (162.1164,152.9395) .. controls (169.4207,153.1460) and (176.4092,149.5358) .. (179.3920,142.6587) .. controls (185.5577,133.4026) and (172.4051,138.2448) .. (169.0163,134.3455) .. controls (174.7801,132.5948) and (184.6532,131.7138) .. (187.4798,127.5635) .. controls (176.4675,125.1191) and (163.1258,123.3733) .. (156.8817,112.6068) .. controls (152.4387,98.5734) and (153.2098,83.5059) .. (149.6492,69.2411) .. controls (131.4926,-1.1678) and (29.6020,22.0627) .. (47.7294,90.0940) .. controls (49.6639,62.0732) and (72.5401,38.6998) .. (96.3583,54.2220) .. controls (130.5162,76.1752) and (139.7469,117.8581) .. (115.3043,143.8986) .. controls (115.2213,148.9109) and (117.2762,158.3403) .. (124.2981,163.2993) .. controls (131.3200,168.2584) and (141.2814,171.4676) .. (151.3277,174.3473) -- cycle;
}

newcommand{addshirt}[1]{%
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,180) -- cycle;
}

newcommand{addtie}[1]{
draw[line width=10pt,color=#1] (60,150) -- (50,190);
}

newcommand{addtshirt}[1]{
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,122.1537) .. (59,150) -- cycle;
}

newcommand{addshorthair}[1]{
path[fill=#1, xshift=-5pt] (145.7190,108.2466) .. controls (151.7052,104.8240) and (153.2448,84.3447) .. (149.6842,70.0799) .. controls (131.5276,-0.3291) and (29.6371,22.9015) .. (47.7644,90.9328) .. controls (49.6989,62.9120) and (80.4610,40.0060) .. (101.1924,59.4599) .. controls (128.6626,85.2375) and (139.4074,111.8552) .. (145.7190,108.2466) -- cycle;
}

newcommand{addwizzard}{
path[fill=BlueViolet!50!Pink,line width=1pt,yshift=-40pt,rotate=5,xshift=32pt]
(20,100)--(60,0)--(100,100);
pgftext[at=pgfpoint{71}{-15}, left, base]{color{Gold}EightStarBold}
pgftext[at=pgfpoint{63}{0}, left, base]{color{Gold}EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{15}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{30}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
draw[line width=6pt,color=black] (90,160) -- (60,210);
draw[line width=6pt,color=white] (85,168.333) -- (80,176.666);
}

newcommand{makeeinstein}[1]{
path[fill=#1,xshift=-4pt] (24.7738,59.7679) .. controls (31.3318,44.0108) and (53.1939,44.5256) .. (52.1285,41.2094) .. controls (51.4718,28.9400) and (30.1562,26.0780) .. (30.1562,26.0780) .. controls (48.5184,20.6686) and (79.2723,56.9617) .. (62.4298,11.1490) .. controls (65.1702,13.6709) and (88.0663,32.6096) .. (85.8201,7.5499) .. controls (87.7073,21.1456) and (96.9496,45.9959) .. (104.3286,23.2724) .. controls (113.1425,-15.9325) and (101.8773,49.6572) .. (138.4988,13.8484) .. controls (141.5713,17.0755) and (121.2714,39.5689) .. (139.2365,36.1290) .. controls (136.0271,66.8833) and (155.4874,23.7659) .. (155.4874,23.7659) .. controls (155.4874,23.7659) and (151.7518,45.0675) .. (147.8705,54.3986) .. controls (147.8705,54.3986) and (173.2987,55.3029) .. (176.7812,61.7670) .. controls (124.2612,69.4624) and (206.6010,77.2343) .. (154.2298,77.2507) .. controls (158.6628,83.1536) and (135.1295,89.9115) .. (169.9992,90.5427) .. controls (93.3592,92.0258) and (132.6373,57.7941) .. (94.5654,45.5826) .. controls (60.1628,40.4228) and (57.2813,64.7295) .. (51.9497,70.3679) .. controls (53.2460,53.9344) and (41.0100,59.0530) .. (24.7738,59.7679) -- cycle;

draw[line width=5pt,color=#1,line cap=round] (96,80) -- (82,73);
draw[line width=5pt,color=#1,line cap=round] (50,69) -- (60,68);

}

newcommand{addbook}[2]{
path[fill=#1,rotate=20] (110,120) rectangle (150,180);
node[rotate=-20, color=white] at (73,180) {makebox[2cm][c]{#2}};
}

newcommand{addwater}[1]{
draw [decorate,decoration=snake, line width=3pt, color=#1] (0,200) -- (100,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (180,200) -- (220,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (50,210) -- (150,210);
draw [decorate,decoration=snake, line width=3pt, color=#1] (110,230) -- (250,230);
draw [decorate,decoration=snake, line width=3pt, color=#1] (20,240) -- (70,240);
draw [decorate,decoration=snake, line width=3pt, color=#1] (60,250) -- (250,250);
}


begin{document}

% grumpy
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Gold}
end{tikzpicture}
%
%Christian Hupfer
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwizzard
end{tikzpicture}
%
% short hairs
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat}
addtshirt{LightBlue!50!white}
addshirt{LightSlateGrey}
addshorthair{brown!50!Grey}
end{tikzpicture}
%
%Men in black
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Wheat}
addtshirt{white}
addshirt{black}
addtie{black}
addhat{black}
addsunglasses
end{tikzpicture}
%

% ducklings
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.6, xscale=0.6, inner sep=0pt, outer sep=0pt]
duck{Gold}
begin{scope}[xshift=300pt, scale=.3, yshift=400pt]
duck{Gold}
end{scope}
begin{scope}[xshift=180pt, scale=.3, yshift=350pt]
duck{Gold}
end{scope}
begin{scope}[xshift=240pt, scale=.3, yshift=450pt]
duck{Gold}
end{scope}
end{tikzpicture}
%
% samcarter
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat!95!red}
addshirt{MidnightBlue}
addhair{OrangeRed!50!Brown}
end{tikzpicture}
%
% hair
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhair{SeaGreen}
end{tikzpicture}
%
% unicorn
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Pink}
addhair{MediumVioletRed}
addunicorn
end{tikzpicture}

% icecream
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addicecream{Wheat}{Plum}{Chocolate}
end{tikzpicture}
%
% sunglasses
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addsunglasses
end{tikzpicture}
%
% normal duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
end{tikzpicture}
% blue duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{SteelBlue}
end{tikzpicture}

% alien duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addalien
end{tikzpicture}
%
% hat duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhat{SaddleBrown}
end{tikzpicture}
%
% swimming
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwater{blue!50!cyan}
end{tikzpicture}
%
% Brazil colour duck for Paulo
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
definecolor{brazilgreen}{RGB}{0,155,58}
definecolor{brazilyellow}{RGB}{254,223,0}
definecolor{brazilblue}{RGB}{0,39,118}
duck{brazilyellow}
addshirt{brazilblue}
addshorthair{brazilgreen}
end{tikzpicture}

% prof. van duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold!40!white}
makeeinstein{gray!50!white}
addglasses{brown!70!black}
addbook{brown!70!black}{TeX}
end{tikzpicture}

end{document}





share|improve this answer





















  • 3





    You're currently 22 ducks short of your promise!

    – JPi
    Jul 27 '17 at 19:47






  • 4





    @JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

    – samcarter
    Jul 27 '17 at 19:48








  • 1





    You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

    – Ignasi
    Jul 28 '17 at 9:55






  • 2





    @CarLaTeX Guess I should learn how to write a package over the summer break :)

    – samcarter
    Jul 28 '17 at 10:42






  • 1





    Gimme 100 ducks because of the bounty! :D

    – Paulo Cereda
    Jul 29 '17 at 10:04














80





+150







80





+150



80




+150






No new ducks will be added to the question, instead this project moved on to become a latex package. Please visit the project repository at https://github.com/samcarter/tikzducks or have a look at https://www.ctan.org/pkg/tikzducks if you want to see new ducks :)




enter image description here



documentclass{article}
usepackage[svgnames]{xcolor}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}

usepackage[paperwidth=38cm,paperheight=42cm,margin=1cm]{geometry}

usepackage{bbding}

newcommand{duck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (61.6632,119.6616) .. (95.1826,113) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{grumpyduck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (70.9472,97.0244) .. (85.1826,120) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{addalien}{%
draw[line width=3pt,color=YellowGreen] (110,62) -- (130,20);
draw[line width=3pt,color=YellowGreen] (72,58) -- (60,15);
path[fill=YellowGreen] (130,20) circle (0.2cm);
path[fill=YellowGreen] (60,15) circle (0.2cm);
}

newcommand{addhat}[1]{%
path[fill=#1] (90,55) ellipse (1.3cm and 0.25cm);
path[fill=#1] (90,30) ellipse (0.7cm and 0.2cm);
path[fill=#1] (115,30) rectangle (65,55);
}

newcommand{addsunglasses}{
draw[line width=3pt,color=black] (48,95) arc (190:370:20) ;
path[draw=black,line width=3pt] (95,90) -- (130,100);
path[fill=black, rotate=20] (111,58) ellipse (0.4cm and 0.4cm);
path[fill=black, rotate=20] (80,60) ellipse (0.37cm and 0.37cm);
}

newcommand{addglasses}[1]{
draw[line width=2pt,color=#1] (62,80) arc (267:297:20) ;
path[draw=#1,line width=2pt] (93,88) -- (130,100);
path[draw=#1,line width=2pt, rotate=20] (107,58) ellipse (0.35cm and 0.35cm);
path[draw=#1,line width=2pt, rotate=20] (78,61) ellipse (0.32cm and 0.32cm);
}

newcommand{addicecream}[3]{
path[draw=Sienna,fill=Goldenrod,line width=1pt,yshift=50pt,rotate=20,xshift=50pt]
(45,60)--(60,120)--(75,60);
path[draw=Sienna, fill=Goldenrod, rotate=20,line width=1pt] (144,118) ellipse (0.4cm and 0.25cm);
path[fill=#1, rotate=20] (138,116) circle (0.3cm);
path[fill=#2, rotate=20] (148,116) circle (0.3cm);
path[fill=#3, rotate=20] (142,102) circle (0.3cm);
}

newcommand{addunicorn}{
path[draw=VioletRed,fill=Pink,line width=1pt,yshift=20pt,rotate=-25,xshift=0pt]
(50,60)--(60,20)--(70,60);
}

newcommand{addhair}[1]{%
path[fill=#1, xshift=-5pt] (151.3277,174.3473) .. controls (157.7099,171.1213) and (164.7938,167.8644) .. (168.7230,161.6896) .. controls (164.8427,161.5316) and (153.5102,155.4255) .. (162.1164,152.9395) .. controls (169.4207,153.1460) and (176.4092,149.5358) .. (179.3920,142.6587) .. controls (185.5577,133.4026) and (172.4051,138.2448) .. (169.0163,134.3455) .. controls (174.7801,132.5948) and (184.6532,131.7138) .. (187.4798,127.5635) .. controls (176.4675,125.1191) and (163.1258,123.3733) .. (156.8817,112.6068) .. controls (152.4387,98.5734) and (153.2098,83.5059) .. (149.6492,69.2411) .. controls (131.4926,-1.1678) and (29.6020,22.0627) .. (47.7294,90.0940) .. controls (49.6639,62.0732) and (72.5401,38.6998) .. (96.3583,54.2220) .. controls (130.5162,76.1752) and (139.7469,117.8581) .. (115.3043,143.8986) .. controls (115.2213,148.9109) and (117.2762,158.3403) .. (124.2981,163.2993) .. controls (131.3200,168.2584) and (141.2814,171.4676) .. (151.3277,174.3473) -- cycle;
}

newcommand{addshirt}[1]{%
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,180) -- cycle;
}

newcommand{addtie}[1]{
draw[line width=10pt,color=#1] (60,150) -- (50,190);
}

newcommand{addtshirt}[1]{
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,122.1537) .. (59,150) -- cycle;
}

newcommand{addshorthair}[1]{
path[fill=#1, xshift=-5pt] (145.7190,108.2466) .. controls (151.7052,104.8240) and (153.2448,84.3447) .. (149.6842,70.0799) .. controls (131.5276,-0.3291) and (29.6371,22.9015) .. (47.7644,90.9328) .. controls (49.6989,62.9120) and (80.4610,40.0060) .. (101.1924,59.4599) .. controls (128.6626,85.2375) and (139.4074,111.8552) .. (145.7190,108.2466) -- cycle;
}

newcommand{addwizzard}{
path[fill=BlueViolet!50!Pink,line width=1pt,yshift=-40pt,rotate=5,xshift=32pt]
(20,100)--(60,0)--(100,100);
pgftext[at=pgfpoint{71}{-15}, left, base]{color{Gold}EightStarBold}
pgftext[at=pgfpoint{63}{0}, left, base]{color{Gold}EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{15}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{30}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
draw[line width=6pt,color=black] (90,160) -- (60,210);
draw[line width=6pt,color=white] (85,168.333) -- (80,176.666);
}

newcommand{makeeinstein}[1]{
path[fill=#1,xshift=-4pt] (24.7738,59.7679) .. controls (31.3318,44.0108) and (53.1939,44.5256) .. (52.1285,41.2094) .. controls (51.4718,28.9400) and (30.1562,26.0780) .. (30.1562,26.0780) .. controls (48.5184,20.6686) and (79.2723,56.9617) .. (62.4298,11.1490) .. controls (65.1702,13.6709) and (88.0663,32.6096) .. (85.8201,7.5499) .. controls (87.7073,21.1456) and (96.9496,45.9959) .. (104.3286,23.2724) .. controls (113.1425,-15.9325) and (101.8773,49.6572) .. (138.4988,13.8484) .. controls (141.5713,17.0755) and (121.2714,39.5689) .. (139.2365,36.1290) .. controls (136.0271,66.8833) and (155.4874,23.7659) .. (155.4874,23.7659) .. controls (155.4874,23.7659) and (151.7518,45.0675) .. (147.8705,54.3986) .. controls (147.8705,54.3986) and (173.2987,55.3029) .. (176.7812,61.7670) .. controls (124.2612,69.4624) and (206.6010,77.2343) .. (154.2298,77.2507) .. controls (158.6628,83.1536) and (135.1295,89.9115) .. (169.9992,90.5427) .. controls (93.3592,92.0258) and (132.6373,57.7941) .. (94.5654,45.5826) .. controls (60.1628,40.4228) and (57.2813,64.7295) .. (51.9497,70.3679) .. controls (53.2460,53.9344) and (41.0100,59.0530) .. (24.7738,59.7679) -- cycle;

draw[line width=5pt,color=#1,line cap=round] (96,80) -- (82,73);
draw[line width=5pt,color=#1,line cap=round] (50,69) -- (60,68);

}

newcommand{addbook}[2]{
path[fill=#1,rotate=20] (110,120) rectangle (150,180);
node[rotate=-20, color=white] at (73,180) {makebox[2cm][c]{#2}};
}

newcommand{addwater}[1]{
draw [decorate,decoration=snake, line width=3pt, color=#1] (0,200) -- (100,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (180,200) -- (220,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (50,210) -- (150,210);
draw [decorate,decoration=snake, line width=3pt, color=#1] (110,230) -- (250,230);
draw [decorate,decoration=snake, line width=3pt, color=#1] (20,240) -- (70,240);
draw [decorate,decoration=snake, line width=3pt, color=#1] (60,250) -- (250,250);
}


begin{document}

% grumpy
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Gold}
end{tikzpicture}
%
%Christian Hupfer
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwizzard
end{tikzpicture}
%
% short hairs
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat}
addtshirt{LightBlue!50!white}
addshirt{LightSlateGrey}
addshorthair{brown!50!Grey}
end{tikzpicture}
%
%Men in black
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Wheat}
addtshirt{white}
addshirt{black}
addtie{black}
addhat{black}
addsunglasses
end{tikzpicture}
%

% ducklings
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.6, xscale=0.6, inner sep=0pt, outer sep=0pt]
duck{Gold}
begin{scope}[xshift=300pt, scale=.3, yshift=400pt]
duck{Gold}
end{scope}
begin{scope}[xshift=180pt, scale=.3, yshift=350pt]
duck{Gold}
end{scope}
begin{scope}[xshift=240pt, scale=.3, yshift=450pt]
duck{Gold}
end{scope}
end{tikzpicture}
%
% samcarter
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat!95!red}
addshirt{MidnightBlue}
addhair{OrangeRed!50!Brown}
end{tikzpicture}
%
% hair
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhair{SeaGreen}
end{tikzpicture}
%
% unicorn
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Pink}
addhair{MediumVioletRed}
addunicorn
end{tikzpicture}

% icecream
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addicecream{Wheat}{Plum}{Chocolate}
end{tikzpicture}
%
% sunglasses
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addsunglasses
end{tikzpicture}
%
% normal duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
end{tikzpicture}
% blue duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{SteelBlue}
end{tikzpicture}

% alien duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addalien
end{tikzpicture}
%
% hat duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhat{SaddleBrown}
end{tikzpicture}
%
% swimming
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwater{blue!50!cyan}
end{tikzpicture}
%
% Brazil colour duck for Paulo
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
definecolor{brazilgreen}{RGB}{0,155,58}
definecolor{brazilyellow}{RGB}{254,223,0}
definecolor{brazilblue}{RGB}{0,39,118}
duck{brazilyellow}
addshirt{brazilblue}
addshorthair{brazilgreen}
end{tikzpicture}

% prof. van duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold!40!white}
makeeinstein{gray!50!white}
addglasses{brown!70!black}
addbook{brown!70!black}{TeX}
end{tikzpicture}

end{document}





share|improve this answer
















No new ducks will be added to the question, instead this project moved on to become a latex package. Please visit the project repository at https://github.com/samcarter/tikzducks or have a look at https://www.ctan.org/pkg/tikzducks if you want to see new ducks :)




enter image description here



documentclass{article}
usepackage[svgnames]{xcolor}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}

usepackage[paperwidth=38cm,paperheight=42cm,margin=1cm]{geometry}

usepackage{bbding}

newcommand{duck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (61.6632,119.6616) .. (95.1826,113) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{grumpyduck}[1]{%

colorlet{duck}{#1}
colorlet{eye}{Cornsilk}
colorlet{pupil}{black}
colorlet{bill}{orange}

%body
path[fill=duck] (51.2815,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,135.5394) -- cycle;

%head
path[fill=duck] (90,100) ellipse (1.4cm and 1.75cm);

% duck's bill
path[fill=bill, xshift=-11pt, xscale=1.1] (49.3866,102.7929) .. controls (70.9472,97.0244) and (70.9472,97.0244) .. (85.1826,120) .. controls (20,165) and (36.9082,113.0997) .. (49.3866,102.7929) -- cycle;

% right eye
path[fill=eye, rotate=20, xshift=-4pt, yshift=1pt] (112,58) ellipse (0.25cm and 0.35cm);
path[fill=pupil, rotate=20, xshift=-4pt, yshift=1pt] (115,59) ellipse (0.1cm and 0.2cm);

% left eye
path[fill=eye, rotate=20] (78,62) ellipse (0.22cm and 0.32cm);
path[fill=pupil, rotate=20] (81,63) ellipse (0.08cm and 0.18cm);

}

newcommand{addalien}{%
draw[line width=3pt,color=YellowGreen] (110,62) -- (130,20);
draw[line width=3pt,color=YellowGreen] (72,58) -- (60,15);
path[fill=YellowGreen] (130,20) circle (0.2cm);
path[fill=YellowGreen] (60,15) circle (0.2cm);
}

newcommand{addhat}[1]{%
path[fill=#1] (90,55) ellipse (1.3cm and 0.25cm);
path[fill=#1] (90,30) ellipse (0.7cm and 0.2cm);
path[fill=#1] (115,30) rectangle (65,55);
}

newcommand{addsunglasses}{
draw[line width=3pt,color=black] (48,95) arc (190:370:20) ;
path[draw=black,line width=3pt] (95,90) -- (130,100);
path[fill=black, rotate=20] (111,58) ellipse (0.4cm and 0.4cm);
path[fill=black, rotate=20] (80,60) ellipse (0.37cm and 0.37cm);
}

newcommand{addglasses}[1]{
draw[line width=2pt,color=#1] (62,80) arc (267:297:20) ;
path[draw=#1,line width=2pt] (93,88) -- (130,100);
path[draw=#1,line width=2pt, rotate=20] (107,58) ellipse (0.35cm and 0.35cm);
path[draw=#1,line width=2pt, rotate=20] (78,61) ellipse (0.32cm and 0.32cm);
}

newcommand{addicecream}[3]{
path[draw=Sienna,fill=Goldenrod,line width=1pt,yshift=50pt,rotate=20,xshift=50pt]
(45,60)--(60,120)--(75,60);
path[draw=Sienna, fill=Goldenrod, rotate=20,line width=1pt] (144,118) ellipse (0.4cm and 0.25cm);
path[fill=#1, rotate=20] (138,116) circle (0.3cm);
path[fill=#2, rotate=20] (148,116) circle (0.3cm);
path[fill=#3, rotate=20] (142,102) circle (0.3cm);
}

newcommand{addunicorn}{
path[draw=VioletRed,fill=Pink,line width=1pt,yshift=20pt,rotate=-25,xshift=0pt]
(50,60)--(60,20)--(70,60);
}

newcommand{addhair}[1]{%
path[fill=#1, xshift=-5pt] (151.3277,174.3473) .. controls (157.7099,171.1213) and (164.7938,167.8644) .. (168.7230,161.6896) .. controls (164.8427,161.5316) and (153.5102,155.4255) .. (162.1164,152.9395) .. controls (169.4207,153.1460) and (176.4092,149.5358) .. (179.3920,142.6587) .. controls (185.5577,133.4026) and (172.4051,138.2448) .. (169.0163,134.3455) .. controls (174.7801,132.5948) and (184.6532,131.7138) .. (187.4798,127.5635) .. controls (176.4675,125.1191) and (163.1258,123.3733) .. (156.8817,112.6068) .. controls (152.4387,98.5734) and (153.2098,83.5059) .. (149.6492,69.2411) .. controls (131.4926,-1.1678) and (29.6020,22.0627) .. (47.7294,90.0940) .. controls (49.6639,62.0732) and (72.5401,38.6998) .. (96.3583,54.2220) .. controls (130.5162,76.1752) and (139.7469,117.8581) .. (115.3043,143.8986) .. controls (115.2213,148.9109) and (117.2762,158.3403) .. (124.2981,163.2993) .. controls (131.3200,168.2584) and (141.2814,171.4676) .. (151.3277,174.3473) -- cycle;
}

newcommand{addshirt}[1]{%
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,112.1537) .. (51.2815,180) -- cycle;
}

newcommand{addtie}[1]{
draw[line width=10pt,color=#1] (60,150) -- (50,190);
}

newcommand{addtshirt}[1]{
path[fill=#1] (50,135.5394) .. controls (26.6859,139.7884) and (-12.5215,184.2616) .. (28.9411,223.8858) .. controls (70.4036,263.5099) and (286.2675,236.9673) .. (181.7701,108.1215) .. controls (93.7517,155.4266) and (123.9624,122.1537) .. (59,150) -- cycle;
}

newcommand{addshorthair}[1]{
path[fill=#1, xshift=-5pt] (145.7190,108.2466) .. controls (151.7052,104.8240) and (153.2448,84.3447) .. (149.6842,70.0799) .. controls (131.5276,-0.3291) and (29.6371,22.9015) .. (47.7644,90.9328) .. controls (49.6989,62.9120) and (80.4610,40.0060) .. (101.1924,59.4599) .. controls (128.6626,85.2375) and (139.4074,111.8552) .. (145.7190,108.2466) -- cycle;
}

newcommand{addwizzard}{
path[fill=BlueViolet!50!Pink,line width=1pt,yshift=-40pt,rotate=5,xshift=32pt]
(20,100)--(60,0)--(100,100);
pgftext[at=pgfpoint{71}{-15}, left, base]{color{Gold}EightStarBold}
pgftext[at=pgfpoint{63}{0}, left, base]{color{Gold}EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{15}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
pgftext[at=pgfpoint{56}{30}, left, base]{color{Gold}EightStarBold~EightStarBold~EightStarBold}
draw[line width=6pt,color=black] (90,160) -- (60,210);
draw[line width=6pt,color=white] (85,168.333) -- (80,176.666);
}

newcommand{makeeinstein}[1]{
path[fill=#1,xshift=-4pt] (24.7738,59.7679) .. controls (31.3318,44.0108) and (53.1939,44.5256) .. (52.1285,41.2094) .. controls (51.4718,28.9400) and (30.1562,26.0780) .. (30.1562,26.0780) .. controls (48.5184,20.6686) and (79.2723,56.9617) .. (62.4298,11.1490) .. controls (65.1702,13.6709) and (88.0663,32.6096) .. (85.8201,7.5499) .. controls (87.7073,21.1456) and (96.9496,45.9959) .. (104.3286,23.2724) .. controls (113.1425,-15.9325) and (101.8773,49.6572) .. (138.4988,13.8484) .. controls (141.5713,17.0755) and (121.2714,39.5689) .. (139.2365,36.1290) .. controls (136.0271,66.8833) and (155.4874,23.7659) .. (155.4874,23.7659) .. controls (155.4874,23.7659) and (151.7518,45.0675) .. (147.8705,54.3986) .. controls (147.8705,54.3986) and (173.2987,55.3029) .. (176.7812,61.7670) .. controls (124.2612,69.4624) and (206.6010,77.2343) .. (154.2298,77.2507) .. controls (158.6628,83.1536) and (135.1295,89.9115) .. (169.9992,90.5427) .. controls (93.3592,92.0258) and (132.6373,57.7941) .. (94.5654,45.5826) .. controls (60.1628,40.4228) and (57.2813,64.7295) .. (51.9497,70.3679) .. controls (53.2460,53.9344) and (41.0100,59.0530) .. (24.7738,59.7679) -- cycle;

draw[line width=5pt,color=#1,line cap=round] (96,80) -- (82,73);
draw[line width=5pt,color=#1,line cap=round] (50,69) -- (60,68);

}

newcommand{addbook}[2]{
path[fill=#1,rotate=20] (110,120) rectangle (150,180);
node[rotate=-20, color=white] at (73,180) {makebox[2cm][c]{#2}};
}

newcommand{addwater}[1]{
draw [decorate,decoration=snake, line width=3pt, color=#1] (0,200) -- (100,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (180,200) -- (220,200);
draw [decorate,decoration=snake, line width=3pt, color=#1] (50,210) -- (150,210);
draw [decorate,decoration=snake, line width=3pt, color=#1] (110,230) -- (250,230);
draw [decorate,decoration=snake, line width=3pt, color=#1] (20,240) -- (70,240);
draw [decorate,decoration=snake, line width=3pt, color=#1] (60,250) -- (250,250);
}


begin{document}

% grumpy
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Gold}
end{tikzpicture}
%
%Christian Hupfer
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwizzard
end{tikzpicture}
%
% short hairs
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat}
addtshirt{LightBlue!50!white}
addshirt{LightSlateGrey}
addshorthair{brown!50!Grey}
end{tikzpicture}
%
%Men in black
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
grumpyduck{Wheat}
addtshirt{white}
addshirt{black}
addtie{black}
addhat{black}
addsunglasses
end{tikzpicture}
%

% ducklings
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-0.6, xscale=0.6, inner sep=0pt, outer sep=0pt]
duck{Gold}
begin{scope}[xshift=300pt, scale=.3, yshift=400pt]
duck{Gold}
end{scope}
begin{scope}[xshift=180pt, scale=.3, yshift=350pt]
duck{Gold}
end{scope}
begin{scope}[xshift=240pt, scale=.3, yshift=450pt]
duck{Gold}
end{scope}
end{tikzpicture}
%
% samcarter
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Wheat!95!red}
addshirt{MidnightBlue}
addhair{OrangeRed!50!Brown}
end{tikzpicture}
%
% hair
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhair{SeaGreen}
end{tikzpicture}
%
% unicorn
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Pink}
addhair{MediumVioletRed}
addunicorn
end{tikzpicture}

% icecream
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addicecream{Wheat}{Plum}{Chocolate}
end{tikzpicture}
%
% sunglasses
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addsunglasses
end{tikzpicture}
%
% normal duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
end{tikzpicture}
% blue duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{SteelBlue}
end{tikzpicture}

% alien duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addalien
end{tikzpicture}
%
% hat duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addhat{SaddleBrown}
end{tikzpicture}
%
% swimming
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold}
addwater{blue!50!cyan}
end{tikzpicture}
%
% Brazil colour duck for Paulo
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
definecolor{brazilgreen}{RGB}{0,155,58}
definecolor{brazilyellow}{RGB}{254,223,0}
definecolor{brazilblue}{RGB}{0,39,118}
duck{brazilyellow}
addshirt{brazilblue}
addshorthair{brazilgreen}
end{tikzpicture}

% prof. van duck
begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
duck{Gold!40!white}
makeeinstein{gray!50!white}
addglasses{brown!70!black}
addbook{brown!70!black}{TeX}
end{tikzpicture}

end{document}






share|improve this answer














share|improve this answer



share|improve this answer








edited Oct 4 '18 at 11:52

























answered Jan 6 '17 at 18:28









samcartersamcarter

88.6k799284




88.6k799284








  • 3





    You're currently 22 ducks short of your promise!

    – JPi
    Jul 27 '17 at 19:47






  • 4





    @JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

    – samcarter
    Jul 27 '17 at 19:48








  • 1





    You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

    – Ignasi
    Jul 28 '17 at 9:55






  • 2





    @CarLaTeX Guess I should learn how to write a package over the summer break :)

    – samcarter
    Jul 28 '17 at 10:42






  • 1





    Gimme 100 ducks because of the bounty! :D

    – Paulo Cereda
    Jul 29 '17 at 10:04














  • 3





    You're currently 22 ducks short of your promise!

    – JPi
    Jul 27 '17 at 19:47






  • 4





    @JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

    – samcarter
    Jul 27 '17 at 19:48








  • 1





    You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

    – Ignasi
    Jul 28 '17 at 9:55






  • 2





    @CarLaTeX Guess I should learn how to write a package over the summer break :)

    – samcarter
    Jul 28 '17 at 10:42






  • 1





    Gimme 100 ducks because of the bounty! :D

    – Paulo Cereda
    Jul 29 '17 at 10:04








3




3





You're currently 22 ducks short of your promise!

– JPi
Jul 27 '17 at 19:47





You're currently 22 ducks short of your promise!

– JPi
Jul 27 '17 at 19:47




4




4





@JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

– samcarter
Jul 27 '17 at 19:48







@JPi Only one, as the "New rule" does not apply for old votes :) However its hard to keep the pace ...

– samcarter
Jul 27 '17 at 19:48






1




1





You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

– Ignasi
Jul 28 '17 at 9:55





You can join efforts with Nils Fleis­chhacker (tikzpeople author) and create a new tikzducks package :)

– Ignasi
Jul 28 '17 at 9:55




2




2





@CarLaTeX Guess I should learn how to write a package over the summer break :)

– samcarter
Jul 28 '17 at 10:42





@CarLaTeX Guess I should learn how to write a package over the summer break :)

– samcarter
Jul 28 '17 at 10:42




1




1





Gimme 100 ducks because of the bounty! :D

– Paulo Cereda
Jul 29 '17 at 10:04





Gimme 100 ducks because of the bounty! :D

– Paulo Cereda
Jul 29 '17 at 10:04











56














documentclass{article}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{tikzpeople}
begin{document}
begin{tikzpicture}
node[duck,evil,minimum size=1.5cm] (B){};
end{tikzpicture}
end{document}


enter image description here



Without code ...



enter image description here






share|improve this answer





















  • 3





    tikzpeople don't have hands or wings (but can hold a sword and a shield)

    – Ulrike Fischer
    Jan 2 '17 at 13:36













  • Why the horns? Is it a devil duck?

    – jamesqf
    Jan 2 '17 at 22:16











  • @CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

    – cfr
    Jan 3 '17 at 2:57











  • never seen a duck with line up haircut. :)

    – CroCo
    Jan 3 '17 at 7:26






  • 1





    @jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

    – Steven B. Segletes
    Jan 3 '17 at 10:56


















56














documentclass{article}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{tikzpeople}
begin{document}
begin{tikzpicture}
node[duck,evil,minimum size=1.5cm] (B){};
end{tikzpicture}
end{document}


enter image description here



Without code ...



enter image description here






share|improve this answer





















  • 3





    tikzpeople don't have hands or wings (but can hold a sword and a shield)

    – Ulrike Fischer
    Jan 2 '17 at 13:36













  • Why the horns? Is it a devil duck?

    – jamesqf
    Jan 2 '17 at 22:16











  • @CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

    – cfr
    Jan 3 '17 at 2:57











  • never seen a duck with line up haircut. :)

    – CroCo
    Jan 3 '17 at 7:26






  • 1





    @jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

    – Steven B. Segletes
    Jan 3 '17 at 10:56
















56












56








56







documentclass{article}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{tikzpeople}
begin{document}
begin{tikzpicture}
node[duck,evil,minimum size=1.5cm] (B){};
end{tikzpicture}
end{document}


enter image description here



Without code ...



enter image description here






share|improve this answer















documentclass{article}
usepackage[T1]{fontenc}
usepackage[utf8]{inputenc}
usepackage{tikzpeople}
begin{document}
begin{tikzpicture}
node[duck,evil,minimum size=1.5cm] (B){};
end{tikzpicture}
end{document}


enter image description here



Without code ...



enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








edited Jan 3 '17 at 13:44

























answered Jan 2 '17 at 13:30









Ulrike FischerUlrike Fischer

190k8297678




190k8297678








  • 3





    tikzpeople don't have hands or wings (but can hold a sword and a shield)

    – Ulrike Fischer
    Jan 2 '17 at 13:36













  • Why the horns? Is it a devil duck?

    – jamesqf
    Jan 2 '17 at 22:16











  • @CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

    – cfr
    Jan 3 '17 at 2:57











  • never seen a duck with line up haircut. :)

    – CroCo
    Jan 3 '17 at 7:26






  • 1





    @jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

    – Steven B. Segletes
    Jan 3 '17 at 10:56
















  • 3





    tikzpeople don't have hands or wings (but can hold a sword and a shield)

    – Ulrike Fischer
    Jan 2 '17 at 13:36













  • Why the horns? Is it a devil duck?

    – jamesqf
    Jan 2 '17 at 22:16











  • @CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

    – cfr
    Jan 3 '17 at 2:57











  • never seen a duck with line up haircut. :)

    – CroCo
    Jan 3 '17 at 7:26






  • 1





    @jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

    – Steven B. Segletes
    Jan 3 '17 at 10:56










3




3





tikzpeople don't have hands or wings (but can hold a sword and a shield)

– Ulrike Fischer
Jan 2 '17 at 13:36







tikzpeople don't have hands or wings (but can hold a sword and a shield)

– Ulrike Fischer
Jan 2 '17 at 13:36















Why the horns? Is it a devil duck?

– jamesqf
Jan 2 '17 at 22:16





Why the horns? Is it a devil duck?

– jamesqf
Jan 2 '17 at 22:16













@CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

– cfr
Jan 3 '17 at 2:57





@CarLaTeX The point is: the package already provides ducks. The question should take account of this: how can the package be used to create a duck? Or how can we draw a duck, given that the packages available to draw ducks are all lacking in some way? Or whatever.

– cfr
Jan 3 '17 at 2:57













never seen a duck with line up haircut. :)

– CroCo
Jan 3 '17 at 7:26





never seen a duck with line up haircut. :)

– CroCo
Jan 3 '17 at 7:26




1




1





@jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

– Steven B. Segletes
Jan 3 '17 at 10:56







@jamesqf It is not a devil duck, but a viking duck. The code is not over until the fat duck sings. For comparable memes with other animals, google "viking kitty".

– Steven B. Segletes
Jan 3 '17 at 10:56













35





+100









Here is what I have done till now (to be improved, of course).



enter image description here



This is my tikzducks.sty:



NeedsTeXFormat{LaTeX2e}
ProvidesPackage{tikzducks}[2016/01/05 All we need isdots ducks!]

RequirePackage{tikz}
usetikzlibrary{shapes.geometric,shapes.symbols,positioning,decorations.pathmorphing}
usetikzlibrary{shapes,arrows,decorations.markings}

RequirePackage{halloweenmath}

tikzset{%
pics/wing/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (1,0) to[bend left] (.7,-.6) to[bend left] cycle;
}},
pics/eye/.style={code={%
draw[fill=white] (-.1,-.05) ellipse (.3 and .2);
draw[fill=black] (0,0) circle[radius=.1];
}},
pics/paw/.style={code={%
draw[fill=orange] (0,0) -- (0,.8) -- (.1,.8) -- (.1,.05) -- (.8,.05) to[bend right] (.7,-.2) to[bend right] (.6,-.45) -- cycle;
}},
pics/body/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (.6,-1.2) to[bend right] (2,-2.4) to[bend right=70, smooth] (3.7,-.1) to[bend left] cycle;
}},
pics/head/.style={code={%
draw[fill=yellow] (0,0) circle[radius=.9];
}},
pics/closedbeak/.style={code={%
draw[fill=orange] (0,0) -- (-.35,.1) -- (-.65,-.3) -- (-.1,-.7) to[bend right=70] (.2,-.5) -- cycle;
}},
pics/openbeak/.style={code={%
draw[fill=orange] (0,0) -- (.5,.35) to[bend left=70] (.55,.25) -- (.23,-.29) -- (.3,-.7) to[bend left=70] (.25,-.75) -- (-.01,-.45) -- cycle;
}},
create duck coordinates/.style = {insert path={(0,0) coordinate (duck)}},
pics/duck/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic at (2.2,.8) {closedbeak};
pic[rotate=300] at (1.6,.9) {eye};
pic[xscale=1,yscale=-1,rotate=75] at (1.91,1.08) {eye};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create duckwithopenbeak coordinates/.style = {insert path={(0,0) coordinate (duckwithopenbeak)}},
pics/duckwithopenbeak/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic[rotate=300] at (1.94,1.06) {eye};
pic[rotate=-20] at (2.4,.9) {openbeak};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create bow coordinates/.style = {insert path={(1.3,1.8) coordinate (bow)}},
pics/bow/.style={code={%
draw[red, fill=pink, rounded corners] (0,0) -- (.7,.55) -- (.7,-.55) -- cycle;
draw[red, fill=pink, rounded corners] (0,0) -- (-.7,.55) -- (-.7,-.55) -- cycle;
draw[red, fill=pink] (0,0) circle [radius=1/4];
}},
pics/daisy/.style={code={%
foreach i in {0,45,...,325}
draw[blue, fill=white, rotate=i]
(0,0) .. controls ++(-30:1/2) and ++(30:1/2) .. cycle;
draw[orange, fill=yellow] circle [radius=1/8];
}},
create nacklace coordinates/.style = {insert path={(.6,.7) coordinate (nacklace)}},
pics/nacklace/.style={code={%
path (0,0) coordinate (nacklacebase);
pic at (nacklacebase) {daisy};
pic[below right=1em and 1em of nacklacebase] {daisy};
pic[below right=2em and 2em of nacklacebase] {daisy};
}},
create blackboard coordinates/.style = {insert path={(3.5,1.8) coordinate (blackboard)}},
pics/blackboard/.style={code={%
node at (0,0) [rectangle, fill=black, draw=brown, very thick,font={color{white}bfseriessmall},minimum height=10ex] {$ax^2+bx+c=0$};
}},
create glasses coordinates/.style = {insert path={(1.5,.8) coordinate (glasses)}},
pics/glasses/.style={code={%
node [circle, draw=blue, very thick,minimum height=1.1em] (rglass) {};
node[right=.5em of rglass, circle, draw=blue, very thick,minimum height=1.1em] (lglass) {};
coordinate[above left=.1em and .9em of rglass] (rrglass);
coordinate[below left=.5em and .1em of rrglass] (rrrglass);
coordinate[above right=.1em and .9em of lglass] (llglass);
coordinate[below right=.5em and .1em of llglass] (lllglass);
draw[draw=blue, very thick] (rglass) -- (lglass);
draw[draw=blue, very thick] (rglass) -- (rrglass) -- (rrrglass);
draw[draw=blue, very thick] (lglass) -- (llglass) -- (lllglass);
}},
create soccerball coordinates/.style = {insert path={(2.6,-1.1) coordinate (soccerball)}},
pics/soccerball/.style={code={%
draw[fill=white] (0,0) circle [radius=.9];
begin{scope}
clip (0,0) circle [radius=.9];
foreach i in {-.4,.4}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,.4) {};
foreach i in {-.8,0,.8}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,-.4) {};
end{scope}
}},
create befana coordinates/.style = {insert path={(0,0) coordinate (befana)}},
pics/befana/.style={code={%
node {$displaystylemathwitch$};
}},
create ghost coordinates/.style = {insert path={(-.8,-.12) coordinate (ghost)}},
pics/ghost/.style={code={%
node {$xrightswishingghost{mspace{30mu}}$};
}},
create help coordinates/.style = {insert path={(4.6,2.3) coordinate (help)}},
pics/help/.style={code={%
node[draw, fill=white, shape=starburst, text width=5.7em, text centered] (helpnode) {%
Help! \ A texttt{textbackslash phantom}!
};
coordinate[below left=-.1em and -0.3em of helpnode] (lhelpnode);
coordinate[below right=0.35em and -1.5em of helpnode] (rhelpnode);
coordinate[below left=2.3em and 1.1em of helpnode] (bhelpnode);
coordinate[below left=-.3em and -0.4em of helpnode] (llhelpnode);
coordinate[below right=0em and -.9em of helpnode] (rrhelpnode);
path[fill=white] (llhelpnode) -- (bhelpnode) -- (rrhelpnode);
draw[fill=white] (lhelpnode) -- (bhelpnode) -- (rhelpnode);
}},
create righttooth coordinates/.style = {insert path={(2.11,.1) coordinate (righttooth)}},
create lefttooth coordinates/.style = {insert path={(2.29,.15) coordinate (lefttooth)}},
pics/tooth/.style={code={%
draw[fill=white] (0,0) -- (.05,-.2) -- (.11,.1);
}},
create cloak coordinates/.style = {insert path={(.65,.69) coordinate (cloak)}},
pics/cloak/.style={code={%
draw[white,fill=black] (0,0) to[bend left=10] (-2.1,.1)
decorate [decoration={snake, segment length=10pt, amplitude=3pt}]
{to (-2,-1.4)} to[bend left=9] (.3,-.4) to[bend left=30] cycle;
draw[white,fill=black] (0,0) to[bend left=10] (-.1,.7) to[bend right=15] (.7,-.3) -- (.3,-.4) to[bend left=30] cycle;
}},
pics/batflock/.style={code={%
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=-50] {$mathbat$};},
mark=at position 0.04 with {node[scale=0.5,rotate=-40] {$mathbat$};},
mark=at position 0.07 with {node[scale=0.6,rotate=-35] {$mathbat$};},
mark=at position 0.11 with {node[scale=0.7,rotate=-30] {$mathbat$};},
mark=at position 0.15 with {node[scale=0.8,rotate=-20] {$mathbat$};},
mark=at position 0.20 with {node[scale=0.9,rotate=-10] {$mathbat$};},
mark=at position 0.25 with {node[scale=1.0,rotate=5] {$mathbat$};},
mark=at position 0.31 with {node[scale=1.1,rotate=15] {$mathbat$};},
mark=at position 0.38 with {node[scale=1.2,rotate=15] {$mathbat$};},
mark=at position 0.44 with {node[scale=1.3,rotate=0] {$mathbat$};},
mark=at position 0.50 with {node[scale=1.4,rotate=-15] {$mathbat$};},
mark=at position 0.57 with {node[scale=1.5,rotate=-25] {$mathbat$};},
mark=at position 0.65 with {node[scale=1.6,rotate=-30] {$mathbat$};},
mark=at position 0.73 with {node[scale=1.7,rotate=-35] {$mathbat$};},
mark=at position 0.81 with {node[scale=1.8,rotate=-40] {$mathbat$};},
mark=at position 0.89 with {node[scale=1.9,rotate=-42] {$mathbat$};},
}}] plot[smooth, tension=1] coordinates {(0,0) (2.5,1) (1,3) (7,4.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.06 with {node[scale=0.5,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.11 with {node[scale=0.6,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.17 with {node[scale=0.7,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.23 with {node[scale=0.8,rotate=5] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.30 with {node[scale=0.9,rotate=0] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.38 with {node[scale=1.0,rotate=-10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.48 with {node[scale=1.1,rotate=-20] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.58 with {node[scale=1.2,rotate=-30] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.68 with {node[scale=1.3,rotate=-40] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.79 with {node[scale=1.4,rotate=-41] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.90 with {node[scale=1.5,rotate=-42] {$xleftflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(1.7,1.3) (0,2.7) (2,4.5) (5,5.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.16 with {node[scale=0.4,rotate=-5] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.25 with {node[scale=0.5,rotate=-25] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.34 with {node[scale=0.6,rotate=-36] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.44 with {node[scale=0.7,rotate=-38] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.55 with {node[scale=0.8,rotate=-40] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.67 with {node[scale=0.9,rotate=-42] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.81 with {node[scale=1.0,rotate=-46] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.95 with {node[scale=1.1,rotate=-50] {$xrightflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(2.5,2) (2,2.7) (6.5,3.3)};
}},
}

newcommand{duck}{%
begin{tikzpicture}
pic {duck};
end{tikzpicture}
}

newcommand{daisyduck}{%
begin{tikzpicture}
pic {duck};
path[create nacklace coordinates];
pic at (nacklace) {nacklace};
end{tikzpicture}
}

newcommand{femaleduck}{%
begin{tikzpicture}
pic {duck};
path[create bow coordinates];
pic[rotate=35] at (bow) {bow};
end{tikzpicture}
}

newcommand{mathduck}{%
begin{tikzpicture}
path[create blackboard coordinates];
pic at (blackboard) {blackboard};
pic {duck};
path[create glasses coordinates];
pic[rotate=30, transform shape] at (glasses) {glasses};
end{tikzpicture}
}

newcommand{soccerduck}{%
begin{tikzpicture}
pic {duck};
path[create soccerball coordinates];
pic[rotate=30] at (soccerball) {soccerball};
end{tikzpicture}
}

newcommand{befanaduck}{%
begin{tikzpicture}
path[use as bounding box] (-2.5,-1.5) rectangle (2.5,1.5);
pic[scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (3.17,1.59) {duck};
path[create befana coordinates];
pic[transform canvas={scale=4}] at (befana) {befana};
pic[rotate=330,scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (paw) {paw};
end{tikzpicture}
}

newcommand{ghostduck}{%
begin{tikzpicture}
path[use as bounding box] (-6,-2.5) rectangle (6,2.5);
path[create ghost coordinates];
pic[transform canvas={scale=7}] at (ghost) {ghost};
pic {duckwithopenbeak};
path[create help coordinates];
pic at (help) {help};
end{tikzpicture}
}

newcommand{vampireduck}{%
begin{tikzpicture}
pic at (-6,-1) {batflock};
path[create righttooth coordinates];
pic at (righttooth) {tooth};
path[create lefttooth coordinates];
pic at (lefttooth) {tooth};
pic {duck};
path[create cloak coordinates];
pic at (cloak) {cloak};
pic at (-1,0) {wing};
end{tikzpicture}
}


This is the code of the presentation:



% arara: pdflatex
% arara: convert: {density: 160, otheroptions: -dispose previous -delay 140 -loop 1, format: gif}
documentclass{beamer}
usepackage{cprotect}
usepackage{tikzducks}

usetheme{Madrid}
setbeamertemplate{navigation symbols}{}
cprotecttitle{Quack guide to verb|tikzducks| package}
subtitle{Actually, some examples to be improved and transformed into a package}
author{CarLaTeX}
institute{Duck fan club}

begin{document}
begin{frame}[plain]
titlepage
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Standard version}
Command:
begin{center}
verb|duck|
end{center}
Result:
begin{figure}
centering
duck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Female version}
Command:
begin{center}
verb|femaleduck|
end{center}
Result:
begin{figure}
centering
femaleduck
end{figure}
Accessory verb|pic| available: verb|bow|
begin{tikzpicture}
pic[scale=.7, transform canvas={scale=.7}] at (.6,.2) {bow};
end{tikzpicture}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Daisy version}
Command:
begin{center}
verb|daisyduck|
end{center}
Result:
begin{figure}
centering
daisyduck
end{figure}
Accessory verb|pic|s available: verb|daisy|
begin{tikzpicture}
pic[scale=.75, transform canvas={scale=.75}] at (.35,.25) {daisy};
end{tikzpicture}
hspace{1em} and verb|nacklace|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.5,1) {nacklace};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Mathematician version}
Command:
begin{center}
verb|mathduck|
end{center}
Result:
begin{figure}
centering
mathduck
end{figure}
Accessory verb|pic|s available:
verb|glasses|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.7,.2) {glasses};
end{tikzpicture}
hspace{2.4em} and verb|blackboard|
begin{tikzpicture}
pic[scale=.4, transform canvas={scale=.4}] at (1.4,.5) {blackboard};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Soccer player version}
Command:
begin{center}
verb|soccerduck|
end{center}
Result:
begin{figure}
centering
soccerduck
end{figure}
Accessory verb|pic| available: verb|soccerball|
begin{tikzpicture}
pic[scale=.5,transform canvas={scale=.5},transform shape] at (.5,.3) {soccerball};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{The Befana duckdots}
Using verb|displaystylemathwitch| $displaystylemathwitch$ from the gorgeous Gustavo Mezzetti's package verb|halloweenmath|, here is the Befanafootnote{For anyone who doesn't know who the Befana is, she's a sort of female version of Santa Claus, who brings gifts or coal (to good and bad children, respectively) every year on January, 6textsuperscript{th}.} duck!

Command:
begin{center}
verb|befanaduck|
end{center}
Result:
begin{figure}
centering
befanaduck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots the ghost duckdots}
Using verb|xrightswishingghost| $xrightswishingghost{}$, again from verb|halloweenmath| package, here is the ghost duck!\
Command:
begin{center}
verb|ghostduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.7textwidth}{!}{%
ghostduck
}
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots and the vampire duck!}
The vampire duck, with bats from verb|halloweenmath| package!

Command:
begin{center}
verb|vampireduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.5textwidth}{!}{%
vampireduck
}
end{figure}
end{frame}
end{document}





share|improve this answer


























  • +1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

    – GuM
    Jan 8 '17 at 1:57






  • 1





    Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

    – Chris H
    Jan 11 '17 at 11:21











  • @ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

    – CarLaTeX
    Jan 11 '17 at 13:16











  • Really lovely! (:-) But why not node {$displaystylemathwitch$}?

    – GuM
    Jan 11 '17 at 20:22











  • I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

    – GuM
    Jan 12 '17 at 0:39
















35





+100









Here is what I have done till now (to be improved, of course).



enter image description here



This is my tikzducks.sty:



NeedsTeXFormat{LaTeX2e}
ProvidesPackage{tikzducks}[2016/01/05 All we need isdots ducks!]

RequirePackage{tikz}
usetikzlibrary{shapes.geometric,shapes.symbols,positioning,decorations.pathmorphing}
usetikzlibrary{shapes,arrows,decorations.markings}

RequirePackage{halloweenmath}

tikzset{%
pics/wing/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (1,0) to[bend left] (.7,-.6) to[bend left] cycle;
}},
pics/eye/.style={code={%
draw[fill=white] (-.1,-.05) ellipse (.3 and .2);
draw[fill=black] (0,0) circle[radius=.1];
}},
pics/paw/.style={code={%
draw[fill=orange] (0,0) -- (0,.8) -- (.1,.8) -- (.1,.05) -- (.8,.05) to[bend right] (.7,-.2) to[bend right] (.6,-.45) -- cycle;
}},
pics/body/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (.6,-1.2) to[bend right] (2,-2.4) to[bend right=70, smooth] (3.7,-.1) to[bend left] cycle;
}},
pics/head/.style={code={%
draw[fill=yellow] (0,0) circle[radius=.9];
}},
pics/closedbeak/.style={code={%
draw[fill=orange] (0,0) -- (-.35,.1) -- (-.65,-.3) -- (-.1,-.7) to[bend right=70] (.2,-.5) -- cycle;
}},
pics/openbeak/.style={code={%
draw[fill=orange] (0,0) -- (.5,.35) to[bend left=70] (.55,.25) -- (.23,-.29) -- (.3,-.7) to[bend left=70] (.25,-.75) -- (-.01,-.45) -- cycle;
}},
create duck coordinates/.style = {insert path={(0,0) coordinate (duck)}},
pics/duck/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic at (2.2,.8) {closedbeak};
pic[rotate=300] at (1.6,.9) {eye};
pic[xscale=1,yscale=-1,rotate=75] at (1.91,1.08) {eye};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create duckwithopenbeak coordinates/.style = {insert path={(0,0) coordinate (duckwithopenbeak)}},
pics/duckwithopenbeak/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic[rotate=300] at (1.94,1.06) {eye};
pic[rotate=-20] at (2.4,.9) {openbeak};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create bow coordinates/.style = {insert path={(1.3,1.8) coordinate (bow)}},
pics/bow/.style={code={%
draw[red, fill=pink, rounded corners] (0,0) -- (.7,.55) -- (.7,-.55) -- cycle;
draw[red, fill=pink, rounded corners] (0,0) -- (-.7,.55) -- (-.7,-.55) -- cycle;
draw[red, fill=pink] (0,0) circle [radius=1/4];
}},
pics/daisy/.style={code={%
foreach i in {0,45,...,325}
draw[blue, fill=white, rotate=i]
(0,0) .. controls ++(-30:1/2) and ++(30:1/2) .. cycle;
draw[orange, fill=yellow] circle [radius=1/8];
}},
create nacklace coordinates/.style = {insert path={(.6,.7) coordinate (nacklace)}},
pics/nacklace/.style={code={%
path (0,0) coordinate (nacklacebase);
pic at (nacklacebase) {daisy};
pic[below right=1em and 1em of nacklacebase] {daisy};
pic[below right=2em and 2em of nacklacebase] {daisy};
}},
create blackboard coordinates/.style = {insert path={(3.5,1.8) coordinate (blackboard)}},
pics/blackboard/.style={code={%
node at (0,0) [rectangle, fill=black, draw=brown, very thick,font={color{white}bfseriessmall},minimum height=10ex] {$ax^2+bx+c=0$};
}},
create glasses coordinates/.style = {insert path={(1.5,.8) coordinate (glasses)}},
pics/glasses/.style={code={%
node [circle, draw=blue, very thick,minimum height=1.1em] (rglass) {};
node[right=.5em of rglass, circle, draw=blue, very thick,minimum height=1.1em] (lglass) {};
coordinate[above left=.1em and .9em of rglass] (rrglass);
coordinate[below left=.5em and .1em of rrglass] (rrrglass);
coordinate[above right=.1em and .9em of lglass] (llglass);
coordinate[below right=.5em and .1em of llglass] (lllglass);
draw[draw=blue, very thick] (rglass) -- (lglass);
draw[draw=blue, very thick] (rglass) -- (rrglass) -- (rrrglass);
draw[draw=blue, very thick] (lglass) -- (llglass) -- (lllglass);
}},
create soccerball coordinates/.style = {insert path={(2.6,-1.1) coordinate (soccerball)}},
pics/soccerball/.style={code={%
draw[fill=white] (0,0) circle [radius=.9];
begin{scope}
clip (0,0) circle [radius=.9];
foreach i in {-.4,.4}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,.4) {};
foreach i in {-.8,0,.8}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,-.4) {};
end{scope}
}},
create befana coordinates/.style = {insert path={(0,0) coordinate (befana)}},
pics/befana/.style={code={%
node {$displaystylemathwitch$};
}},
create ghost coordinates/.style = {insert path={(-.8,-.12) coordinate (ghost)}},
pics/ghost/.style={code={%
node {$xrightswishingghost{mspace{30mu}}$};
}},
create help coordinates/.style = {insert path={(4.6,2.3) coordinate (help)}},
pics/help/.style={code={%
node[draw, fill=white, shape=starburst, text width=5.7em, text centered] (helpnode) {%
Help! \ A texttt{textbackslash phantom}!
};
coordinate[below left=-.1em and -0.3em of helpnode] (lhelpnode);
coordinate[below right=0.35em and -1.5em of helpnode] (rhelpnode);
coordinate[below left=2.3em and 1.1em of helpnode] (bhelpnode);
coordinate[below left=-.3em and -0.4em of helpnode] (llhelpnode);
coordinate[below right=0em and -.9em of helpnode] (rrhelpnode);
path[fill=white] (llhelpnode) -- (bhelpnode) -- (rrhelpnode);
draw[fill=white] (lhelpnode) -- (bhelpnode) -- (rhelpnode);
}},
create righttooth coordinates/.style = {insert path={(2.11,.1) coordinate (righttooth)}},
create lefttooth coordinates/.style = {insert path={(2.29,.15) coordinate (lefttooth)}},
pics/tooth/.style={code={%
draw[fill=white] (0,0) -- (.05,-.2) -- (.11,.1);
}},
create cloak coordinates/.style = {insert path={(.65,.69) coordinate (cloak)}},
pics/cloak/.style={code={%
draw[white,fill=black] (0,0) to[bend left=10] (-2.1,.1)
decorate [decoration={snake, segment length=10pt, amplitude=3pt}]
{to (-2,-1.4)} to[bend left=9] (.3,-.4) to[bend left=30] cycle;
draw[white,fill=black] (0,0) to[bend left=10] (-.1,.7) to[bend right=15] (.7,-.3) -- (.3,-.4) to[bend left=30] cycle;
}},
pics/batflock/.style={code={%
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=-50] {$mathbat$};},
mark=at position 0.04 with {node[scale=0.5,rotate=-40] {$mathbat$};},
mark=at position 0.07 with {node[scale=0.6,rotate=-35] {$mathbat$};},
mark=at position 0.11 with {node[scale=0.7,rotate=-30] {$mathbat$};},
mark=at position 0.15 with {node[scale=0.8,rotate=-20] {$mathbat$};},
mark=at position 0.20 with {node[scale=0.9,rotate=-10] {$mathbat$};},
mark=at position 0.25 with {node[scale=1.0,rotate=5] {$mathbat$};},
mark=at position 0.31 with {node[scale=1.1,rotate=15] {$mathbat$};},
mark=at position 0.38 with {node[scale=1.2,rotate=15] {$mathbat$};},
mark=at position 0.44 with {node[scale=1.3,rotate=0] {$mathbat$};},
mark=at position 0.50 with {node[scale=1.4,rotate=-15] {$mathbat$};},
mark=at position 0.57 with {node[scale=1.5,rotate=-25] {$mathbat$};},
mark=at position 0.65 with {node[scale=1.6,rotate=-30] {$mathbat$};},
mark=at position 0.73 with {node[scale=1.7,rotate=-35] {$mathbat$};},
mark=at position 0.81 with {node[scale=1.8,rotate=-40] {$mathbat$};},
mark=at position 0.89 with {node[scale=1.9,rotate=-42] {$mathbat$};},
}}] plot[smooth, tension=1] coordinates {(0,0) (2.5,1) (1,3) (7,4.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.06 with {node[scale=0.5,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.11 with {node[scale=0.6,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.17 with {node[scale=0.7,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.23 with {node[scale=0.8,rotate=5] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.30 with {node[scale=0.9,rotate=0] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.38 with {node[scale=1.0,rotate=-10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.48 with {node[scale=1.1,rotate=-20] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.58 with {node[scale=1.2,rotate=-30] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.68 with {node[scale=1.3,rotate=-40] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.79 with {node[scale=1.4,rotate=-41] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.90 with {node[scale=1.5,rotate=-42] {$xleftflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(1.7,1.3) (0,2.7) (2,4.5) (5,5.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.16 with {node[scale=0.4,rotate=-5] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.25 with {node[scale=0.5,rotate=-25] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.34 with {node[scale=0.6,rotate=-36] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.44 with {node[scale=0.7,rotate=-38] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.55 with {node[scale=0.8,rotate=-40] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.67 with {node[scale=0.9,rotate=-42] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.81 with {node[scale=1.0,rotate=-46] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.95 with {node[scale=1.1,rotate=-50] {$xrightflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(2.5,2) (2,2.7) (6.5,3.3)};
}},
}

newcommand{duck}{%
begin{tikzpicture}
pic {duck};
end{tikzpicture}
}

newcommand{daisyduck}{%
begin{tikzpicture}
pic {duck};
path[create nacklace coordinates];
pic at (nacklace) {nacklace};
end{tikzpicture}
}

newcommand{femaleduck}{%
begin{tikzpicture}
pic {duck};
path[create bow coordinates];
pic[rotate=35] at (bow) {bow};
end{tikzpicture}
}

newcommand{mathduck}{%
begin{tikzpicture}
path[create blackboard coordinates];
pic at (blackboard) {blackboard};
pic {duck};
path[create glasses coordinates];
pic[rotate=30, transform shape] at (glasses) {glasses};
end{tikzpicture}
}

newcommand{soccerduck}{%
begin{tikzpicture}
pic {duck};
path[create soccerball coordinates];
pic[rotate=30] at (soccerball) {soccerball};
end{tikzpicture}
}

newcommand{befanaduck}{%
begin{tikzpicture}
path[use as bounding box] (-2.5,-1.5) rectangle (2.5,1.5);
pic[scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (3.17,1.59) {duck};
path[create befana coordinates];
pic[transform canvas={scale=4}] at (befana) {befana};
pic[rotate=330,scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (paw) {paw};
end{tikzpicture}
}

newcommand{ghostduck}{%
begin{tikzpicture}
path[use as bounding box] (-6,-2.5) rectangle (6,2.5);
path[create ghost coordinates];
pic[transform canvas={scale=7}] at (ghost) {ghost};
pic {duckwithopenbeak};
path[create help coordinates];
pic at (help) {help};
end{tikzpicture}
}

newcommand{vampireduck}{%
begin{tikzpicture}
pic at (-6,-1) {batflock};
path[create righttooth coordinates];
pic at (righttooth) {tooth};
path[create lefttooth coordinates];
pic at (lefttooth) {tooth};
pic {duck};
path[create cloak coordinates];
pic at (cloak) {cloak};
pic at (-1,0) {wing};
end{tikzpicture}
}


This is the code of the presentation:



% arara: pdflatex
% arara: convert: {density: 160, otheroptions: -dispose previous -delay 140 -loop 1, format: gif}
documentclass{beamer}
usepackage{cprotect}
usepackage{tikzducks}

usetheme{Madrid}
setbeamertemplate{navigation symbols}{}
cprotecttitle{Quack guide to verb|tikzducks| package}
subtitle{Actually, some examples to be improved and transformed into a package}
author{CarLaTeX}
institute{Duck fan club}

begin{document}
begin{frame}[plain]
titlepage
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Standard version}
Command:
begin{center}
verb|duck|
end{center}
Result:
begin{figure}
centering
duck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Female version}
Command:
begin{center}
verb|femaleduck|
end{center}
Result:
begin{figure}
centering
femaleduck
end{figure}
Accessory verb|pic| available: verb|bow|
begin{tikzpicture}
pic[scale=.7, transform canvas={scale=.7}] at (.6,.2) {bow};
end{tikzpicture}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Daisy version}
Command:
begin{center}
verb|daisyduck|
end{center}
Result:
begin{figure}
centering
daisyduck
end{figure}
Accessory verb|pic|s available: verb|daisy|
begin{tikzpicture}
pic[scale=.75, transform canvas={scale=.75}] at (.35,.25) {daisy};
end{tikzpicture}
hspace{1em} and verb|nacklace|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.5,1) {nacklace};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Mathematician version}
Command:
begin{center}
verb|mathduck|
end{center}
Result:
begin{figure}
centering
mathduck
end{figure}
Accessory verb|pic|s available:
verb|glasses|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.7,.2) {glasses};
end{tikzpicture}
hspace{2.4em} and verb|blackboard|
begin{tikzpicture}
pic[scale=.4, transform canvas={scale=.4}] at (1.4,.5) {blackboard};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Soccer player version}
Command:
begin{center}
verb|soccerduck|
end{center}
Result:
begin{figure}
centering
soccerduck
end{figure}
Accessory verb|pic| available: verb|soccerball|
begin{tikzpicture}
pic[scale=.5,transform canvas={scale=.5},transform shape] at (.5,.3) {soccerball};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{The Befana duckdots}
Using verb|displaystylemathwitch| $displaystylemathwitch$ from the gorgeous Gustavo Mezzetti's package verb|halloweenmath|, here is the Befanafootnote{For anyone who doesn't know who the Befana is, she's a sort of female version of Santa Claus, who brings gifts or coal (to good and bad children, respectively) every year on January, 6textsuperscript{th}.} duck!

Command:
begin{center}
verb|befanaduck|
end{center}
Result:
begin{figure}
centering
befanaduck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots the ghost duckdots}
Using verb|xrightswishingghost| $xrightswishingghost{}$, again from verb|halloweenmath| package, here is the ghost duck!\
Command:
begin{center}
verb|ghostduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.7textwidth}{!}{%
ghostduck
}
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots and the vampire duck!}
The vampire duck, with bats from verb|halloweenmath| package!

Command:
begin{center}
verb|vampireduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.5textwidth}{!}{%
vampireduck
}
end{figure}
end{frame}
end{document}





share|improve this answer


























  • +1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

    – GuM
    Jan 8 '17 at 1:57






  • 1





    Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

    – Chris H
    Jan 11 '17 at 11:21











  • @ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

    – CarLaTeX
    Jan 11 '17 at 13:16











  • Really lovely! (:-) But why not node {$displaystylemathwitch$}?

    – GuM
    Jan 11 '17 at 20:22











  • I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

    – GuM
    Jan 12 '17 at 0:39














35





+100







35





+100



35




+100





Here is what I have done till now (to be improved, of course).



enter image description here



This is my tikzducks.sty:



NeedsTeXFormat{LaTeX2e}
ProvidesPackage{tikzducks}[2016/01/05 All we need isdots ducks!]

RequirePackage{tikz}
usetikzlibrary{shapes.geometric,shapes.symbols,positioning,decorations.pathmorphing}
usetikzlibrary{shapes,arrows,decorations.markings}

RequirePackage{halloweenmath}

tikzset{%
pics/wing/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (1,0) to[bend left] (.7,-.6) to[bend left] cycle;
}},
pics/eye/.style={code={%
draw[fill=white] (-.1,-.05) ellipse (.3 and .2);
draw[fill=black] (0,0) circle[radius=.1];
}},
pics/paw/.style={code={%
draw[fill=orange] (0,0) -- (0,.8) -- (.1,.8) -- (.1,.05) -- (.8,.05) to[bend right] (.7,-.2) to[bend right] (.6,-.45) -- cycle;
}},
pics/body/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (.6,-1.2) to[bend right] (2,-2.4) to[bend right=70, smooth] (3.7,-.1) to[bend left] cycle;
}},
pics/head/.style={code={%
draw[fill=yellow] (0,0) circle[radius=.9];
}},
pics/closedbeak/.style={code={%
draw[fill=orange] (0,0) -- (-.35,.1) -- (-.65,-.3) -- (-.1,-.7) to[bend right=70] (.2,-.5) -- cycle;
}},
pics/openbeak/.style={code={%
draw[fill=orange] (0,0) -- (.5,.35) to[bend left=70] (.55,.25) -- (.23,-.29) -- (.3,-.7) to[bend left=70] (.25,-.75) -- (-.01,-.45) -- cycle;
}},
create duck coordinates/.style = {insert path={(0,0) coordinate (duck)}},
pics/duck/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic at (2.2,.8) {closedbeak};
pic[rotate=300] at (1.6,.9) {eye};
pic[xscale=1,yscale=-1,rotate=75] at (1.91,1.08) {eye};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create duckwithopenbeak coordinates/.style = {insert path={(0,0) coordinate (duckwithopenbeak)}},
pics/duckwithopenbeak/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic[rotate=300] at (1.94,1.06) {eye};
pic[rotate=-20] at (2.4,.9) {openbeak};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create bow coordinates/.style = {insert path={(1.3,1.8) coordinate (bow)}},
pics/bow/.style={code={%
draw[red, fill=pink, rounded corners] (0,0) -- (.7,.55) -- (.7,-.55) -- cycle;
draw[red, fill=pink, rounded corners] (0,0) -- (-.7,.55) -- (-.7,-.55) -- cycle;
draw[red, fill=pink] (0,0) circle [radius=1/4];
}},
pics/daisy/.style={code={%
foreach i in {0,45,...,325}
draw[blue, fill=white, rotate=i]
(0,0) .. controls ++(-30:1/2) and ++(30:1/2) .. cycle;
draw[orange, fill=yellow] circle [radius=1/8];
}},
create nacklace coordinates/.style = {insert path={(.6,.7) coordinate (nacklace)}},
pics/nacklace/.style={code={%
path (0,0) coordinate (nacklacebase);
pic at (nacklacebase) {daisy};
pic[below right=1em and 1em of nacklacebase] {daisy};
pic[below right=2em and 2em of nacklacebase] {daisy};
}},
create blackboard coordinates/.style = {insert path={(3.5,1.8) coordinate (blackboard)}},
pics/blackboard/.style={code={%
node at (0,0) [rectangle, fill=black, draw=brown, very thick,font={color{white}bfseriessmall},minimum height=10ex] {$ax^2+bx+c=0$};
}},
create glasses coordinates/.style = {insert path={(1.5,.8) coordinate (glasses)}},
pics/glasses/.style={code={%
node [circle, draw=blue, very thick,minimum height=1.1em] (rglass) {};
node[right=.5em of rglass, circle, draw=blue, very thick,minimum height=1.1em] (lglass) {};
coordinate[above left=.1em and .9em of rglass] (rrglass);
coordinate[below left=.5em and .1em of rrglass] (rrrglass);
coordinate[above right=.1em and .9em of lglass] (llglass);
coordinate[below right=.5em and .1em of llglass] (lllglass);
draw[draw=blue, very thick] (rglass) -- (lglass);
draw[draw=blue, very thick] (rglass) -- (rrglass) -- (rrrglass);
draw[draw=blue, very thick] (lglass) -- (llglass) -- (lllglass);
}},
create soccerball coordinates/.style = {insert path={(2.6,-1.1) coordinate (soccerball)}},
pics/soccerball/.style={code={%
draw[fill=white] (0,0) circle [radius=.9];
begin{scope}
clip (0,0) circle [radius=.9];
foreach i in {-.4,.4}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,.4) {};
foreach i in {-.8,0,.8}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,-.4) {};
end{scope}
}},
create befana coordinates/.style = {insert path={(0,0) coordinate (befana)}},
pics/befana/.style={code={%
node {$displaystylemathwitch$};
}},
create ghost coordinates/.style = {insert path={(-.8,-.12) coordinate (ghost)}},
pics/ghost/.style={code={%
node {$xrightswishingghost{mspace{30mu}}$};
}},
create help coordinates/.style = {insert path={(4.6,2.3) coordinate (help)}},
pics/help/.style={code={%
node[draw, fill=white, shape=starburst, text width=5.7em, text centered] (helpnode) {%
Help! \ A texttt{textbackslash phantom}!
};
coordinate[below left=-.1em and -0.3em of helpnode] (lhelpnode);
coordinate[below right=0.35em and -1.5em of helpnode] (rhelpnode);
coordinate[below left=2.3em and 1.1em of helpnode] (bhelpnode);
coordinate[below left=-.3em and -0.4em of helpnode] (llhelpnode);
coordinate[below right=0em and -.9em of helpnode] (rrhelpnode);
path[fill=white] (llhelpnode) -- (bhelpnode) -- (rrhelpnode);
draw[fill=white] (lhelpnode) -- (bhelpnode) -- (rhelpnode);
}},
create righttooth coordinates/.style = {insert path={(2.11,.1) coordinate (righttooth)}},
create lefttooth coordinates/.style = {insert path={(2.29,.15) coordinate (lefttooth)}},
pics/tooth/.style={code={%
draw[fill=white] (0,0) -- (.05,-.2) -- (.11,.1);
}},
create cloak coordinates/.style = {insert path={(.65,.69) coordinate (cloak)}},
pics/cloak/.style={code={%
draw[white,fill=black] (0,0) to[bend left=10] (-2.1,.1)
decorate [decoration={snake, segment length=10pt, amplitude=3pt}]
{to (-2,-1.4)} to[bend left=9] (.3,-.4) to[bend left=30] cycle;
draw[white,fill=black] (0,0) to[bend left=10] (-.1,.7) to[bend right=15] (.7,-.3) -- (.3,-.4) to[bend left=30] cycle;
}},
pics/batflock/.style={code={%
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=-50] {$mathbat$};},
mark=at position 0.04 with {node[scale=0.5,rotate=-40] {$mathbat$};},
mark=at position 0.07 with {node[scale=0.6,rotate=-35] {$mathbat$};},
mark=at position 0.11 with {node[scale=0.7,rotate=-30] {$mathbat$};},
mark=at position 0.15 with {node[scale=0.8,rotate=-20] {$mathbat$};},
mark=at position 0.20 with {node[scale=0.9,rotate=-10] {$mathbat$};},
mark=at position 0.25 with {node[scale=1.0,rotate=5] {$mathbat$};},
mark=at position 0.31 with {node[scale=1.1,rotate=15] {$mathbat$};},
mark=at position 0.38 with {node[scale=1.2,rotate=15] {$mathbat$};},
mark=at position 0.44 with {node[scale=1.3,rotate=0] {$mathbat$};},
mark=at position 0.50 with {node[scale=1.4,rotate=-15] {$mathbat$};},
mark=at position 0.57 with {node[scale=1.5,rotate=-25] {$mathbat$};},
mark=at position 0.65 with {node[scale=1.6,rotate=-30] {$mathbat$};},
mark=at position 0.73 with {node[scale=1.7,rotate=-35] {$mathbat$};},
mark=at position 0.81 with {node[scale=1.8,rotate=-40] {$mathbat$};},
mark=at position 0.89 with {node[scale=1.9,rotate=-42] {$mathbat$};},
}}] plot[smooth, tension=1] coordinates {(0,0) (2.5,1) (1,3) (7,4.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.06 with {node[scale=0.5,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.11 with {node[scale=0.6,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.17 with {node[scale=0.7,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.23 with {node[scale=0.8,rotate=5] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.30 with {node[scale=0.9,rotate=0] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.38 with {node[scale=1.0,rotate=-10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.48 with {node[scale=1.1,rotate=-20] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.58 with {node[scale=1.2,rotate=-30] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.68 with {node[scale=1.3,rotate=-40] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.79 with {node[scale=1.4,rotate=-41] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.90 with {node[scale=1.5,rotate=-42] {$xleftflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(1.7,1.3) (0,2.7) (2,4.5) (5,5.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.16 with {node[scale=0.4,rotate=-5] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.25 with {node[scale=0.5,rotate=-25] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.34 with {node[scale=0.6,rotate=-36] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.44 with {node[scale=0.7,rotate=-38] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.55 with {node[scale=0.8,rotate=-40] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.67 with {node[scale=0.9,rotate=-42] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.81 with {node[scale=1.0,rotate=-46] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.95 with {node[scale=1.1,rotate=-50] {$xrightflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(2.5,2) (2,2.7) (6.5,3.3)};
}},
}

newcommand{duck}{%
begin{tikzpicture}
pic {duck};
end{tikzpicture}
}

newcommand{daisyduck}{%
begin{tikzpicture}
pic {duck};
path[create nacklace coordinates];
pic at (nacklace) {nacklace};
end{tikzpicture}
}

newcommand{femaleduck}{%
begin{tikzpicture}
pic {duck};
path[create bow coordinates];
pic[rotate=35] at (bow) {bow};
end{tikzpicture}
}

newcommand{mathduck}{%
begin{tikzpicture}
path[create blackboard coordinates];
pic at (blackboard) {blackboard};
pic {duck};
path[create glasses coordinates];
pic[rotate=30, transform shape] at (glasses) {glasses};
end{tikzpicture}
}

newcommand{soccerduck}{%
begin{tikzpicture}
pic {duck};
path[create soccerball coordinates];
pic[rotate=30] at (soccerball) {soccerball};
end{tikzpicture}
}

newcommand{befanaduck}{%
begin{tikzpicture}
path[use as bounding box] (-2.5,-1.5) rectangle (2.5,1.5);
pic[scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (3.17,1.59) {duck};
path[create befana coordinates];
pic[transform canvas={scale=4}] at (befana) {befana};
pic[rotate=330,scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (paw) {paw};
end{tikzpicture}
}

newcommand{ghostduck}{%
begin{tikzpicture}
path[use as bounding box] (-6,-2.5) rectangle (6,2.5);
path[create ghost coordinates];
pic[transform canvas={scale=7}] at (ghost) {ghost};
pic {duckwithopenbeak};
path[create help coordinates];
pic at (help) {help};
end{tikzpicture}
}

newcommand{vampireduck}{%
begin{tikzpicture}
pic at (-6,-1) {batflock};
path[create righttooth coordinates];
pic at (righttooth) {tooth};
path[create lefttooth coordinates];
pic at (lefttooth) {tooth};
pic {duck};
path[create cloak coordinates];
pic at (cloak) {cloak};
pic at (-1,0) {wing};
end{tikzpicture}
}


This is the code of the presentation:



% arara: pdflatex
% arara: convert: {density: 160, otheroptions: -dispose previous -delay 140 -loop 1, format: gif}
documentclass{beamer}
usepackage{cprotect}
usepackage{tikzducks}

usetheme{Madrid}
setbeamertemplate{navigation symbols}{}
cprotecttitle{Quack guide to verb|tikzducks| package}
subtitle{Actually, some examples to be improved and transformed into a package}
author{CarLaTeX}
institute{Duck fan club}

begin{document}
begin{frame}[plain]
titlepage
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Standard version}
Command:
begin{center}
verb|duck|
end{center}
Result:
begin{figure}
centering
duck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Female version}
Command:
begin{center}
verb|femaleduck|
end{center}
Result:
begin{figure}
centering
femaleduck
end{figure}
Accessory verb|pic| available: verb|bow|
begin{tikzpicture}
pic[scale=.7, transform canvas={scale=.7}] at (.6,.2) {bow};
end{tikzpicture}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Daisy version}
Command:
begin{center}
verb|daisyduck|
end{center}
Result:
begin{figure}
centering
daisyduck
end{figure}
Accessory verb|pic|s available: verb|daisy|
begin{tikzpicture}
pic[scale=.75, transform canvas={scale=.75}] at (.35,.25) {daisy};
end{tikzpicture}
hspace{1em} and verb|nacklace|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.5,1) {nacklace};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Mathematician version}
Command:
begin{center}
verb|mathduck|
end{center}
Result:
begin{figure}
centering
mathduck
end{figure}
Accessory verb|pic|s available:
verb|glasses|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.7,.2) {glasses};
end{tikzpicture}
hspace{2.4em} and verb|blackboard|
begin{tikzpicture}
pic[scale=.4, transform canvas={scale=.4}] at (1.4,.5) {blackboard};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Soccer player version}
Command:
begin{center}
verb|soccerduck|
end{center}
Result:
begin{figure}
centering
soccerduck
end{figure}
Accessory verb|pic| available: verb|soccerball|
begin{tikzpicture}
pic[scale=.5,transform canvas={scale=.5},transform shape] at (.5,.3) {soccerball};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{The Befana duckdots}
Using verb|displaystylemathwitch| $displaystylemathwitch$ from the gorgeous Gustavo Mezzetti's package verb|halloweenmath|, here is the Befanafootnote{For anyone who doesn't know who the Befana is, she's a sort of female version of Santa Claus, who brings gifts or coal (to good and bad children, respectively) every year on January, 6textsuperscript{th}.} duck!

Command:
begin{center}
verb|befanaduck|
end{center}
Result:
begin{figure}
centering
befanaduck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots the ghost duckdots}
Using verb|xrightswishingghost| $xrightswishingghost{}$, again from verb|halloweenmath| package, here is the ghost duck!\
Command:
begin{center}
verb|ghostduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.7textwidth}{!}{%
ghostduck
}
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots and the vampire duck!}
The vampire duck, with bats from verb|halloweenmath| package!

Command:
begin{center}
verb|vampireduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.5textwidth}{!}{%
vampireduck
}
end{figure}
end{frame}
end{document}





share|improve this answer















Here is what I have done till now (to be improved, of course).



enter image description here



This is my tikzducks.sty:



NeedsTeXFormat{LaTeX2e}
ProvidesPackage{tikzducks}[2016/01/05 All we need isdots ducks!]

RequirePackage{tikz}
usetikzlibrary{shapes.geometric,shapes.symbols,positioning,decorations.pathmorphing}
usetikzlibrary{shapes,arrows,decorations.markings}

RequirePackage{halloweenmath}

tikzset{%
pics/wing/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (1,0) to[bend left] (.7,-.6) to[bend left] cycle;
}},
pics/eye/.style={code={%
draw[fill=white] (-.1,-.05) ellipse (.3 and .2);
draw[fill=black] (0,0) circle[radius=.1];
}},
pics/paw/.style={code={%
draw[fill=orange] (0,0) -- (0,.8) -- (.1,.8) -- (.1,.05) -- (.8,.05) to[bend right] (.7,-.2) to[bend right] (.6,-.45) -- cycle;
}},
pics/body/.style={code={%
draw[fill=yellow] (0,0) to[bend right] (.6,-1.2) to[bend right] (2,-2.4) to[bend right=70, smooth] (3.7,-.1) to[bend left] cycle;
}},
pics/head/.style={code={%
draw[fill=yellow] (0,0) circle[radius=.9];
}},
pics/closedbeak/.style={code={%
draw[fill=orange] (0,0) -- (-.35,.1) -- (-.65,-.3) -- (-.1,-.7) to[bend right=70] (.2,-.5) -- cycle;
}},
pics/openbeak/.style={code={%
draw[fill=orange] (0,0) -- (.5,.35) to[bend left=70] (.55,.25) -- (.23,-.29) -- (.3,-.7) to[bend left=70] (.25,-.75) -- (-.01,-.45) -- cycle;
}},
create duck coordinates/.style = {insert path={(0,0) coordinate (duck)}},
pics/duck/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic at (2.2,.8) {closedbeak};
pic[rotate=300] at (1.6,.9) {eye};
pic[xscale=1,yscale=-1,rotate=75] at (1.91,1.08) {eye};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create duckwithopenbeak coordinates/.style = {insert path={(0,0) coordinate (duckwithopenbeak)}},
pics/duckwithopenbeak/.style={code={%
pic[rotate=30] at (.5,-1.8) {paw};
pic at (-2.5,1) {body};
pic at (-1,0) {wing};
pic at (1.5,1) {head};
pic[rotate=300] at (1.94,1.06) {eye};
pic[rotate=-20] at (2.4,.9) {openbeak};
path (-1,-1.8) coordinate (paw);
pic[rotate=330] at (paw) {paw};
}},
create bow coordinates/.style = {insert path={(1.3,1.8) coordinate (bow)}},
pics/bow/.style={code={%
draw[red, fill=pink, rounded corners] (0,0) -- (.7,.55) -- (.7,-.55) -- cycle;
draw[red, fill=pink, rounded corners] (0,0) -- (-.7,.55) -- (-.7,-.55) -- cycle;
draw[red, fill=pink] (0,0) circle [radius=1/4];
}},
pics/daisy/.style={code={%
foreach i in {0,45,...,325}
draw[blue, fill=white, rotate=i]
(0,0) .. controls ++(-30:1/2) and ++(30:1/2) .. cycle;
draw[orange, fill=yellow] circle [radius=1/8];
}},
create nacklace coordinates/.style = {insert path={(.6,.7) coordinate (nacklace)}},
pics/nacklace/.style={code={%
path (0,0) coordinate (nacklacebase);
pic at (nacklacebase) {daisy};
pic[below right=1em and 1em of nacklacebase] {daisy};
pic[below right=2em and 2em of nacklacebase] {daisy};
}},
create blackboard coordinates/.style = {insert path={(3.5,1.8) coordinate (blackboard)}},
pics/blackboard/.style={code={%
node at (0,0) [rectangle, fill=black, draw=brown, very thick,font={color{white}bfseriessmall},minimum height=10ex] {$ax^2+bx+c=0$};
}},
create glasses coordinates/.style = {insert path={(1.5,.8) coordinate (glasses)}},
pics/glasses/.style={code={%
node [circle, draw=blue, very thick,minimum height=1.1em] (rglass) {};
node[right=.5em of rglass, circle, draw=blue, very thick,minimum height=1.1em] (lglass) {};
coordinate[above left=.1em and .9em of rglass] (rrglass);
coordinate[below left=.5em and .1em of rrglass] (rrrglass);
coordinate[above right=.1em and .9em of lglass] (llglass);
coordinate[below right=.5em and .1em of llglass] (lllglass);
draw[draw=blue, very thick] (rglass) -- (lglass);
draw[draw=blue, very thick] (rglass) -- (rrglass) -- (rrrglass);
draw[draw=blue, very thick] (lglass) -- (llglass) -- (lllglass);
}},
create soccerball coordinates/.style = {insert path={(2.6,-1.1) coordinate (soccerball)}},
pics/soccerball/.style={code={%
draw[fill=white] (0,0) circle [radius=.9];
begin{scope}
clip (0,0) circle [radius=.9];
foreach i in {-.4,.4}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,.4) {};
foreach i in {-.8,0,.8}
node[regular polygon,regular polygon sides=6,fill=black,minimum height=3.5ex] at (i,-.4) {};
end{scope}
}},
create befana coordinates/.style = {insert path={(0,0) coordinate (befana)}},
pics/befana/.style={code={%
node {$displaystylemathwitch$};
}},
create ghost coordinates/.style = {insert path={(-.8,-.12) coordinate (ghost)}},
pics/ghost/.style={code={%
node {$xrightswishingghost{mspace{30mu}}$};
}},
create help coordinates/.style = {insert path={(4.6,2.3) coordinate (help)}},
pics/help/.style={code={%
node[draw, fill=white, shape=starburst, text width=5.7em, text centered] (helpnode) {%
Help! \ A texttt{textbackslash phantom}!
};
coordinate[below left=-.1em and -0.3em of helpnode] (lhelpnode);
coordinate[below right=0.35em and -1.5em of helpnode] (rhelpnode);
coordinate[below left=2.3em and 1.1em of helpnode] (bhelpnode);
coordinate[below left=-.3em and -0.4em of helpnode] (llhelpnode);
coordinate[below right=0em and -.9em of helpnode] (rrhelpnode);
path[fill=white] (llhelpnode) -- (bhelpnode) -- (rrhelpnode);
draw[fill=white] (lhelpnode) -- (bhelpnode) -- (rhelpnode);
}},
create righttooth coordinates/.style = {insert path={(2.11,.1) coordinate (righttooth)}},
create lefttooth coordinates/.style = {insert path={(2.29,.15) coordinate (lefttooth)}},
pics/tooth/.style={code={%
draw[fill=white] (0,0) -- (.05,-.2) -- (.11,.1);
}},
create cloak coordinates/.style = {insert path={(.65,.69) coordinate (cloak)}},
pics/cloak/.style={code={%
draw[white,fill=black] (0,0) to[bend left=10] (-2.1,.1)
decorate [decoration={snake, segment length=10pt, amplitude=3pt}]
{to (-2,-1.4)} to[bend left=9] (.3,-.4) to[bend left=30] cycle;
draw[white,fill=black] (0,0) to[bend left=10] (-.1,.7) to[bend right=15] (.7,-.3) -- (.3,-.4) to[bend left=30] cycle;
}},
pics/batflock/.style={code={%
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=-50] {$mathbat$};},
mark=at position 0.04 with {node[scale=0.5,rotate=-40] {$mathbat$};},
mark=at position 0.07 with {node[scale=0.6,rotate=-35] {$mathbat$};},
mark=at position 0.11 with {node[scale=0.7,rotate=-30] {$mathbat$};},
mark=at position 0.15 with {node[scale=0.8,rotate=-20] {$mathbat$};},
mark=at position 0.20 with {node[scale=0.9,rotate=-10] {$mathbat$};},
mark=at position 0.25 with {node[scale=1.0,rotate=5] {$mathbat$};},
mark=at position 0.31 with {node[scale=1.1,rotate=15] {$mathbat$};},
mark=at position 0.38 with {node[scale=1.2,rotate=15] {$mathbat$};},
mark=at position 0.44 with {node[scale=1.3,rotate=0] {$mathbat$};},
mark=at position 0.50 with {node[scale=1.4,rotate=-15] {$mathbat$};},
mark=at position 0.57 with {node[scale=1.5,rotate=-25] {$mathbat$};},
mark=at position 0.65 with {node[scale=1.6,rotate=-30] {$mathbat$};},
mark=at position 0.73 with {node[scale=1.7,rotate=-35] {$mathbat$};},
mark=at position 0.81 with {node[scale=1.8,rotate=-40] {$mathbat$};},
mark=at position 0.89 with {node[scale=1.9,rotate=-42] {$mathbat$};},
}}] plot[smooth, tension=1] coordinates {(0,0) (2.5,1) (1,3) (7,4.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.01 with {node[scale=0.4,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.06 with {node[scale=0.5,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.11 with {node[scale=0.6,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.17 with {node[scale=0.7,rotate=10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.23 with {node[scale=0.8,rotate=5] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.30 with {node[scale=0.9,rotate=0] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.38 with {node[scale=1.0,rotate=-10] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.48 with {node[scale=1.1,rotate=-20] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.58 with {node[scale=1.2,rotate=-30] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.68 with {node[scale=1.3,rotate=-40] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.79 with {node[scale=1.4,rotate=-41] {$xleftflutteringbat{mspace{30mu}}$};},
mark=at position 0.90 with {node[scale=1.5,rotate=-42] {$xleftflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(1.7,1.3) (0,2.7) (2,4.5) (5,5.5)};
path[postaction={decorate,decoration={markings,
mark=at position 0.16 with {node[scale=0.4,rotate=-5] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.25 with {node[scale=0.5,rotate=-25] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.34 with {node[scale=0.6,rotate=-36] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.44 with {node[scale=0.7,rotate=-38] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.55 with {node[scale=0.8,rotate=-40] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.67 with {node[scale=0.9,rotate=-42] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.81 with {node[scale=1.0,rotate=-46] {$xrightflutteringbat{mspace{30mu}}$};},
mark=at position 0.95 with {node[scale=1.1,rotate=-50] {$xrightflutteringbat{mspace{30mu}}$};},
}}] plot[smooth, tension=1] coordinates {(2.5,2) (2,2.7) (6.5,3.3)};
}},
}

newcommand{duck}{%
begin{tikzpicture}
pic {duck};
end{tikzpicture}
}

newcommand{daisyduck}{%
begin{tikzpicture}
pic {duck};
path[create nacklace coordinates];
pic at (nacklace) {nacklace};
end{tikzpicture}
}

newcommand{femaleduck}{%
begin{tikzpicture}
pic {duck};
path[create bow coordinates];
pic[rotate=35] at (bow) {bow};
end{tikzpicture}
}

newcommand{mathduck}{%
begin{tikzpicture}
path[create blackboard coordinates];
pic at (blackboard) {blackboard};
pic {duck};
path[create glasses coordinates];
pic[rotate=30, transform shape] at (glasses) {glasses};
end{tikzpicture}
}

newcommand{soccerduck}{%
begin{tikzpicture}
pic {duck};
path[create soccerball coordinates];
pic[rotate=30] at (soccerball) {soccerball};
end{tikzpicture}
}

newcommand{befanaduck}{%
begin{tikzpicture}
path[use as bounding box] (-2.5,-1.5) rectangle (2.5,1.5);
pic[scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (3.17,1.59) {duck};
path[create befana coordinates];
pic[transform canvas={scale=4}] at (befana) {befana};
pic[rotate=330,scale=.45,transform canvas={scale=.45},transform shape,rotate=20] at (paw) {paw};
end{tikzpicture}
}

newcommand{ghostduck}{%
begin{tikzpicture}
path[use as bounding box] (-6,-2.5) rectangle (6,2.5);
path[create ghost coordinates];
pic[transform canvas={scale=7}] at (ghost) {ghost};
pic {duckwithopenbeak};
path[create help coordinates];
pic at (help) {help};
end{tikzpicture}
}

newcommand{vampireduck}{%
begin{tikzpicture}
pic at (-6,-1) {batflock};
path[create righttooth coordinates];
pic at (righttooth) {tooth};
path[create lefttooth coordinates];
pic at (lefttooth) {tooth};
pic {duck};
path[create cloak coordinates];
pic at (cloak) {cloak};
pic at (-1,0) {wing};
end{tikzpicture}
}


This is the code of the presentation:



% arara: pdflatex
% arara: convert: {density: 160, otheroptions: -dispose previous -delay 140 -loop 1, format: gif}
documentclass{beamer}
usepackage{cprotect}
usepackage{tikzducks}

usetheme{Madrid}
setbeamertemplate{navigation symbols}{}
cprotecttitle{Quack guide to verb|tikzducks| package}
subtitle{Actually, some examples to be improved and transformed into a package}
author{CarLaTeX}
institute{Duck fan club}

begin{document}
begin{frame}[plain]
titlepage
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Standard version}
Command:
begin{center}
verb|duck|
end{center}
Result:
begin{figure}
centering
duck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Female version}
Command:
begin{center}
verb|femaleduck|
end{center}
Result:
begin{figure}
centering
femaleduck
end{figure}
Accessory verb|pic| available: verb|bow|
begin{tikzpicture}
pic[scale=.7, transform canvas={scale=.7}] at (.6,.2) {bow};
end{tikzpicture}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Daisy version}
Command:
begin{center}
verb|daisyduck|
end{center}
Result:
begin{figure}
centering
daisyduck
end{figure}
Accessory verb|pic|s available: verb|daisy|
begin{tikzpicture}
pic[scale=.75, transform canvas={scale=.75}] at (.35,.25) {daisy};
end{tikzpicture}
hspace{1em} and verb|nacklace|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.5,1) {nacklace};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Mathematician version}
Command:
begin{center}
verb|mathduck|
end{center}
Result:
begin{figure}
centering
mathduck
end{figure}
Accessory verb|pic|s available:
verb|glasses|
begin{tikzpicture}
pic[scale=.5, transform canvas={scale=.5}] at (.7,.2) {glasses};
end{tikzpicture}
hspace{2.4em} and verb|blackboard|
begin{tikzpicture}
pic[scale=.4, transform canvas={scale=.4}] at (1.4,.5) {blackboard};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{Soccer player version}
Command:
begin{center}
verb|soccerduck|
end{center}
Result:
begin{figure}
centering
soccerduck
end{figure}
Accessory verb|pic| available: verb|soccerball|
begin{tikzpicture}
pic[scale=.5,transform canvas={scale=.5},transform shape] at (.5,.3) {soccerball};
end{tikzpicture}\
end{frame}
begin{frame}[fragile=singleslide]
frametitle{The Befana duckdots}
Using verb|displaystylemathwitch| $displaystylemathwitch$ from the gorgeous Gustavo Mezzetti's package verb|halloweenmath|, here is the Befanafootnote{For anyone who doesn't know who the Befana is, she's a sort of female version of Santa Claus, who brings gifts or coal (to good and bad children, respectively) every year on January, 6textsuperscript{th}.} duck!

Command:
begin{center}
verb|befanaduck|
end{center}
Result:
begin{figure}
centering
befanaduck
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots the ghost duckdots}
Using verb|xrightswishingghost| $xrightswishingghost{}$, again from verb|halloweenmath| package, here is the ghost duck!\
Command:
begin{center}
verb|ghostduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.7textwidth}{!}{%
ghostduck
}
end{figure}
end{frame}
begin{frame}[fragile=singleslide]
frametitle{dots and the vampire duck!}
The vampire duck, with bats from verb|halloweenmath| package!

Command:
begin{center}
verb|vampireduck|
end{center}
Result:
begin{figure}
centering
resizebox{0.5textwidth}{!}{%
vampireduck
}
end{figure}
end{frame}
end{document}






share|improve this answer














share|improve this answer



share|improve this answer








edited Jun 2 '17 at 20:03

























answered Jan 6 '17 at 20:33









CarLaTeXCarLaTeX

30.8k449129




30.8k449129













  • +1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

    – GuM
    Jan 8 '17 at 1:57






  • 1





    Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

    – Chris H
    Jan 11 '17 at 11:21











  • @ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

    – CarLaTeX
    Jan 11 '17 at 13:16











  • Really lovely! (:-) But why not node {$displaystylemathwitch$}?

    – GuM
    Jan 11 '17 at 20:22











  • I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

    – GuM
    Jan 12 '17 at 0:39



















  • +1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

    – GuM
    Jan 8 '17 at 1:57






  • 1





    Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

    – Chris H
    Jan 11 '17 at 11:21











  • @ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

    – CarLaTeX
    Jan 11 '17 at 13:16











  • Really lovely! (:-) But why not node {$displaystylemathwitch$}?

    – GuM
    Jan 11 '17 at 20:22











  • I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

    – GuM
    Jan 12 '17 at 0:39

















+1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

– GuM
Jan 8 '17 at 1:57





+1! But I cannot see the rationale for including (or even just for considering inclusion of) the halloweenmath package…

– GuM
Jan 8 '17 at 1:57




1




1





Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

– Chris H
Jan 11 '17 at 11:21





Do you know Room on the Broom (kids' book)? he duck sits just where the cat does in the illustrations. The witch had a duck and... I wonder what a good rhyme would be

– Chris H
Jan 11 '17 at 11:21













@ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

– CarLaTeX
Jan 11 '17 at 13:16





@ChrisH I didn't know that kids' book, but in the halloweenmath package there is a black cat on the broom, let's see if someone can find a good rhyme! Hahaha

– CarLaTeX
Jan 11 '17 at 13:16













Really lovely! (:-) But why not node {$displaystylemathwitch$}?

– GuM
Jan 11 '17 at 20:22





Really lovely! (:-) But why not node {$displaystylemathwitch$}?

– GuM
Jan 11 '17 at 20:22













I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

– GuM
Jan 12 '17 at 0:39





I think that just the beard is worth it! :-) And now that you are at it, what about a duck pursued by a ghost? :o)

– GuM
Jan 12 '17 at 0:39











12














Since David Carlisle is too shy to add his solutions here, I've copied them from chat for him and added as community wiki.



documentclass{article}
usepackage{color}
begin{document}
Football duck:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
{thicklinesmultiput(30,40)(9,0){5}{line(0,1){17}}}%
put(70,42){circle*{10}}
end{picture}

Pineapple pizza duck dedicated to me:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
put(70,42){{color[RGB]{230,230,200}circle*{40}}}
put(70,42){{color{yellow}rule{2pt}{2pt}}}
put(65,38){{color{yellow}rule{2pt}{2pt}}}
put(66,42){{color{yellow}rule{2pt}{2pt}}}
put(72,36){{color{yellow}rule{2pt}{2pt}}}
put(75,42){{color{yellow}rule{2pt}{2pt}}}
put(72,46){{color{yellow}rule{2pt}{2pt}}}
put(69,43){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(65,36){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(62,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(69,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(71,38){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(66,45){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
end{picture}
end{document}


enter image description here






share|improve this answer





















  • 2





    I'm too shy, it says so above.

    – David Carlisle
    Sep 8 '17 at 10:25
















12














Since David Carlisle is too shy to add his solutions here, I've copied them from chat for him and added as community wiki.



documentclass{article}
usepackage{color}
begin{document}
Football duck:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
{thicklinesmultiput(30,40)(9,0){5}{line(0,1){17}}}%
put(70,42){circle*{10}}
end{picture}

Pineapple pizza duck dedicated to me:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
put(70,42){{color[RGB]{230,230,200}circle*{40}}}
put(70,42){{color{yellow}rule{2pt}{2pt}}}
put(65,38){{color{yellow}rule{2pt}{2pt}}}
put(66,42){{color{yellow}rule{2pt}{2pt}}}
put(72,36){{color{yellow}rule{2pt}{2pt}}}
put(75,42){{color{yellow}rule{2pt}{2pt}}}
put(72,46){{color{yellow}rule{2pt}{2pt}}}
put(69,43){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(65,36){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(62,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(69,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(71,38){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(66,45){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
end{picture}
end{document}


enter image description here






share|improve this answer





















  • 2





    I'm too shy, it says so above.

    – David Carlisle
    Sep 8 '17 at 10:25














12












12








12







Since David Carlisle is too shy to add his solutions here, I've copied them from chat for him and added as community wiki.



documentclass{article}
usepackage{color}
begin{document}
Football duck:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
{thicklinesmultiput(30,40)(9,0){5}{line(0,1){17}}}%
put(70,42){circle*{10}}
end{picture}

Pineapple pizza duck dedicated to me:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
put(70,42){{color[RGB]{230,230,200}circle*{40}}}
put(70,42){{color{yellow}rule{2pt}{2pt}}}
put(65,38){{color{yellow}rule{2pt}{2pt}}}
put(66,42){{color{yellow}rule{2pt}{2pt}}}
put(72,36){{color{yellow}rule{2pt}{2pt}}}
put(75,42){{color{yellow}rule{2pt}{2pt}}}
put(72,46){{color{yellow}rule{2pt}{2pt}}}
put(69,43){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(65,36){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(62,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(69,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(71,38){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(66,45){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
end{picture}
end{document}


enter image description here






share|improve this answer















Since David Carlisle is too shy to add his solutions here, I've copied them from chat for him and added as community wiki.



documentclass{article}
usepackage{color}
begin{document}
Football duck:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
{thicklinesmultiput(30,40)(9,0){5}{line(0,1){17}}}%
put(70,42){circle*{10}}
end{picture}

Pineapple pizza duck dedicated to me:

begin{picture}(100,100)
put(50,50){oval(50,20){}}
put(70,65){circle{20}}
put(35,50){line(1,0){30}}
put(70,65){circle*{2}}
put(75,67){line(6,-1){10}}
put(75,63){line(6,1){10}}
put(70,42){{color[RGB]{230,230,200}circle*{40}}}
put(70,42){{color{yellow}rule{2pt}{2pt}}}
put(65,38){{color{yellow}rule{2pt}{2pt}}}
put(66,42){{color{yellow}rule{2pt}{2pt}}}
put(72,36){{color{yellow}rule{2pt}{2pt}}}
put(75,42){{color{yellow}rule{2pt}{2pt}}}
put(72,46){{color{yellow}rule{2pt}{2pt}}}
put(69,43){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(65,36){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(62,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(69,40){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(71,38){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
put(66,45){{color[RGB]{255,128,64}rule{2pt}{2pt}}}
end{picture}
end{document}


enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








answered Sep 8 '17 at 9:21


























community wiki





CarLaTeX









  • 2





    I'm too shy, it says so above.

    – David Carlisle
    Sep 8 '17 at 10:25














  • 2





    I'm too shy, it says so above.

    – David Carlisle
    Sep 8 '17 at 10:25








2




2





I'm too shy, it says so above.

– David Carlisle
Sep 8 '17 at 10:25





I'm too shy, it says so above.

– David Carlisle
Sep 8 '17 at 10:25











8
















I'm pretty sure that somebody is going to complain that this answer is insufficiently serious and unworthy of this site's lofty aims. To the critics say I, you clearly spend too little time mucking about in the river.





True love with a soul mate ...



documentclass[border=10pt,x11names,dvipsnames,svgnames]{standalone}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
newcounter{duckno}
tikzset{
hwyaden/.pic={
tikzset{hwyaden/.cd, shading/.style={#1}}
stepcounter{duckno}
begin{scope}[local bounding box/.expanded=htheduckno]
shade [hwyaden/shading] (0,0) -- (-mathhwyaden,0) -- (120:{6*mathhwyaden}) arc (120:60:{6*mathhwyaden}) -- (mathhwyaden,0) -- cycle;
end{scope}
clip ([yshift={-4*mathhwyaden},xshift={-2*mathhwyaden}]htheduckno.south west) coordinate (a) rectangle ([yshift={6*mathhwyaden}, xshift={2*mathhwyaden}]htheduckno.east |- a) coordinate (e);
shade [top color=blue!50!cyan, bottom color=blue!75!black!25, middle color=blue!50!black, decorate, decoration={snake, amplitude=1pt, segment length=mathhwyaden}] ([xshift=mathhwyaden, yshift=-mathhwyaden]e) -| ([xshift=-mathhwyaden, yshift=-mathhwyaden]a) -| cycle;
},
hwyaden/.search also={/tikz/},
hwyaden/.cd,
shading/.style=black,
size/.store in=mathhwyaden,
size=10pt,
}
begin{document}
begin{tikzpicture}
pic {hwyaden={ball color=brown, postaction={outer color=Brown, inner color=Apricot, opacity=.5}}};
pic at (60pt,0) {hwyaden={preaction={outer color=DarkGreen, inner color=ForestGreen, opacity=1}, ball color=LimeGreen, opacity=.75, postaction={outer color=DarkGreen, inner color=Gold, opacity=.75}}};
node (d) [anchor=mid west, white, font=itshapebfseries, align=left] at ([yshift={-5*mathhwyaden}]h1.west) {Heads down, tails up,\Dabbling free!};
node [white, anchor=north east, font=footnotesizeitshape] at (d.south -| current bounding box.east) {--- Kenneth Grahame};
end{tikzpicture}
end{document}


A duck with her drake ...



duck & drake






share|improve this answer


























  • google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

    – CarLaTeX
    Jul 29 '17 at 3:18











  • @CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

    – cfr
    Jul 29 '17 at 3:26











  • I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

    – CarLaTeX
    Jul 29 '17 at 3:33











  • @CarLaTeX My duck and her drake aspire to be peacocks.

    – cfr
    Jul 29 '17 at 3:35






  • 1





    @samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

    – cfr
    Jul 29 '17 at 16:06
















8
















I'm pretty sure that somebody is going to complain that this answer is insufficiently serious and unworthy of this site's lofty aims. To the critics say I, you clearly spend too little time mucking about in the river.





True love with a soul mate ...



documentclass[border=10pt,x11names,dvipsnames,svgnames]{standalone}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
newcounter{duckno}
tikzset{
hwyaden/.pic={
tikzset{hwyaden/.cd, shading/.style={#1}}
stepcounter{duckno}
begin{scope}[local bounding box/.expanded=htheduckno]
shade [hwyaden/shading] (0,0) -- (-mathhwyaden,0) -- (120:{6*mathhwyaden}) arc (120:60:{6*mathhwyaden}) -- (mathhwyaden,0) -- cycle;
end{scope}
clip ([yshift={-4*mathhwyaden},xshift={-2*mathhwyaden}]htheduckno.south west) coordinate (a) rectangle ([yshift={6*mathhwyaden}, xshift={2*mathhwyaden}]htheduckno.east |- a) coordinate (e);
shade [top color=blue!50!cyan, bottom color=blue!75!black!25, middle color=blue!50!black, decorate, decoration={snake, amplitude=1pt, segment length=mathhwyaden}] ([xshift=mathhwyaden, yshift=-mathhwyaden]e) -| ([xshift=-mathhwyaden, yshift=-mathhwyaden]a) -| cycle;
},
hwyaden/.search also={/tikz/},
hwyaden/.cd,
shading/.style=black,
size/.store in=mathhwyaden,
size=10pt,
}
begin{document}
begin{tikzpicture}
pic {hwyaden={ball color=brown, postaction={outer color=Brown, inner color=Apricot, opacity=.5}}};
pic at (60pt,0) {hwyaden={preaction={outer color=DarkGreen, inner color=ForestGreen, opacity=1}, ball color=LimeGreen, opacity=.75, postaction={outer color=DarkGreen, inner color=Gold, opacity=.75}}};
node (d) [anchor=mid west, white, font=itshapebfseries, align=left] at ([yshift={-5*mathhwyaden}]h1.west) {Heads down, tails up,\Dabbling free!};
node [white, anchor=north east, font=footnotesizeitshape] at (d.south -| current bounding box.east) {--- Kenneth Grahame};
end{tikzpicture}
end{document}


A duck with her drake ...



duck & drake






share|improve this answer


























  • google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

    – CarLaTeX
    Jul 29 '17 at 3:18











  • @CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

    – cfr
    Jul 29 '17 at 3:26











  • I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

    – CarLaTeX
    Jul 29 '17 at 3:33











  • @CarLaTeX My duck and her drake aspire to be peacocks.

    – cfr
    Jul 29 '17 at 3:35






  • 1





    @samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

    – cfr
    Jul 29 '17 at 16:06














8












8








8









I'm pretty sure that somebody is going to complain that this answer is insufficiently serious and unworthy of this site's lofty aims. To the critics say I, you clearly spend too little time mucking about in the river.





True love with a soul mate ...



documentclass[border=10pt,x11names,dvipsnames,svgnames]{standalone}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
newcounter{duckno}
tikzset{
hwyaden/.pic={
tikzset{hwyaden/.cd, shading/.style={#1}}
stepcounter{duckno}
begin{scope}[local bounding box/.expanded=htheduckno]
shade [hwyaden/shading] (0,0) -- (-mathhwyaden,0) -- (120:{6*mathhwyaden}) arc (120:60:{6*mathhwyaden}) -- (mathhwyaden,0) -- cycle;
end{scope}
clip ([yshift={-4*mathhwyaden},xshift={-2*mathhwyaden}]htheduckno.south west) coordinate (a) rectangle ([yshift={6*mathhwyaden}, xshift={2*mathhwyaden}]htheduckno.east |- a) coordinate (e);
shade [top color=blue!50!cyan, bottom color=blue!75!black!25, middle color=blue!50!black, decorate, decoration={snake, amplitude=1pt, segment length=mathhwyaden}] ([xshift=mathhwyaden, yshift=-mathhwyaden]e) -| ([xshift=-mathhwyaden, yshift=-mathhwyaden]a) -| cycle;
},
hwyaden/.search also={/tikz/},
hwyaden/.cd,
shading/.style=black,
size/.store in=mathhwyaden,
size=10pt,
}
begin{document}
begin{tikzpicture}
pic {hwyaden={ball color=brown, postaction={outer color=Brown, inner color=Apricot, opacity=.5}}};
pic at (60pt,0) {hwyaden={preaction={outer color=DarkGreen, inner color=ForestGreen, opacity=1}, ball color=LimeGreen, opacity=.75, postaction={outer color=DarkGreen, inner color=Gold, opacity=.75}}};
node (d) [anchor=mid west, white, font=itshapebfseries, align=left] at ([yshift={-5*mathhwyaden}]h1.west) {Heads down, tails up,\Dabbling free!};
node [white, anchor=north east, font=footnotesizeitshape] at (d.south -| current bounding box.east) {--- Kenneth Grahame};
end{tikzpicture}
end{document}


A duck with her drake ...



duck & drake






share|improve this answer

















I'm pretty sure that somebody is going to complain that this answer is insufficiently serious and unworthy of this site's lofty aims. To the critics say I, you clearly spend too little time mucking about in the river.





True love with a soul mate ...



documentclass[border=10pt,x11names,dvipsnames,svgnames]{standalone}
usepackage{tikz}
usetikzlibrary{decorations.pathmorphing}
newcounter{duckno}
tikzset{
hwyaden/.pic={
tikzset{hwyaden/.cd, shading/.style={#1}}
stepcounter{duckno}
begin{scope}[local bounding box/.expanded=htheduckno]
shade [hwyaden/shading] (0,0) -- (-mathhwyaden,0) -- (120:{6*mathhwyaden}) arc (120:60:{6*mathhwyaden}) -- (mathhwyaden,0) -- cycle;
end{scope}
clip ([yshift={-4*mathhwyaden},xshift={-2*mathhwyaden}]htheduckno.south west) coordinate (a) rectangle ([yshift={6*mathhwyaden}, xshift={2*mathhwyaden}]htheduckno.east |- a) coordinate (e);
shade [top color=blue!50!cyan, bottom color=blue!75!black!25, middle color=blue!50!black, decorate, decoration={snake, amplitude=1pt, segment length=mathhwyaden}] ([xshift=mathhwyaden, yshift=-mathhwyaden]e) -| ([xshift=-mathhwyaden, yshift=-mathhwyaden]a) -| cycle;
},
hwyaden/.search also={/tikz/},
hwyaden/.cd,
shading/.style=black,
size/.store in=mathhwyaden,
size=10pt,
}
begin{document}
begin{tikzpicture}
pic {hwyaden={ball color=brown, postaction={outer color=Brown, inner color=Apricot, opacity=.5}}};
pic at (60pt,0) {hwyaden={preaction={outer color=DarkGreen, inner color=ForestGreen, opacity=1}, ball color=LimeGreen, opacity=.75, postaction={outer color=DarkGreen, inner color=Gold, opacity=.75}}};
node (d) [anchor=mid west, white, font=itshapebfseries, align=left] at ([yshift={-5*mathhwyaden}]h1.west) {Heads down, tails up,\Dabbling free!};
node [white, anchor=north east, font=footnotesizeitshape] at (d.south -| current bounding box.east) {--- Kenneth Grahame};
end{tikzpicture}
end{document}


A duck with her drake ...



duck & drake







share|improve this answer














share|improve this answer



share|improve this answer








edited Jul 29 '17 at 2:20

























answered Jul 29 '17 at 2:15









cfrcfr

157k8188385




157k8188385













  • google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

    – CarLaTeX
    Jul 29 '17 at 3:18











  • @CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

    – cfr
    Jul 29 '17 at 3:26











  • I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

    – CarLaTeX
    Jul 29 '17 at 3:33











  • @CarLaTeX My duck and her drake aspire to be peacocks.

    – cfr
    Jul 29 '17 at 3:35






  • 1





    @samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

    – cfr
    Jul 29 '17 at 16:06



















  • google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

    – CarLaTeX
    Jul 29 '17 at 3:18











  • @CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

    – cfr
    Jul 29 '17 at 3:26











  • I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

    – CarLaTeX
    Jul 29 '17 at 3:33











  • @CarLaTeX My duck and her drake aspire to be peacocks.

    – cfr
    Jul 29 '17 at 3:35






  • 1





    @samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

    – cfr
    Jul 29 '17 at 16:06

















google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

– CarLaTeX
Jul 29 '17 at 3:18





google.it/amp/s/gurglewords.wordpress.com/2014/06/03/… I've just learnt that Prof. van Duck is a drake O.o

– CarLaTeX
Jul 29 '17 at 3:18













@CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

– cfr
Jul 29 '17 at 3:26





@CarLaTeX That's not the link I used, but I saw gurglewords among my search results. Incidentally, this pair each have wings although, of course, they are under water at the moment.

– cfr
Jul 29 '17 at 3:26













I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

– CarLaTeX
Jul 29 '17 at 3:33





I'd put the large part of the tail near the water and the tip up: youtu.be/dRRhwOp89F8

– CarLaTeX
Jul 29 '17 at 3:33













@CarLaTeX My duck and her drake aspire to be peacocks.

– cfr
Jul 29 '17 at 3:35





@CarLaTeX My duck and her drake aspire to be peacocks.

– cfr
Jul 29 '17 at 3:35




1




1





@samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

– cfr
Jul 29 '17 at 16:06





@samcarter So with Wind in the Willows and Alle meine Entchen together, I have the English- and German-speaking worlds covered ;).

– cfr
Jul 29 '17 at 16:06











6















TikZPicducks



documentclass{standalone}

begin{document}

setlength{unitlength}{1.5cm}
begin{picture}(4.2,4.5)
thicklines%

% bill
qbezier(0.65,2.95)(-0.1,1.75)(1.68,2.73)
qbezier(0.65,2.95)(0.9,3.05)(1.14,2.80)
qbezier(1.14,2.80)(1.35,2.65)(1.68,2.73)

% head
qbezier(0.65,2.95)(0.6,4.15)(1.68,4.24)
qbezier(1.68,4.24)(2.9,4.1)(2.53,2.4)

% body
qbezier(0.8,2.32)(-0.6,1.1)(0.8,0.3)
qbezier(0.8,0.3)(2,-0.1)(3.5,0.65)
qbezier(3.5,0.65)(4.6,1.5)(3.5,2.83)
qbezier(3.5,2.83)(3,2.5)(2.53,2.4)

% right eye
qbezier(1.3,3.2)(1.38,3.45)(1.6,3.4)
qbezier(1.6,3.4)(1.73,3.3)(1.67,3.1)
qbezier(1.67,3.1)(1.6,2.9)(1.45,2.93)
qbezier(1.45,2.93)(1.27,2.95)(1.3,3.2)
put(1.53,3.13){circle*{0.17}}

% left eye -0.53, +0.12
qbezier(0.77,3.32)(0.84,3.57)(1.03,3.5)
qbezier(1.03,3.5)(1.12,3.4)(1.04,3.22)
qbezier(1.04,3.22)(0.97,3.07)(0.87,3.07)
qbezier(0.87,3.07)(0.72,3.09)(0.77,3.32)
put(0.95,3.27){circle*{0.14}}

end{picture}

end{document}


enter image description here






share|improve this answer





















  • 2





    David will be proud of you! Great!

    – CarLaTeX
    Jan 23 at 17:23











  • @CarLaTeX I have to make up for my theft of the parabola question :)

    – samcarter
    Jan 23 at 17:26











  • Very fair from you, lol!

    – CarLaTeX
    Jan 23 at 17:27
















6















TikZPicducks



documentclass{standalone}

begin{document}

setlength{unitlength}{1.5cm}
begin{picture}(4.2,4.5)
thicklines%

% bill
qbezier(0.65,2.95)(-0.1,1.75)(1.68,2.73)
qbezier(0.65,2.95)(0.9,3.05)(1.14,2.80)
qbezier(1.14,2.80)(1.35,2.65)(1.68,2.73)

% head
qbezier(0.65,2.95)(0.6,4.15)(1.68,4.24)
qbezier(1.68,4.24)(2.9,4.1)(2.53,2.4)

% body
qbezier(0.8,2.32)(-0.6,1.1)(0.8,0.3)
qbezier(0.8,0.3)(2,-0.1)(3.5,0.65)
qbezier(3.5,0.65)(4.6,1.5)(3.5,2.83)
qbezier(3.5,2.83)(3,2.5)(2.53,2.4)

% right eye
qbezier(1.3,3.2)(1.38,3.45)(1.6,3.4)
qbezier(1.6,3.4)(1.73,3.3)(1.67,3.1)
qbezier(1.67,3.1)(1.6,2.9)(1.45,2.93)
qbezier(1.45,2.93)(1.27,2.95)(1.3,3.2)
put(1.53,3.13){circle*{0.17}}

% left eye -0.53, +0.12
qbezier(0.77,3.32)(0.84,3.57)(1.03,3.5)
qbezier(1.03,3.5)(1.12,3.4)(1.04,3.22)
qbezier(1.04,3.22)(0.97,3.07)(0.87,3.07)
qbezier(0.87,3.07)(0.72,3.09)(0.77,3.32)
put(0.95,3.27){circle*{0.14}}

end{picture}

end{document}


enter image description here






share|improve this answer





















  • 2





    David will be proud of you! Great!

    – CarLaTeX
    Jan 23 at 17:23











  • @CarLaTeX I have to make up for my theft of the parabola question :)

    – samcarter
    Jan 23 at 17:26











  • Very fair from you, lol!

    – CarLaTeX
    Jan 23 at 17:27














6












6








6








TikZPicducks



documentclass{standalone}

begin{document}

setlength{unitlength}{1.5cm}
begin{picture}(4.2,4.5)
thicklines%

% bill
qbezier(0.65,2.95)(-0.1,1.75)(1.68,2.73)
qbezier(0.65,2.95)(0.9,3.05)(1.14,2.80)
qbezier(1.14,2.80)(1.35,2.65)(1.68,2.73)

% head
qbezier(0.65,2.95)(0.6,4.15)(1.68,4.24)
qbezier(1.68,4.24)(2.9,4.1)(2.53,2.4)

% body
qbezier(0.8,2.32)(-0.6,1.1)(0.8,0.3)
qbezier(0.8,0.3)(2,-0.1)(3.5,0.65)
qbezier(3.5,0.65)(4.6,1.5)(3.5,2.83)
qbezier(3.5,2.83)(3,2.5)(2.53,2.4)

% right eye
qbezier(1.3,3.2)(1.38,3.45)(1.6,3.4)
qbezier(1.6,3.4)(1.73,3.3)(1.67,3.1)
qbezier(1.67,3.1)(1.6,2.9)(1.45,2.93)
qbezier(1.45,2.93)(1.27,2.95)(1.3,3.2)
put(1.53,3.13){circle*{0.17}}

% left eye -0.53, +0.12
qbezier(0.77,3.32)(0.84,3.57)(1.03,3.5)
qbezier(1.03,3.5)(1.12,3.4)(1.04,3.22)
qbezier(1.04,3.22)(0.97,3.07)(0.87,3.07)
qbezier(0.87,3.07)(0.72,3.09)(0.77,3.32)
put(0.95,3.27){circle*{0.14}}

end{picture}

end{document}


enter image description here






share|improve this answer
















TikZPicducks



documentclass{standalone}

begin{document}

setlength{unitlength}{1.5cm}
begin{picture}(4.2,4.5)
thicklines%

% bill
qbezier(0.65,2.95)(-0.1,1.75)(1.68,2.73)
qbezier(0.65,2.95)(0.9,3.05)(1.14,2.80)
qbezier(1.14,2.80)(1.35,2.65)(1.68,2.73)

% head
qbezier(0.65,2.95)(0.6,4.15)(1.68,4.24)
qbezier(1.68,4.24)(2.9,4.1)(2.53,2.4)

% body
qbezier(0.8,2.32)(-0.6,1.1)(0.8,0.3)
qbezier(0.8,0.3)(2,-0.1)(3.5,0.65)
qbezier(3.5,0.65)(4.6,1.5)(3.5,2.83)
qbezier(3.5,2.83)(3,2.5)(2.53,2.4)

% right eye
qbezier(1.3,3.2)(1.38,3.45)(1.6,3.4)
qbezier(1.6,3.4)(1.73,3.3)(1.67,3.1)
qbezier(1.67,3.1)(1.6,2.9)(1.45,2.93)
qbezier(1.45,2.93)(1.27,2.95)(1.3,3.2)
put(1.53,3.13){circle*{0.17}}

% left eye -0.53, +0.12
qbezier(0.77,3.32)(0.84,3.57)(1.03,3.5)
qbezier(1.03,3.5)(1.12,3.4)(1.04,3.22)
qbezier(1.04,3.22)(0.97,3.07)(0.87,3.07)
qbezier(0.87,3.07)(0.72,3.09)(0.77,3.32)
put(0.95,3.27){circle*{0.14}}

end{picture}

end{document}


enter image description here







share|improve this answer














share|improve this answer



share|improve this answer








edited Jan 23 at 17:29

























answered Jan 23 at 17:19









samcartersamcarter

88.6k799284




88.6k799284








  • 2





    David will be proud of you! Great!

    – CarLaTeX
    Jan 23 at 17:23











  • @CarLaTeX I have to make up for my theft of the parabola question :)

    – samcarter
    Jan 23 at 17:26











  • Very fair from you, lol!

    – CarLaTeX
    Jan 23 at 17:27














  • 2





    David will be proud of you! Great!

    – CarLaTeX
    Jan 23 at 17:23











  • @CarLaTeX I have to make up for my theft of the parabola question :)

    – samcarter
    Jan 23 at 17:26











  • Very fair from you, lol!

    – CarLaTeX
    Jan 23 at 17:27








2




2





David will be proud of you! Great!

– CarLaTeX
Jan 23 at 17:23





David will be proud of you! Great!

– CarLaTeX
Jan 23 at 17:23













@CarLaTeX I have to make up for my theft of the parabola question :)

– samcarter
Jan 23 at 17:26





@CarLaTeX I have to make up for my theft of the parabola question :)

– samcarter
Jan 23 at 17:26













Very fair from you, lol!

– CarLaTeX
Jan 23 at 17:27





Very fair from you, lol!

– CarLaTeX
Jan 23 at 17:27


















draft saved

draft discarded




















































Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f346695%2fhow-can-we-draw-a-duck-in-order-to-create-a-tikzducks-package-and-store-it-in-c%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

mysqli_query(): Empty query in /home/lucindabrummitt/public_html/blog/wp-includes/wp-db.php on line 1924

How to change which sound is reproduced for terminal bell?

Can I use Tabulator js library in my java Spring + Thymeleaf project?