54

Using TeX- and LaTeX-related tools and packages, how would you draw a turkey, a pumpkin pie, a pecan pie, a gravy boat, or any other object(s) traditionally associated with Thanksgiving?

8
  • 9
    Mico -- do you know the term MWE? ;-) Ask David Carlisle in Chat, he will provide all drawings with MS Pain(t) ;-)
    – user31729
    Commented Nov 24, 2015 at 17:48
  • 28
    I had a really good answer, but when I added the caption " \@gobble", it disappeared for some reason. Commented Nov 24, 2015 at 17:49
  • 3
    How about a round of code golf in TeX?
    – jarauh
    Commented Nov 24, 2015 at 18:31
  • 1
    Isn't this what clip art is for? Commented Nov 24, 2015 at 18:36
  • 1
    What on Earth is a gravy float? Sounds disgusting.
    – cfr
    Commented Nov 24, 2015 at 23:46

7 Answers 7

42

A vivid imagination is required...

\documentclass{article}
\usepackage{stackengine,graphicx,xcolor}

\begin{document}
Turkey?\quad 
\sffamily\color{brown!80!black}
\stackinset{c}{-4.8pt}{c}{5pt}{\color{brown}\LARGE Y}{%
\stackinset{c}{0pt}{c}{-1pt}{\scalebox{1.2}{\color{orange}\LARGE e}}{%
\stackinset{c}{0.5pt}{c}{-8.5pt}{\color{yellow}K}{%
\stackinset{c}{7.5pt}{c}{4.5pt}{\color{red}\LARGE r}{%
\stackinset{c}{8.5pt}{c}{5pt}{\color{blue!50!cyan}\tiny T}{%
\Huge U%
}}}}}
\fboxsep=.5pt
\color{black}\rmfamily\raisebox{3ex}{--}\kern-.3pt%
\raisebox{3.5ex}{\fbox{\scalebox{.5}{%
\tiny\textbackslash@gobble}}}
\end{document}

enter image description here

2nd Attempt: Pumpkin Pi(e)

\documentclass{article}
\usepackage{xcolor}
\definecolor{pumpkin}{rgb}{1,0.459,0.094}
\begin{document}
\ooalign{$\pi$\cr\kern.15pt\textcolor{pumpkin}{$\pi$}}
\end{document}

enter image description here

Reference: http://www.colorhexa.com/ff7518

0
63
+100

This one is a bit like making your own pasta -- more trouble than it's worth.
But nevertheless here's a little Thanksgiving turkey in Metapost. Enjoy your break over there!

enter image description here

prologues := 3;
outputtemplate := "%j%c.eps";

beginfig(1);

u = 1cm;

color brown, light_brown, dark_brown, orange, dark_orange, gold;

brown  = (159/255,  92/255, 55/255);
orange = (255/255, 170/255, 45/255);
gold   = (255/255, 183/255, 11/255);
light_brown = 0.2[brown,white];
dark_brown  = 0.2[brown,black];
dark_orange = 0.4[orange,red];

path body, wing, thigh, head, neck, foot, leg, feather, brim, beak, crop, eye, crown, buckle, band;

body = fullcircle scaled 2.1u;
neck = halfcircle rotated 180 scaled 0.4u shifted (0,0.2u) -- 
       halfcircle             scaled 0.4u shifted (0,1.2u) -- cycle;
head = fullcircle scaled 1.0u shifted (0,1.4u);
eye  = fullcircle scaled 3 shifted center head shifted (5,2);
wing = (subpath (-0.8,1.6) of body {down} .. {curl 0} cycle) rotatedabout(point 1.6 of body,5);
leg  = (origin -- (0,-2/3u)) shifted point 6.4 of body shifted 2 up;
foot = (5 down rotated -60 -- origin -- 5 down rotated 60) shifted point 0.7 of leg;
thigh = fullcircle scaled 0.32u shifted point 0 of leg;
feather = (origin {curl 0} .. (2,1/2) .. (3,0) .. (2,-1/2) .. {curl 0} cycle) scaled 1/2u;
brim = fullcircle xscaled 1.6u yscaled 1/3u shifted center head shifted 4 up;
crown = point 1/2 of head -- subpath (1.5,2.5) of brim shifted (0,5/8u) -- point 7/2 of head 
  .. {right} point 2 of head shifted 8 down ..  cycle;

band = buildcycle( subpath (1,3) of brim,
                   subpath (4,3) of crown,
                   subpath (3,1) of brim shifted 5 up,
                   subpath (1,0) of crown);
buckle = (origin -- right -- (1,1) -- (-1,1) -- (-1,-1) -- (1,-1) -- right) scaled 2.4 shifted center band shifted 1/2up ;
beak = (origin -- subpath (0,1) of fullcircle rotated 142 --cycle) scaled 12 shifted center head shifted (6,-3);
crop = subpath (1,2) of beak {dir 275} .. {left} point 5.8 of head shifted 2 up .. {dir 20} point 1 of beak .. cycle;

picture whole_leg;
whole_leg = image(
  draw leg  withpen pencircle scaled 3 withcolor dark_orange;
  draw foot withpen pencircle scaled 3 withcolor dark_orange;
  fill thigh withcolor brown;
);

% feathers first
for t=-29 step 48 until 229+eps: fill feather rotated t shifted 10 up withcolor orange; endfor
for t= -5 step 48 until 205+eps: fill feather rotated t shifted 10 up withcolor dark_orange; endfor

% start hat
fill brim withcolor black;
% bird
fill body withcolor brown;
fill neck withcolor light_brown;
fill head withcolor light_brown;
fill eye  withcolor 1/2[brown,black];
fill eye reflectedabout(up,down) withcolor 1/2[brown,black];
fill beak withcolor gold;
fill crop withcolor .67 red;
fill wing withcolor dark_brown;
fill wing reflectedabout(up,down) withcolor dark_brown;
draw whole_leg;
draw whole_leg reflectedabout(up,down);

% rest of hat
fill crown withcolor black;
fill band withcolor .3 white;
draw buckle withpen pencircle scaled 7/9 withcolor gold;

endfig;
end.

I should add that while the design is not mine, the implementation above is all mine.

35

How about we start with the ingredients? Here's a pumpkin:

Code

\documentclass[tikz, border=2mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12, width=15cm}

\begin{document}

\pgfmathsetmacro{\RMax}{3}
\pgfmathsetmacro{\RMin}{2}
\pgfmathsetmacro{\r}{2.3}
\pgfmathsetmacro{\n}{5}

\begin{tikzpicture}
    \begin{axis}
    [   view={60}{30},
        hide axis=true,
    ]
    \addplot3
    [   surf,
        shader=interp,
      samples=120,
      samples y=16,
      %color=orange,
      opacity=1,
      domain=0:360,
      y domain=0:360,
      z buffer=sort,
      point meta={sqrt(x*x+y*y+z*z)},
      colormap={pumpkin}{rgb255(0cm)=(215,102,0);rgb255(1cm)=(250,175,1);rgb255(2cm)=(255,138,32);rgb255(3cm)=(255,193,111)},
      ]
        ({(\RMin+(\RMax-\RMin)*abs(sin(\n*x))+\r*cos(y))*cos(x)}, {(\RMin+(\RMax-\RMin)*abs(sin(\n*x))+\r*cos(y))*sin(x)}, {\r*sin(y)});

    \addplot3
    [   surf,
        shader=interp,
      samples=90,
      samples y=10,
      opacity=1,
      domain=0:360,
      y domain=0.5*\RMax:1.2*\RMax,
      colormap={stem}{rgb255(0cm)=(0,121,6);rgb255(1cm)=(0,191,10)},
      z buffer=sort,
      point meta=z,
    ]
        ({y/20*cos(x)+y/10*cos(y)},{y/20*sin(x)+y/10*sin(y)},{y});
    \end{axis}
\end{tikzpicture}

\end{document}

Output

enter image description here

And a pumpkin pie:

Code

\begin{tikzpicture}
    \begin{axis}
    [   view={45}{30},
        hide axis=true,
        unit vector ratio=1 1 1,
    ]
        \addplot3
        [   domain=\R:1.05*\R,
            y domain=45:225,
            surf,
            shader=interp,
            point meta={z*z},
            z buffer=sort,
            samples=5,
      samples y=180,
      colormap={mantle}{rgb255(0cm)=(206,165,108);rgb255(1cm)=(163,117,54)},
        ] 
            (   {x*cos(y)},
                {x*sin(y)},
                {   and(x>\R,x<=1.005*\R) + and(x>=\R,x<1.045*\R)*(1.05+0.05*abs(cos(10*y)))});

        \addplot3
        [   domain=0:\R,
            y domain=0:360,
            surf,
            shader=interp,
            point meta={cos(sqrt(x*x+y*y)/pi*180*4)},
            z buffer=sort,
            colormap={filling}{rgb255(0cm)=(204,97,0);rgb255(1cm)=(221,105,0)},
        ] 
            ({x*cos(y)},{x*sin(y)},{1});

                \addplot3
        [   domain=\R:1.05*\R,
            y domain=225:405,
            surf,
            shader=interp,
            point meta={z*z},
            z buffer=sort,
            samples=5,
      samples y=180,
      colormap={mantle}{rgb255(0cm)=(206,165,108);rgb255(1cm)=(163,117,54)},
        ] 
            (   {x*cos(y)},
                {x*sin(y)},
                {   and(x>\R,x<=1.005*\R) + and(x>=\R,x<1.045*\R)*(1.05+0.15*abs(cos(10*y)))});
    \end{axis}
\end{tikzpicture}

enter image description here

3
  • 2
    (+1) but I didn't realise that radioactivity was a traditional attribute of Thanksgiving pumpkins ;). There's something rather disturbing going on at the top, isn't there?
    – cfr
    Commented Nov 24, 2015 at 23:48
  • @cfr: Yes, it's the most curious kind of radiation: The effects decrease with the amount of samples, but also exceed the TeX capacity :-D Commented Nov 25, 2015 at 0:57
  • Maybe stick to the pie, then? It seems to be relative free of radioactivity.
    – cfr
    Commented Nov 25, 2015 at 1:36
31

Well, I hope this is vaguely thanksgiving-ish

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{decorations}
\pgfdeclaredecoration{arty}{final}{
\state{final}{
\pgfscope%
\pgftransformreset%
\pgfsetpath\pgfdecoratedpath
\pgfsetfillcolor{arty!75!black}%
\pgfusepath{clip,fill}%
\pgflowlevel{\pgftransformshift{\pgfpointpolar{135}{\pgfdecorationsegmentlength}}}
\pgfsetpath\pgfdecoratedpath
\pgfsetfillcolor{arty!75}%
\pgfusepath{clip,fill}%
\pgflowlevel{\pgftransformshift{\pgfpointpolar{135}{-\pgfdecorationsegmentlength*2}}}
\pgfsetpath\pgfdecoratedpath
\pgfsetfillcolor{arty}%
\pgfusepath{clip,fill}%
\endpgfscope%
}}
\tikzset{/pgf/decoration/segment length=5pt,
  arty/.style={decoration=arty, arty color=#1, decorate},
  arty color/.code={\colorlet{arty}{#1}},
  leaf/.style={insert path={
    (2/3,-1/3) arc (0:180:2/3) 
    .. controls ++(45:2/3) and ++(215:2/3) .. cycle
  }},
  leg/.style={insert path={
    (0:1) arc (360:180:1) 
    .. controls ++(0,1) and ++(0,-1) .. (-1/4,9/4)
    -- (1/4,9/4) .. controls ++(0,-1) and ++(0,1) .. cycle
  }},
  leg end/.style={insert path={
     (-1/4,9/4) .. controls ++(0,1/2) and ++(0,-1/4) .. (-2/4,9/4+3/4)
     arc (180:0:1/4) arc (180:0:1/4) 
     .. controls ++(0,-1/4) and ++(0,2/4) .. (1/4,9/4) -- cycle
  }}
}
\begin{document}
\begin{tikzpicture}
\path [arty=gray] ellipse [x radius=4, y radius=5/4];

\foreach \i in {0,10,...,170}
\path [arty=green!50!brown, shift=(\i:3 and 1/2), 
  xscale={rand > 0 ? 1 : -1}, yscale={rand > 0 ? -1 : 1}, leaf];

\begin{scope}[shift=(90:2), rotate=-50]
\path [arty=red!50!brown, decorate, leg];  
\path [arty=yellow!50!brown, decorate, leg end];
\end{scope}

\path [arty=red!50!brown] (5:5/2)  
  arc (0:90:4 and 3) arc (90:180:3/2 and 3) arc (180:360:3 and 1/2) 
  -- cycle;

\path [arty=red!50!brown] (0:3) 
  arc (0:90:4 and 3) arc (90:180:2 and 3) arc (180:360:3 and 1/2) 
  -- cycle;

\begin{scope}[shift=(60:3/2), rotate=-60]
\path [arty=red!50!brown, decorate, leg];  
\path [arty=yellow!50!brown, decorate, leg end];
\end{scope}

\foreach \i in {180,190,...,360}
\path [arty=green!50!brown, shift=(\i:3 and 1/2), 
  xscale={rand > 0 ? 1 : -1}, yscale={rand > 0 ? -1 : 1}, leaf];

\foreach \i in {1,...,8}
  \path [arty=purple!50!brown, decorate]
     (rnd*180+180:3 and 1/2) circle [radius=1/4];

\end{tikzpicture}
\end{document}

enter image description here

And by reusing the decoration and keys code above:

\begin{tikzpicture}
\path [arty=orange] (90:13/8 and 1/4) 
  arc (100:260:9/8 and 2) arc (280:440:9/8 and 2) -- cycle;
\foreach \i in {45, 90, 135}{
  \foreach \x in {1,-1}
    \path [arty=orange, xscale=\x] (90+\i:13/8 and 1/4) 
      arc (100:260:1 and 2) arc (280:440:2 and 2) -- cycle;
  \ifnum\i=45
    \path [arty=brown!50!black] (0,-1/2) 
      arc (0:90:1) -- ++(1/2,1/2) arc (90:-45:1);
  \fi
}
\path [arty=orange] (270:13/8 and 1/4) 
  arc (100:260:9/8 and 2) arc (280:440:9/8 and 2) -- cycle;
\end{tikzpicture}

enter image description here

And here's yer pudding...

\begin{tikzpicture}
\path [arty=yellow!50]
  (1/4,-3/2) -- (0,0) -- (80:6 and 4)  ++(0,3/8) arc (80:28:6 and 4)
   -- ++(1/8,-15/8) -- (1/4,-3/2-1/8) -- cycle;
\path [arty=orange!50!brown] (0,0)
  -- (80:6 and 4) arc (80:30:6 and 4) -- cycle; 
\path [arty=orange!50!brown!50!black] 
  (1/4,-3/2) -- (0,0)  -- (30:6 and 4)  -- ++(1/8,-3/2) -- cycle;
\foreach \i in {0,1,2}
  \path [arty=gray!20, yslant=1/16] (55:4 and 5/2) ++(0,\i/4) ellipse [x radius=1-\i/4, y radius=1/3];
\end{tikzpicture}

enter image description here

\begin{tikzpicture}
\path [arty=gray!75] (0:6 and 3)
  arc (0:180:6 and 3) -- ++(1/4,-3/2)
  arc (180:0:6-1/4 and 3-1/4) -- cycle;
\path [arty=gray!75!black] (0,-3/2)
  ellipse [x radius=6-1/4, y radius=3-1/4];
\path [arty=orange!50!brown] (0:0) -- (30:6 and 3)
  arc (30:315:6 and 3) -- cycle; 
\begin{scope}
\clip (0:0) -- (30:6 and 3) arc (30:-45:6 and 3);
\path [arty=orange!50!brown!50!black] 
  (1/4,-3/2) -- (0,0)  -- (30:6 and 3)  -- ++(-1/4,-3/2) -- cycle;
\end{scope}
\path [arty=gray!75] (360:6 and 3)
arc (360:180:6 and 3) -- ++(1/4,-3/2)
arc (180:360:6-1/4 and 3-1/4) -- cycle;
\foreach \i in {95,100,...,180,310,305,...,275,185,
  190,...,270,90,85,...,35}
  \path [arty=yellow!50] (\i:6 and 3)
    ellipse [x radius=1/2, y radius=1/3];
\end{tikzpicture}

enter image description here

29

The graphics system of the discerning is of course picture mode.

enter image description here

\documentclass{article}


\begin{document}

\setlength{\unitlength}{3947sp}%
%

\hspace*{-100pt}\begin{picture}(7935,9057)(6076,-10606)
\thinlines
{\multiput(12001,-2836)(2.02703,-8.10811){38}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(12076,-3136)(6.00000,6.00000){26}{\makebox(1.6667,11.6667){\tiny.}}
\put(12226,-2986){\line( 0, 1){300}}
\put(12226,-2686){\line(-1, 0){150}}
\multiput(12076,-2686)(-3.75000,-7.50000){21}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\put(11701,-5236){\line(-5, 2){969.828}}
\put(10726,-4861){\line(-1, 0){600}}
\put(10126,-4861){\line(-5,-1){1197.115}}
\put(8926,-5086){\line(-4,-3){516}}
\put(8401,-5461){\line(-3,-2){1211.539}}
\put(7201,-6286){\line(-3,-4){387}}
\put(6826,-6811){\line( 3,-4){225}}
\put(7051,-7111){\line( 1,-1){225}}
\put(7276,-7336){\line( 1, 1){225}}
\multiput(7501,-7111)(2.02703,-8.10811){38}{\makebox(1.6667,11.6667){\tiny.}}
\put(7576,-7411){\line( 2,-1){300}}
\put(7876,-7561){\line( 1, 0){300}}
\multiput(8176,-7561)(1.66667,-8.33333){46}{\makebox(1.6667,11.6667){\tiny.}}
\put(8251,-7936){\line( 3,-1){225}}
\put(8476,-8011){\line( 3, 2){225}}
\multiput(8701,-7861)(1.66667,-8.33333){46}{\makebox(1.6667,11.6667){\tiny.}}
\put(8776,-8236){\line( 1, 0){300}}
\put(9076,-8236){\line( 3, 1){225}}
\multiput(9301,-8161)(2.67857,-8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
\put(9376,-8386){\line( 1, 0){375}}
\put(9751,-8386){\line( 2, 1){600}}
\put(10351,-8086){\line( 4, 3){1032}}
\put(11401,-7336){\line( 3, 5){536.029}}
\multiput(11926,-6436)(1.38353,8.30116){64}{\makebox(1.6667,11.6667){\tiny.}}
\put(12001,-5911){\line( 0, 1){450}}
\put(12001,-5461){\line(-4, 3){300}}
}%
{\put(7126,-6361){\line(-6,-1){450}}
}%
{\put(8176,-5461){\line(-6, 1){1727.027}}
}%
{\put(8851,-5086){\line(-5, 3){2051.471}}
}%
{\put(9301,-4936){\line(-4, 5){1734.146}}
}%
{\put(9676,-4786){\line(-1, 3){930}}
}%
{\put(9976,-4786){\line( 0, 1){3000}}
}%
{\put(10426,-4861){\line( 1, 3){952.500}}
}%
{\put(10801,-4786){\line( 5, 6){817.623}}
}%
{\put(11326,-5011){\line( 5, 3){518.382}}
}%
{\put(12901,-4036){\line( 5, 3){375}}
}%
{\put(13051,-5236){\line( 3, 1){450}}
}%
{\put(8701,-8161){\line(-6,-5){450}}
\put(8251,-8536){\line(-6, 1){450}}
\put(7801,-8461){\line(-1, 1){375}}
\multiput(7426,-8086)(-1.38353,8.30116){64}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(7351,-7561)(7.50000,3.75000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(7501,-7486){\line(-5,-1){375}}
\put(7126,-7561){\line(-6, 5){450}}
\multiput(6676,-7186)(-3.12500,7.81250){49}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(6526,-6811)(3.12500,7.81250){49}{\makebox(1.6667,11.6667){\tiny.}}
\put(6676,-6436){\line(-1, 1){375}}
\multiput(6301,-6061)(-1.38353,8.30116){64}{\makebox(1.6667,11.6667){\tiny.}}
\put(6226,-5536){\line( 4, 5){300}}
\put(6526,-5161){\line(-2, 3){300}}
\multiput(6226,-4711)(1.37950,8.27702){73}{\makebox(1.6667,11.6667){\tiny.}}
\put(6301,-4111){\line( 5, 3){518.382}}
\put(6826,-3811){\line( 0, 1){375}}
\put(6826,-3436){\line( 1, 2){300}}
\put(7126,-2836){\line( 6, 1){450}}
\multiput(7576,-2761)(3.11866,7.79665){69}{\makebox(1.6667,11.6667){\tiny.}}
\put(7801,-2236){\line( 5, 3){375}}
\put(8176,-2011){\line( 6, 1){450}}
\put(8626,-1936){\line( 5, 3){606.618}}
\put(9226,-1561){\line( 5,-1){375}}
\put(9601,-1636){\line( 3,-1){450}}
\put(10051,-1786){\line( 4, 1){529.412}}
\put(10576,-1636){\line( 1, 0){375}}
\put(10951,-1636){\line( 6,-5){450}}
\put(11401,-2011){\line( 1, 0){450}}
\put(11851,-2011){\line( 5,-3){375}}
}%
{\put(13351,-3586){\line( 0,-1){225}}
\put(13351,-3811){\line( 4,-3){300}}
\multiput(13651,-4036)(3.11866,-7.79665){69}{\makebox(1.6667,11.6667){\tiny.}}
\put(13876,-4561){\line(-1,-2){300}}
\multiput(13576,-5161)(3.75000,-7.50000){41}{\makebox(1.6667,11.6667){\tiny.}}
\put(13726,-5461){\line( 0,-1){750}}
}%
{\put(12076,-5536){\line( 6, 1){450}}
\put(12526,-5461){\line( 3, 1){450}}
}%
{\multiput(11776,-5161)(2.03620,8.14479){66}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(11926,-4636)(-1.38889,8.33333){55}{\makebox(1.6667,11.6667){\tiny.}}
\put(11851,-4186){\line(-3, 5){363.971}}
\put(11476,-3586){\line( 0, 1){525}}
\multiput(11476,-3061)(1.38889,8.33333){55}{\makebox(1.6667,11.6667){\tiny.}}
\put(11551,-2611){\line( 3, 2){450}}
\put(12001,-2311){\line( 4, 1){300}}
\put(12301,-2236){\line( 2,-1){600}}
\multiput(12901,-2536)(4.68750,-7.03125){33}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(13051,-2761)(2.02703,-8.10811){38}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(13126,-3061)(3.11866,-7.79665){69}{\makebox(1.6667,11.6667){\tiny.}}
\put(13351,-3586){\line(-6, 1){668.919}}
}%
{\put(12976,-2836){\line(-3,-1){225}}
\put(12751,-2911){\line(-5,-2){375}}
\multiput(12376,-3061)(1.37950,-8.27702){73}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(12451,-3661)(-3.12500,-7.81250){49}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(12301,-4036)(7.50000,-3.75000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(12451,-4111){\line( 1, 0){225}}
\multiput(12676,-4111)(-1.37387,8.24324){91}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\put(12826,-3511){\line( 0,-1){375}}
\put(12826,-3886){\line( 0,-1){225}}
\multiput(12826,-4111)(3.75000,-7.50000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(12901,-4261){\line(-2,-1){300}}
\put(12601,-4411){\line(-1, 0){ 75}}
}%
{\put(12451,-4186){\line( 1,-2){525}}
}%
{\put(12976,-5311){\line( 1,-1){525}}
\put(13501,-5836){\line( 1,-2){225}}
\put(13726,-6286){\line( 0,-1){300}}
\put(13726,-6586){\line(-1,-2){375}}
\put(13351,-7336){\line( 0,-1){675}}
\put(13351,-8011){\line(-1,-1){525}}
\put(12826,-8536){\line(-5,-2){594.828}}
\put(12226,-8761){\line(-4,-5){300}}
\put(11926,-9136){\line(-1, 0){300}}
\put(11626,-9136){\line(-3, 2){225}}
\put(11401,-8986){\line(-5,-3){518.382}}
\put(10876,-9286){\line(-6, 1){595.946}}
\put(10276,-9211){\line(-6, 5){450}}
\put(9826,-8836){\line( 0, 1){150}}
\put(9826,-8686){\line(-5, 3){518.382}}
}%
{\put(10651,-7861){\line(-5, 2){375}}
\put(10276,-7711){\line( 0, 1){150}}
\put(10276,-7561){\line(-1, 0){525}}
\multiput(9751,-7561)(-3.75000,7.50000){41}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(9601,-7261)(-7.50000,-3.75000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(9451,-7336){\line(-6, 1){450}}
\put(9001,-7261){\line( 0, 1){300}}
\multiput(9001,-6961)(-3.75000,7.50000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(8926,-6811){\line(-4,-1){529.412}}
\put(8401,-6961){\line(-1, 1){225}}
\multiput(8176,-6736)(-2.67857,8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(8101,-6511)(6.25000,6.25000){13}{\makebox(1.6667,11.6667){\tiny.}}
\put(8176,-6436){\line(-4,-1){300}}
\put(7876,-6511){\line(-1, 1){225}}
\multiput(7651,-6286)(-2.67857,8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\put(11476,-7036){\line(-5,-2){375}}
\multiput(11101,-7186)(-6.00000,6.00000){26}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(10951,-7036)(-2.67857,8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
\put(10876,-6811){\line(-1,-1){225}}
\put(10651,-7036){\line(-5, 2){375}}
\put(10276,-6886){\line( 0, 1){300}}
\put(10276,-6586){\line(-1, 0){300}}
\put(9976,-6586){\line(-2, 1){300}}
\put(9676,-6436){\line( 0, 1){300}}
\put(9676,-6136){\line(-1, 0){300}}
\put(9376,-6136){\line(-1, 1){225}}
\put(9151,-5911){\line( 0, 1){150}}
\put(9151,-5761){\line(-5, 3){375}}
\multiput(8776,-5536)(-2.67857,8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
\multiput(8701,-5311)(4.68750,7.03125){33}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\multiput(10426,-9211)(1.66667,-8.33333){46}{\makebox(1.6667,11.6667){\tiny.}}
\put(10501,-9586){\line(-4,-1){300}}
\multiput(10201,-9661)(-2.67857,-8.03571){29}{\makebox(1.6667,11.6667){\tiny.}}
\put(10126,-9886){\line( 3,-1){742.500}}
\put(10876,-10111){\line( 6,-5){531.148}}
\put(11401,-10561){\line( 1, 0){150}}
\put(11551,-10561){\line(-3, 5){311.029}}
\put(11251,-10036){\line( 2,-1){600}}
\multiput(11851,-10336)(3.75000,7.50000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(11926,-10186){\line(-2, 1){600}}
\put(11326,-9886){\line( 1, 0){525}}
\put(11851,-9886){\line(-5, 3){375}}
\put(11476,-9661){\line(-1, 0){750}}
\multiput(10726,-9661)(3.12500,7.81250){49}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\put(11626,-9136){\line( 0,-1){375}}
\put(11626,-9511){\line(-3,-1){225}}
\multiput(11401,-9586)(3.75000,-7.50000){21}{\makebox(1.6667,11.6667){\tiny.}}
\put(11476,-9736){\line( 5,-1){677.885}}
\put(12151,-9886){\line( 1,-1){300}}
\put(12451,-10186){\line( 4, 1){300}}
\put(12751,-10111){\line(-1, 1){300}}
\put(12451,-9811){\line( 3,-1){450}}
\put(12901,-9961){\line( 0, 1){ 75}}
\put(12901,-9886){\line(-2, 1){450}}
\put(12451,-9661){\line( 3, 2){225}}
\put(12676,-9511){\line( 0, 1){150}}
\put(12676,-9361){\line(-5,-1){750}}
\multiput(11926,-9511)(1.66667,8.33333){46}{\makebox(1.6667,11.6667){\tiny.}}
}%
{\put(6076,-1561){\line( 1, 0){7935}}
\put(14011,-1561){\line( 0,-1){9045}}
\put(14011,-10606){\line(-1, 0){7935}}
\put(6076,-10606){\line( 0, 1){9045}}
}%
\end{picture}\hspace*{-100pt}


\end{document}
1
  • 9
    Even more alluring in view of the fact that, in German, you would lure a turkey with the sound "put, put, put"...
    – Robert
    Commented Nov 27, 2015 at 4:57
23

I apologise for the fact that you may need to be British to understand this.


Because a cat's not just for Christmas...

non-Christmas cat

\pdfminorversion=7
\RequirePackage[rgb,pdftex,dvipsnames,x11names]{xcolor}
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{calc,intersections,backgrounds}
\pgfdeclarelayer{foreground}
\pgfdeclarelayer{pen}
\pgfdeclarelayer{corff}
\pgfsetlayers{background,corff,main,pen,foreground}
\makeatletter
% adapted (simplified version) from tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex
  \tikzset{%
    on foreground layer/.style={%
          execute at begin scope={%
            \pgfonlayer{foreground}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on foreground layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    on pen layer/.style={
          execute at begin scope={%
            \pgfonlayer{pen}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on pen layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    on corff layer/.style={
          execute at begin scope={%
            \pgfonlayer{corff}%
            \let\tikz@options=\pgfutil@empty%
            \tikzset{every on corff layer/.try,#1}%
            \tikz@options%
          },
          execute at end scope={\endpgfonlayer}
    },
    stripiau cwt/.style={draw=#1, very thin, shorten >=-5mm, shorten <=-5mm, double=#1, double distance=3.5mm},
    stripiau corff/.style={very thin, draw=#1, fill=#1},
    trwyn/.style={circle, yshift=1.25mm, minimum width=2.5mm, inner sep=0pt},
    llenwi cath/.style={fill=#1},
    llygaid/.style n args=2{inner color=#1, outer color=#2, ultra thick, draw},
    pics/cath b/.style n args=5{
      code={
        [ultra thick]
        \begin{pgfonlayer}{pen}% ref. workaround from https://tex.stackexchange.com/a/218166/ (Mark Wibrow)
          \begin{scope}[very thin]% [on pen layer={very thin}]
          \path [clip]
            (0,10mm) coordinate (pen1) arc (90:65:19mm and 20mm) coordinate [pos=.75] (pp1) coordinate (pen2)
              arc (65:45:19mm and 20mm)  coordinate (pen3)
              arc (45:-60:19mm and 20mm) coordinate [pos=.05] (pp4) coordinate [pos=.4] (pp5) coordinate [pos=.45] (pp8) coordinate [pos=.75] (pp9)  coordinate (pen8)
              arc (-60:-90:19mm and 20mm) coordinate (pen10)
              arc (-90:-120:19mm and 20mm) coordinate (pen9)
              arc (-120:-225:19mm and 20mm) coordinate [pos=.25] (pp10) coordinate [pos=.55] (pp11) coordinate [pos=.6] (pp6) coordinate [pos=.95] (pp7) coordinate (pen4)
              arc (-225:-245:19mm and 20mm) coordinate (pen5)
              arc (-245:-270:19mm and 20mm) coordinate [pos=.25] (pp2)
              ;
          \path [stripiau corff=#1]
            (pp2) [out=-45, in=95] to ($(pen1) - (0,10mm)$) coordinate (pp3) [out=85, in=-135] to (pp1) |- +(5mm,5mm) -| cycle
            (pp4) [out=-135, in=25] to +(-7.5mm,-4mm) [out=-25, in=115] to (pp5) -| +(5mm,5mm) |- cycle
            (pp7) [out=-45, in=155] to +(7.5mm,-4mm) [out=-155, in=65] to (pp6) -| +(-5mm,5mm) |- cycle
            (pp8) [out=-135, in=-25] to +(-17.5mm,0mm) [out=-45, in=115] to (pp9) -| +(5mm,5mm) |- cycle
            (pp11) [out=-45, in=-155] to +(17.5mm,0mm) [out=-135, in=65] to (pp10) -| +(-5mm,5mm) |- cycle
            ;
          \end{scope}
        \end{pgfonlayer}
        \path
          (pen2) ++(4mm,7.5mm) coordinate (pen6)
          (pen5) ++(-4mm,7.5mm) coordinate (pen7);
        \path [rounded corners=1pt, llenwi cath=#2]
          (pen1) arc (90:65:19mm and 20mm)
            [out=80, in=-110] to (pen6) [out=-80, in=85] to
          (pen3) arc (45:-225:19mm and 20mm)
            [out=95, in=-100] to (pen7) [out=-70, in=100] to
          (pen5) arc (-245:-270:19mm and 20mm);
        \begin{scope}[on foreground layer={ultra thick}]
          \draw [rounded corners=1pt, ultra thick]
            (pen1) arc (90:65:19mm and 20mm)
              [out=80, in=-110] to (pen6) [out=-80, in=85] to
            (pen3) arc (45:-225:19mm and 20mm)
              [out=95, in=-100] to (pen7) [out=-70, in=100] to
            (pen5) arc (-245:-270:19mm and 20mm);
        \end{scope}
      \path [llenwi cath=#2]% corff
          (pp8) [out=35, in=100] to coordinate [pos=.075] (corff7) coordinate [pos=.1] (corff8) coordinate [pos=.2] (corff9) coordinate [pos=.225] (corff10) coordinate [pos=.325] (corff11) coordinate [pos=.35] (corff12) coordinate [pos=.45] (corff13) coordinate [pos=.475] (corff14) coordinate [pos=.575] (corff15) coordinate [pos=.6] (corff16) coordinate [pos=.7] (corff17) coordinate [pos=.725] (corff18) coordinate [pos=.825] (corff19) coordinate [pos=.86] (corff20) coordinate [pos=.96] (corff21) ++(75mm,-15mm) coordinate (corff5)
            [out=-80, in=-85] to coordinate [pos=.6] (corff6) coordinate [pos=.7] (corff22) coordinate [pos=.775] (corff23) coordinate [pos=.825] (corff24) coordinate [pos=.875] (corff27) coordinate [pos=.9] (corff25) coordinate [pos=.985] (corff26) (pen9);
         \begin{scope}[ultra thick]% stripiau'r corff
            \clip
              (pp8) [out=35, in=100] to (corff5)
                [out=-80, in=-85] to (pen9) |- cycle;
            \path [stripiau corff=#1]
              (pp8) [out=-95, in=65] to ++(7.5mm,-15mm) [out=45, in=-175] to (corff7)
              (corff8) [out=-85, in=50] to ++(7.5mm,-17.5mm) [out=45, in=-135] to (corff9)
              (corff10) [out=-90, in=60] to ++(5mm,-20mm) [out=50, in=-140] to (corff11)
              (corff12) [out=-100, in=55] to ++(2.5mm,-20mm) [out=50, in=-145] to (corff13)
              (corff14) [out=-110, in=50] to ++(0,-20mm) [out=40, in=-155] to (corff15)
              (corff16) [out=-115, in=40] to ++(-3.5mm,-18.5mm) [out=30, in=-170] to (corff17)
              (corff18) [out=-135, in=20] to ++(-7.5mm,-16.5mm) [out=10, in=-180] to (corff19)
              (corff20) [out=-170, in=-5] to ++(-10mm,-12.5mm) [out=-15, in=140] to (corff21)
              (corff26) [out=-45, in=-135] to ++(20mm,-1.5mm) [out=-115, in=45] to (corff25) -- +(-5mm,0) |- cycle
              (corff27) [out=40, in=-115] to ++(20mm,7.5mm) [out=-105, in=65] to (corff24) -- +(-5mm,0) |- cycle;
         \end{scope}
        \draw [ultra thick, name path=corff]
          (pp8) [out=35, in=100] to ++(75mm,-15mm)
            [out=-80, in=-85] to coordinate [pos=.6] (corff6) (pen9);
        \draw [ultra thick, llenwi cath=#2]% coesau
          (corff22) ++(17.5mm,12.5mm) coordinate (coes1)
          (corff23) ++(12.5mm,15mm) coordinate (coes2)
          (coes1) [out=-120, in=35] to (corff22) [out=-145, in=5] to ++(-20mm,-7.5mm) [out=-175, in=0] to ++(-5mm,0) arc (-90:90:-5mm and 3mm) coordinate (coes9) [out=0, in=-175] to ++(5mm,0) coordinate (coes11) [out=5, in=-145] to (corff23) [out=35, in=-100] to (coes2);
        \begin{pgfonlayer}{background}% ref. workaround from https://tex.stackexchange.com/a/218166/ (Mark Wibrow)
          \begin{scope}
            \draw [ultra thick, llenwi cath=#2]% coesau
              (corff23) [out=-145, in=5] to (coes11) [out=-175, in=0] to (coes9) arc (-90:90:-4mm and 2.5mm) [out=0, in=-145] to (corff24)
              ;
          \end{scope}
        \end{pgfonlayer}
        \path [llenwi cath=#2]% llenwi'r cwt
          (corff5) [out=-80, in=-15] to ($(corff6) + (0,-2.5mm)$) coordinate (cwt5)
            [out=165, in=-90] to ++(-5mm,5mm) coordinate (cwt6)
            [out=90, in=170] to ++(7.5mm,5mm) coordinate (cwt7)
            [out=-10, in=-95] to ($(corff5) + (-15mm,-2.5mm)$) coordinate (cwt8)
          ;
        \begin{scope}[ultra thick]% stripiau'r cwt
          \clip (corff5) [out=-80, in=-15] to
              coordinate [pos=.1] (cwt9)
              coordinate [pos=.15] (cwt10a)
              coordinate [pos=.25] (cwt11a)
              coordinate [pos=.345] (cwt12a)
              coordinate [pos=.44] (cwt13a)
              coordinate [pos=.53] (cwt14a)
              coordinate [pos=.62] (cwt15a)
              coordinate [pos=.71] (cwt16a)
              coordinate [pos=.805] (cwt17a)
              coordinate [pos=.9] (cwt18a)
              coordinate [pos=1] (cwt19a)
              (cwt5)
            [out=165, in=-90] to
              coordinate [pos=.45] (cwt20a)
              (cwt6)
            [out=90, in=170] to
              coordinate [pos=.65] (cwt20b)
              (cwt7)
            [out=-10, in=-95] to
              coordinate [pos=.025] (cwt19b)
              coordinate [pos=.125] (cwt18b)
              coordinate [pos=.225] (cwt17b)
              coordinate [pos=.325] (cwt16b)
              coordinate [pos=.425] (cwt15b)
              coordinate [pos=.525] (cwt14b)
              coordinate [pos=.625] (cwt13b)
              coordinate [pos=.725] (cwt12b)
              coordinate [pos=.825] (cwt11b)
              coordinate [pos=.925] (cwt10b)
              (cwt8)
            |- (corff21) -- cycle;
          \path [stripiau corff=#1]
            (corff5) [out=110, in=10] to ++(-7.5mm,-3.5mm) [out=0, in=120] to (cwt9);
          \path [llenwi cath=#1]
            (cwt20a) [out=80, in=-80] to (cwt20b) [out=170, in=90] to (cwt6) [out=-90, in=165] to cycle
            ;
          \foreach \i in {10,...,19}
            \draw [stripiau cwt=#1] (cwt\i a) [out=90, in=-60] to (cwt\i b);
        \end{scope}
        \draw [ultra thick, name path=cwt]
          (corff5) [out=-80, in=-15] to (cwt5)
            [out=165, in=-90] to (cwt6)
            [out=90, in=170] to (cwt7)
            [out=-10, in=-95] to (cwt8)
          ;
         \begin{scope}[on foreground layer={ultra thick}]
          \draw
            (pen10) -- ++(0,7.5mm) coordinate (ceg1)
              [out=-45, in=180] to +(5mm,-2.5mm) coordinate (ceg2)
              [out=0, in=-100] to +(2.5mm,3.5mm) coordinate (ceg3)
             ;
          \draw
            (ceg1)
              [out=-135, in=0] to +(-5mm,-2.5mm) coordinate (ceg4)
              [out=180, in=-80] to +(-2.5mm,3.5mm) coordinate (ceg5)
            ;
          \path (ceg1)
            node (trwyn1) [trwyn, anchor=west] {}
            node (trwyn2) [trwyn, anchor=east] {};
          \draw
            ($(trwyn1)!1/2!(trwyn2)$) coordinate (trwyn) [out=10,in=140] to +(25mm,7.5mm)
            (trwyn) [out=-10, in=120] to +(.5mm,-5mm)
            (trwyn) [out=-40, in=130] to +(-1.5mm,-5mm)
            ;
          \draw
            (trwyn) [out=170,in=40] to +(-25mm,7.5mm)
            (trwyn) [out=-170, in=60] to +(-.5mm,-5mm)
            (trwyn) [out=-140, in=50] to +(1.5mm,-5mm)
            ;
          \path (ceg1)
            node (trwyn1) [trwyn, draw, ball color=#5, anchor=west] {}
            node (trwyn2) [trwyn, draw, ball color=#5, anchor=east] {};
         \end{scope}
          \draw [llygaid={#3}{#4}]
          ({$(pen1)!2/5!(pen10)$} -| {$(pen8)!3/4!(pen4)$}) coordinate (llygad chwith)
            ++(-5mm,0) coordinate (llygad chwith 1) [out=20, in=180] to ++(6mm,2.5mm) coordinate (llygad chwith 2) [out=0, in=120] to ++(4mm,-2.5mm)
            [out=-120, in=0] to ++(-4mm,-2.5mm) [out=180, in=-20] to ++(-6mm,2.5mm)
          ;
          \draw [llygaid={#3}{#4}]
            ({$(pen1)!2/5!(pen10)$} -| {$(pen9)!3/4!(pen3)$}) coordinate (llygad de)
              ++(5mm,0) coordinate (llygad de 1) [out=160, in=0] to ++(-6mm,2.5mm) coordinate (llygad de 2) [out=180, in=40] to ++(-4mm,-2.5mm)
              [out=-40, in=180] to ++(4mm,-2.5mm) [out=0, in=-160] to ++(6mm,2.5mm)
          ;
          \fill [ball color=black] (llygad chwith 1 -| llygad chwith 2) circle (2.5mm);
          \fill [ball color=black] (llygad de 1 -| llygad de 2) circle (2.5mm);
          \begin{scope}[on foreground layer={ultra thick}]
            \draw [shorten >=1pt]
              ($(pen2)!7/10!(pen3)$) coordinate (clust1) [out=125, in=-80] to (pen6);
            \draw [shorten >=1pt]
              ($(pen5)!7/10!(pen4)$) coordinate (clust2) [out=55, in=-100] to (pen7);
          \end{scope}
          \begin{scope}% llenwi clust de
            \clip (clust1) [out=125, in=-80] to (pen6) [out=-110, in=80] to (pen2) |- cycle;
            \path [stripiau corff=#1, rounded corners=1pt]
              (clust1) [out=125, in=-80] to (pen6) [out=-110, in=80] to (pen2) arc (65:45:19mm and 20mm)
              ;
          \end{scope}
          \begin{scope}% llenwi clust chwith
            \clip (clust2) [out=55, in=-100] to (pen7) [out=-70, in=100] to (pen5) |- cycle;
            \path [stripiau corff=#1, rounded corners=1pt]
              (clust2) [out=55, in=-100] to (pen7) [out=-70, in=100] to (pen5) arc (-245:-225:19mm and 20mm)
              ;
          \end{scope}
          % dim yn ddefnyddiol ar hyn o bryd ond gobeithio bynnan nhw ar ôl iddyn nhw fix the bug!
          \coordinate (-pen) at (pen1);
          \coordinate (-clust chwith) at (pen7);
          \coordinate (-clust de) at (pen6);
        }
    },
}
\makeatother
\begin{document}
  \colorlet{lliw llygaid3}{Chartreuse1}
  \colorlet{lliw llygaid4}{Green4}
  \colorlet{lliw trwyn1}{LightPink2}
  \colorlet{cath5}{LavenderBlush3}
  \colorlet{cath6}{LavenderBlush4}
  \begin{tikzpicture}
    \pic {cath b={cath6}{cath5}{lliw llygaid3}{lliw llygaid4}{lliw trwyn1}};
  \end{tikzpicture}
\end{document}
2
  • 8
    I'm not British and I don't understand this. But I love cats! (↑)
    – mickep
    Commented Nov 25, 2015 at 15:53
  • 4
    @mickep I'm abusing an old advertising slogan used by the RSPCA in TV campaigns which tried to dissuade people from giving kittens and puppies as Christmas presents since so many end up abandoned and in shelters after the holidays. So since my cat had already made his or her Christmas appearance on this site... well... this one is for Thanksgiving, too!
    – cfr
    Commented Nov 26, 2015 at 0:00
9

Nobody has yet taken up the challenge of producing pecan pie. So, taking inspiration from Steven B. Segletes's culinary masterpiece, here's a fresh-baked version to enjoy:

\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{shapes.geometric}
\definecolor{pecan}{rgb}{.7.459,0.2}
\begin{document}
% ref.: Steven B. Segletes's code for pumpkin pie at https://tex.stackexchange.com/a/279802/
\begin{tikzpicture}[node distance=2.5mm, every node/.style={anchor=center}]
  \node (can) [cylinder, rotate=90, draw, very thin, anchor=center, fill=pecan, minimum width=6mm, minimum height=7mm] {};
  \node (pie) {\ooalign{$p$\cr\kern.15pt\textcolor{pecan!70!yellow}{$p$}}\ooalign{$\pi$\cr\kern.15pt\textcolor{pecan!70!yellow}{$\pi$}}};
\end{tikzpicture}
\end{document}

pecan pie

2
  • 2
    And here's the distribution of people in the U.S. who will get the pun... :)
    – Alan Munn
    Commented Nov 28, 2015 at 17:50
  • @AlanMunn Well, that's better than the expected distribution for my first answer, anyway ;).
    – cfr
    Commented Nov 28, 2015 at 18:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .