42

Chinese Zodiac and Lunar Year can be called very close friends. In Eastern cultures, each lunar year is assigned to one of the twelve animals in Chinese zodiac. The animal (or rather a mascot) of this year is the pig. So, my question in this question is:

How to draw a (lovely) pig in LaTeX?

I found a very beautiful picture on TeXample:

enter image description here

% Author M.R.C. van Dongen
% Draw parameterised pig.
% This code can/should be improved by using the pgfkey library.

\documentclass{minimal}

\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{keyval}

\makeatletter

% We're not using pgfkeys, and we've chosen to use keyval
% for option parsing. The following define the keys for a
% pig keyval family. The main purpose of the keys and
% default values is that we want to be able to draw pigs
% with predefined colours for certain parts and predefined
% scaling factors for line thickness.

\def\pig@draw@thick@width{0.85}
\def\pig@draw@thin@width{0.20}
\def\pig@label{pig label}
\tikzset{draw thick/.style={draw=black,line width=0.85}}
\tikzset{draw thin/.style={draw=black,line width=0.20}}
\tikzset{fill colour/.style={fill=pink}}
\tikzset{nose hole fill colour/.style={fill=purple!50!gray}}
\tikzset{eye fill colour/.style={fill=white}}
\tikzset{pupil fill colour/.style={fill=black}}

\define@key{pig}{draw thick}{\def\draw@pig@thick@width{#1}}
\define@key{pig}{draw thin}{\def\draw@pig@thin@width{#1}}
\define@key{pig}{fill colour}{\tikzset{fill colour/.style={fill=#1}}}
\define@key{pig}{nose hole fill colour}{\tikzset{nose hole fill colour/.style={fill=#1}}}
\define@key{pig}{eye fill colour}{\tikzset{eye fill colour/.style={fill=#1}}}
\define@key{pig}{pupil fill colour}{\tikzset{pupil fill colour/.style={fill=#1}}}
\define@key{pig}{pig label}{\def\pig@label{#1}}
\def\pig@scale{1}

\def\pig{\@ifnextchar[\draw@pig{\draw@pig[]}}
\def\draw@pig[#1]#2{%
   % Set the relative line width for thick lines.
   \def\draw@pig@thick@width{0.85}
   % Set the relative line width for thin lines.
   \def\draw@pig@thin@width{0.20}
   % Set the relative scale of the pig.
   \def\pig@scale{#2}
   \setkeys{pig}{#1}
   \begin{tikzpicture}[scale=#2,
                       draw thick/.style={draw=black,line width=\draw@pig@thick@width*\pig@scale},
                       draw thin/.style={draw=black,line width=\draw@pig@thin@width*\pig@scale}]
   \path (0,0)            coordinate (\pig@label head)
         + (-0.005,-0.20) coordinate (\pig@label nose)
         + (-0.010,+0.05) coordinate (\pig@label body)
         + (-0.010,+0.45) coordinate (\pig@label tail);
   % Define points for tail.
   \foreach \number/\point in {1/{+0.000,+0.055},%
                               2/{-0.058,+0.075},%
                               3/{+0.044,+0.094},%
                               4/{-0.072,+0.137},%
                               5/{+0.048,+0.170},%
                               6/{-0.078,+0.206}} {
       \path (\pig@label tail) +(\point) coordinate (tail \number);
   }
   % Define points for ears and legs.
   \foreach \offset in {-1,1} {
       \path (\pig@label head)
                    ++ (+0.12*\offset,+0.00) coordinate (ear pt 1 \offset)
                    +  (-0.04*\offset,+0.07) coordinate (ear pt 2 \offset)
                    +  (-0.02*\offset,+0.25) coordinate (ear pt 3 \offset)
                    +  (+0.11*\offset,+0.25) coordinate (ear pt 4 \offset)
                    +  (+0.14*\offset,+0.13) coordinate (ear pt 5 \offset)
                    +  (+0.09*\offset,-0.06) coordinate (ear pt 6 \offset)
             (\pig@label head)
                    ++ (+0.09*\offset,-0.30) coordinate (leg 1 \offset)
                    ++ (+0.01*\offset,-0.24) coordinate (leg 2 \offset)
                    ++ (+0.04*\offset,+0.08) coordinate (leg 3 \offset)
                    ++ (+0.04*\offset,-0.08) coordinate (leg 4 \offset)
                    ++ (+0.02*\offset,+0.30) coordinate (leg 5 \offset);
   }
   % draw legs.
   \foreach \number in {-1,1} {
      \filldraw[fill colour,draw thick]
         (leg 1 \number) --
         (leg 2 \number) --
         (leg 3 \number) --
         (leg 4 \number) --
         (leg 5 \number) -- cycle;
   }
   % draw tail.
   \draw[draw thick,line join=round,line cap=round]
         (\pig@label tail) \foreach \num in {1,...,6} { -- (tail \num)};
   % draw body.
   \draw[fill colour,draw thick]
         (\pig@label body) ellipse (4.50mm and 4.10mm);
   % draw ears.
   \foreach \number in {-1,1} {
      % ears
      \filldraw[fill colour,draw thick]
         (ear pt 1 \number) .. controls
         (ear pt 2 \number) and
         (ear pt 3 \number) ..
         (ear pt 4 \number) .. controls
         (ear pt 5 \number) and
         (ear pt 6 \number) .. (ear pt 1 \number);
   }
   % draw nose.
   \filldraw[fill colour,draw thick]
         (\pig@label head) ellipse (1.42mm and 1.40mm);
   \foreach \offset in {-1,1} {
       \filldraw[draw thin,eye fill colour]
                (\pig@label head) ++ (-0.006,0.00) ++ (0.055*\offset,+0.03)
                coordinate (eye \offset)
                ellipse (0.04 and 0.060);
       \fill[pupil fill colour]
            (eye \offset) ellipse (0.020 and 0.035);
   }
   \filldraw[fill colour,draw thick]
         (\pig@label nose) ellipse (2.60mm and 1.72mm);
   % Draw nose holes
   \foreach \offset in {-1,1} {
       \filldraw[draw thick,nose hole fill colour]
                (\pig@label nose) ++ (\offset*0.080,0)
                 ellipse (0.50mm and 0.85mm);
   }
   \end{tikzpicture}
}

\makeatother

\begin{document}
\begin{tikzpicture}
   \draw (0,0) node[anchor=south]{\pig{3}}
         (4,0) node[anchor=south]{\pig[nose hole fill colour=purple!20,fill colour=blue!40]{5}};
\end{tikzpicture}
\end{document}

However, I wish to see more pigs here, especially with other familiar animals, like lions, ducks, marmots, bears, rabbits, birds, donkeys, or penguins.

I am also looking for a tikzlings pig!

  • 2
    may is it a good idea to include the code with proper citations just for archiving purposes? – Raaja Feb 4 at 9:21
  • 4
    Package inputenc Error: Unicode character 🐖 (U+1F416)(inputenc) not set up for use with LaTeX. 🐖 :( – Sanchises Feb 4 at 14:31
  • 2
    @Sanchises use xelatex or lualatex (and a suitable font) then post an answer:) – David Carlisle Feb 4 at 15:13
  • 4
    Marmots are not animals! We are beings! ;-) – marmot Feb 4 at 19:42
  • 1
    We also need ASCII pig contest on CodeGolf. :) – val Feb 4 at 20:30
69

The very first appearance of the tikzpig:

\documentclass{standalone}

\usepackage{tikz}
\definecolor{piglight}{RGB}{246,208,198}
\definecolor{pigdark}{RGB}{241,164,142}

\begin{document}

\begin{tikzpicture}

% Tail %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[pigdark,thick] (0.8471, 0.5927) .. controls (0.8549, 0.4832) and (0.8046, 0.4105) .. (0.7319, 0.4079) .. controls (0.6592, 0.4052) and (0.6142, 0.4365) .. (0.5964, 0.5024) .. controls (0.5786, 0.5682) and (0.6252, 0.6291) .. (0.6794, 0.6342) .. controls (0.7335, 0.6394) and (0.7561, 0.6114) .. (0.7663, 0.5661) .. controls (0.7765, 0.5208) and (0.746, 0.458) .. (0.7192, 0.4319) .. controls (0.6924, 0.4058) and (0.7073, 0.4182) .. (0.6604, 0.3859) .. controls (0.6134, 0.3536) and (0.4367, 0.3643) .. (0.3877, 0.5055);

% Body %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[piglight] ( 0.6,  0.8 ) .. controls ( 0.6 , 0.4) and ( 0.35, 0.16) .. ( 0.0,  0.16) .. controls (-0.35, 0.16) and (-0.6 , 0.4) .. (-0.6,  0.8 ) .. controls (-0.6 , 1.3) and (-0.35, 1.5) .. ( 0.0,  1.5) .. controls ( 0.35, 1.5) and ( 0.6 , 1.3) .. ( 0.6,  0.75) -- cycle;

% Arms %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark,rotate around={70:(0.33,0.9)}] (0.33,0.9) ellipse (0.18 and 0.13);
\fill[pigdark,rotate around={-70:(-0.33,0.9)}] (-0.33,0.9) ellipse (0.18 and 0.13);

% Head %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[piglight] (0,1.64) ellipse (.5 and .5);

% Eyes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[gray] (-0.09, 1.82) circle (0.02);
\fill[gray] ( 0.09, 1.82) circle (0.02);

% Nose %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark]  (0, 1.62) ellipse (0.18 and 0.14);
\fill[gray]  (-0.06, 1.62) circle (0.035);
\fill[gray]  ( 0.06, 1.62) circle (0.035);

% Mouth %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\draw[gray] (0.105, 1.46) arc [start angle=-50, end angle=-130, radius=0.16] ;

% Ears %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\fill[pigdark] (0.22, 2.0392) .. controls   (0.22, 2.1584) and  (0.49460, 2.255) ..     (0.49460, 2.255) .. controls    (0.49460, 2.255) and (0.5300, 1.86) .. (0.3721, 1.86) .. controls (0.2891, 1.86) and    (0.22, 1.9201) .. (0.22, 2.0392) -- cycle;
\fill[piglight] (0.22, 2.0392) .. controls (0.26, 2.1584) and (0.47, 2.22) .. (0.47, 2.20) .. controls (0.47, 2.2) and (0.49, 1.9) .. (0.3721, 1.9) .. controls (0.2891, 1.88) and (0.22, 1.88) .. (0.22, 2.0392) -- cycle; 
\fill[pigdark] (-0.22, 2.0392) .. controls  (-0.22, 2.1584) and     (-0.49460, 2.255) ..    (-0.49460, 2.255) .. controls   (-0.49460, 2.255) and (-0.5300, 1.86) .. (-0.3721, 1.86) .. controls (-0.2891, 1.86) and    (-0.22, 1.9201) .. (-0.22, 2.0392) -- cycle;
\fill[piglight] (-0.22, 2.0392) .. controls (-0.26, 2.1584) and (-0.47, 2.22) .. (-0.47, 2.20) .. controls (-0.47, 2.2) and (-0.49, 1.9) .. (-0.3721, 1.9) .. controls (-0.2891, 1.88) and (-0.22, 1.88) .. (-0.22, 2.0392) -- cycle;   

% Feet %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{scope}
    \clip (-0.5,0.4) rectangle (0.5,0.13);
    \fill[pigdark] (-0.22,0.17) circle (0.15);
    \fill[pigdark] (0.22,0.17) circle (0.15);
\end{scope}

\end{tikzpicture}
\end{document}

enter image description here


In the mean time, the tikzpig was added to the development version of the tikzlings package (available here) with improvements by @Circumscribe and @CarLaTeX (thanks a lot!)

\documentclass{standalone}
\usepackage{tikzlings}

\begin{document}

\begin{tikzpicture}
    \pig
\end{tikzpicture}   

\end{document}

enter image description here

  • 2
    @KJO I trust in the cuteness of tikzlings :) – user36296 Feb 4 at 17:27
  • @Circumscribe The smaller hat looks indeed much better! Thanks for the suggestion! (I'll have to adjust some sizes anyway to make it compatible with all the hats etc. from the tikzlings package, I will upload a new version, once this is done) – user36296 Feb 4 at 17:37
  • @Circumscribe Oh, posting a link to the code was actually much better than just an image, so I could just copy and paste what I needed. I also notoced that you replaced the head with a circle: you really live up to your user name :) Thanks again for your suggestions! – user36296 Feb 4 at 22:53
  • 1
    @KJO I don't need multiple accounts, there are enough tikzlings out there :) – user36296 Feb 4 at 23:05
  • 1
    @KJO Naaah, I said picduck. You must be thinking about pigducks, which look like this: i.stack.imgur.com/QhALd.png – user36296 Feb 4 at 23:22
64

You really don't need any packages for this

enter image description here

\documentclass{article}

\begin{document}

\begin{picture}(100,100)

\put(43,56){\circle{6}}
\put(43,56){\circle*{1}}
\put(57,56){\circle{6}}
\put(57,56){\circle*{1}}
\put(50,45){\circle{12}}
\put(48,45){\oval(3,5)}
\put(52,45){\oval(3,5)}
\put(50,50){\circle{40}}
\put(43,32){\oval(5,20)[b]}
\put(57,32){\oval(5,20)[b]}
\put(64,64){\vector(1,1){10}}
\end{picture}
\end{document}
  • Could be more accurate by rotating the footpads 180 makes them look like trotters :-) but you got my +1 – user170109 Feb 4 at 14:33
  • 9
    YOU SIR ARE A LEGEND! – Paulo Cereda Feb 4 at 14:36
43

For the sake of completeness, let's go for a Unicode pig!

% arara: xelatex
\documentclass{standalone}

\usepackage{fontspec}
\usepackage{graphicx}
\setmainfont{Symbola}

\begin{document}
\scalebox{10}{\char"1F416}
\end{document}

Pig

28

Another pig... wrapped in percusse's incredible ribbon.

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{shapes.geometric,3d}
\begin{document}
\begin{tikzpicture} % tikzpigture doesn't work
 \path[ball color=pink,opacity=0.5,postaction={fill=pink}] (0,0.2) circle (2cm);
 \path[ball color=pink,opacity=0.5,postaction={fill=pink}] (0,0) circle (1.3cm);
 \tdplotsetmaincoords{70}{0}
 \begin{scope}[tdplot_main_coords,smooth]
  \path[top color=pink!70,bottom color=pink,shading angle=25] 
  plot[variable=\t,domain=0:180] ({0.6*cos(\t)},0.5,{0.6*sin(\t)-0.3})
  -- plot[variable=\t,domain=180:0] ({0.6*cos(\t)},0,{0.6*sin(\t)-0.3});
  \fill[pink]
  plot[variable=\t,domain=0:360] ({0.6*cos(\t)},0,{0.6*sin(\t)-0.3});
  \fill plot[variable=\t,domain=0:360]({0.3+0.15*cos(\t)},0,{0.15*sin(\t)});
  \fill plot[variable=\t,domain=0:360]({-0.3+0.15*cos(\t)},0,{0.15*sin(\t)});
  \fill plot[variable=\t,domain=0:180]({0.35*cos(\t)},0,{-0.3-0.15*sin(\t)})
  plot[variable=\t,domain=180:0]({0.35*cos(\t)},0,{-0.3-0.35*sin(\t)});
  \tdplotsetrotatedcoords{-20}{30}{00}
  \begin{scope}[tdplot_rotated_coords] % right eaw
   \path[inner color=black,outer color=pink] plot[variable=\t,domain=80:170]
   ({0.53*cos(\t)},{0.53*sin(\t)},{1.2})
    -- plot[variable=\t,domain=170:80]
    ({0.53*cos(\t)},{0.53*sin(\t)},{1.2+0.4*sin((170-\t)*2)});
  \end{scope} 
  \tdplotsetrotatedcoords{20}{-30}{00}
  \begin{scope}[tdplot_rotated_coords] % left eaw
   \path[inner color=black,outer color=pink] plot[variable=\t,domain=10:100]
   ({0.53*cos(\t)},{0.53*sin(\t)},{1.2})
    -- plot[variable=\t,domain=100:10]
    ({0.53*cos(\t)},{0.53*sin(\t)},{1.2+0.4*sin((100-\t)*2)});
  \end{scope} 
  \tdplotsetrotatedcoords{-30}{40}{0}
  \begin{scope}[tdplot_rotated_coords] % right eye
   \fill plot[variable=\t,domain=0:360]({0.2*cos(\t)},{0.2*sin(\t)},{1.3});
  \end{scope} 
  \tdplotsetrotatedcoords{30}{-40}{0}
  \begin{scope}[tdplot_rotated_coords] % left eye
   \fill plot[variable=\t,domain=0:360]({0.2*cos(\t)},{0.2*sin(\t)},{1.3});
  \end{scope}
  \tdplotsetrotatedcoords{20}{-150}{0}
  \begin{scope}[tdplot_rotated_coords]
   \path[ball color=pink,postaction={fill=pink}] 
    plot[variable=\t,domain=0:180] ({0.4*cos(\t)},{0.4*sin(\t)},1.8)
  -- plot[variable=\t,domain=180:0] ({0.4*cos(\t)},{0.4*sin(\t)},2.4);
   \path[ball color=black,rotate around={-10:(0,0,2.35)}] (0,0,2.35) circle(4mm and 2mm);
  \end{scope}
  \tdplotsetrotatedcoords{-20}{150}{0}
  \begin{scope}[tdplot_rotated_coords]
   \path[ball color=pink,postaction={fill=pink}] 
    plot[variable=\t,domain=0:180] ({0.4*cos(\t)},{0.4*sin(\t)},1.8)
  -- plot[variable=\t,domain=180:0] ({0.4*cos(\t)},{0.4*sin(\t)},2.4);
   \path[ball color=black,rotate around={10:(0,0,2.35)}] (0,0,2.35) circle(4mm and 2mm);
  \end{scope}
 \end{scope}
 \begin{scope}[my polygon/.style={regular polygon,regular polygon
  sides=#1,minimum size=6cm},
  Moebigon/.pic={ % based on https://tex.stackexchange.com/a/236228/121799
\node[my polygon=#1] (a){};
\foreach \x[remember=\x as \xp (initially #1)] in {1,...,#1}{ % use `in {1}` to see the edge
  \fill[shade,shading angle={360*(\x+2)/#1}] (a.corner \xp)
     ..controls ++(360*\x/#1:2cm) .. 
     ([shift={({360*(\x+1)/#1+12-#1}:1.5cm)}]a.corner \x) 
     -- (a.corner \x);% Come back such that shading doesn't leak
}
},top color=black!50!red,bottom color=red]  
   \pic {Moebigon=6}; 
 \end{scope}
\end{tikzpicture}
\end{document}

enter image description here

  • 2
    I bet its 3D and is that a Micrometer sleeve at the front ? – user170109 Feb 5 at 4:10
  • 2
    @KJO No, it is not. I would actually be considerable effort to make it 3d. There are some elements that are in principle, though.... (the eyes and the nose) – marmot Feb 5 at 4:11
  • 2
    @KJO In this sense it is 3D: the tail is hidden by the body. ;-) – marmot Feb 5 at 4:19
  • 2
    @KJO oi! I could have use \qbezier but I didn't want to spoil the elegance of the \vector implementation, which benefits from simplicity of markup and almost photographic realism. Unlike a certain 3D package I could mention which makes things looking like balloon animals made by a children's entertainer. – David Carlisle Feb 5 at 9:29
  • 3
    How cute!!!!!!! – user36296 Feb 5 at 9:35
27

run with xelatex

\documentclass[pstricks]{standalone}
\usepackage{pst-fun}
\begin{document}

\begin{pspicture}(-2,-4)(8,4)
  \psPig(0,0)
  \psPig[fillcolor=blue!40,noseColor=purple,eyeColor=red,linewidth=4pt,unit=2](4,0)
\end{pspicture}

\end{document}

enter image description here

7

Though I am very late for the fun, I haven't seen an ascii contribution yet. Hence, here is my contribution in the form of ascii art :)

\documentclass{article}
\usepackage{filecontents,listings,graphicx,varwidth}

\begin{filecontents*}{pig.txt}
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWMWWWMMMMMMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWNXK0OOkkxxdddoolooooollccc:::;;;;,,,,,,,,,,,,,,,,,;;;;::::cccccclllooddoc:::cllodxO0KXNWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNX0Oxdlc;,'....                                                          ....        .....''',,,,;:cloxk0XNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNKOxol:,'..                                                                     .:dO0OOOkkxkOKKXXXXXXXXK0Okkdl:::;;:ldk0XWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKOxxol:,..                         ..,;:'  .;:coxOkdl,..,:cll;.  ...    ..;coddoclodoo;..;kXWMMMMMMMMMMMMMMMMMMMMMMMMMN0kdddolcllcldkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXkl,.           .;cc;.  .,. .':ldxdc:cx0KKKX0kOXNN0xoc:codkOOxooxxddollclkOOkOXNXXXXKkc;:lolodOKKKNWMMMMMMMMMMMMMMMMMMMMMMWXKK0OOOOkxdddoolloxOXWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKo.           .;odddoll:';xOxodx0K0KXXNWWWWNXWMMMXOxc;cx0XNKxdooxOkoxOOOOKNWMWNXXWNKK0OOOOKNWWWWNXKXNNXWMMMMWXXWMMMMMMMMMMMMMMMMMMMWXK0OOkkkxxol:;;ldOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMWWNNNWWMMMMMMMMMMXd'       ...'lxOOkxxk0XWWXK00OO0KXWMMWX00KNMMMWXOkkOKXNWNKOxxxxOOOOxoKNKOkk0XXKKXNWNXXX0OOKNMWNXOxkKWMWNWMMMMMNNWMMMMMMMMMMMMMMMMMMMMMMMMMWX0Okkkxdl;...;lkKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMNkl;'',:ldk0XWMMMWO;       ,dK00XXKKKXWNKKWMMMWNNWMMMMMMWNXXNXXX0kdxkO0KNNK0OOOKXXKXWNX0xdxkOOkxk0KNWNKkdloxOXWMNK000XWMMMMMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0O0O0K0o'   .,cd0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMXx;.. ..     ..;lxx:.      ,d0NWMMWXWMWKOk0XWMMMMMMMMMMMMMMWXOxxkkkOKK0l;ckOO0XNNWMMN0o::ldO0Ododk0Oxolc:cdkO00KWMWNNNNXNWNXNWNXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKKNMWWWW0c.     ..:oOXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMNk;.:xkO00k;               .o0X0OKX0OKXOkkKNMMMMWNWNOkONMMWXkc;cOXXKKK000kxO000XWMWXkoc:cdOOdcclkK0kxxxdoxxdlcd0NWNX0kxxxk0NNNWWNNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWX0OO0NWXKXKOo,.      .;o0NMMMMMMMMMMMMMMMMMMMMMMMWNXK0OkxxxxxkkOOOO00KWMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMXl. .ooxXNNN0o:,.          .oKNWXOxxxkkxOXWMMMWXOOkxddkKWN0l,,:x00OkkkOKXXKOxxOXNXkoccoO0Od;,:d0XKOkOKXKko::ldk0K0OkOOkkk0XXKXWMWNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN00KXNWXKXWWN0c.        .;dKNWWWWNNXXXKK0OOkxddoc:'...        ..''..,dXMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMNo.     .,;;dXWWXl         ;kNMMWNKOkxk0NMMMMNOlcodxkKWWKx:,:dOOkkOKK0O0K0kdldKKOdodkKX0d;',oO00OOO0XWNKkddOXXK0kkkk00kdlldKWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0OXWMMNKKXXOoc:;,.        .,:::;,''......       ....... .;lodkOxc;o0NMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMXc          'OWW0;        ;0WN0kkOOkOKWMNXNNk;..:okXWNOo:cd0K0O0KNNK0K0kxxO00Oxox0NN0d;.'ckKKOxxKNXKXXkx0NWWXOdlccldolloxkKWMMMWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWMMMMMMNK00Odl;.                     ..;clooxxkkOOOdlcdKKK0kdokXWMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMWx.  'cc,.  .xNO,      .;d0NKkxk0O0NMMNOxxdo;';lkKNXklcd0KXXKXNXOkO0Oxdx0XKkddOXX0d;..;xKWXkoxOXWWXKK0O0XKxc;oOOdollld0NWWWX0Okk0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXXWMMWKkkOOkkOxc'.                ..,cokKXXNNXK0OxdxOXXKOo;';lxKWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMK:  .:dd,  ;Ox'    .:xKNXOddxKNWWNXXkccoooOOkOKXKxloOXXKKX0oclok00kkOOKKOkxOKOdo;.,o0NXkocoOK0dc:lxO0Odc:cldxkxdxk0XX0kkkkkk0KNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNKKNWMWNK00kdlc::,. .....     ..;ld0XK0OkkOKXWNXK00KXX0d;';lkKWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMWO'   ;dc..::.  .;dOkKX0kxOKKOXMNOd:..:xK0kOKXOooxKKKKKKOc,;o0NNXK0Oxo;:xKOdoooddkXXOl::d0KOc. .lOOo;,:oxOOO0KK00KOl;lOKXNWMWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNMMMMMMMWKOKNNNKOxl. .;x00xdo; .:ldKNWX0kddxOXNNK00XWMWKd;.  .oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMWk'          .:xxddOKOOO0XNKkKN0c;cldKKdoOKklokXKOOKKx:,lk0XWMN0kkkxdoxkkxxkOOKX0d::ok00Okl,,d00xccxKNXXXOdlcccoddoxXWWNK0KXWMNKXWWNNMMMMMMMMMMMWNNWMMMMMMMMMMMMNXNMMMMMWNNNNWWXXK0kdodxkd:'.;'  ;kOO0KK0OOkOOkKNXOxkXWKl.       .;coxxkOKXNWMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMWx.         .lxxxxxdx0KOkOkkK0; ,kXKkdxkd:ckXKOO00o,'l0X0OKWXx;,cox00kdxk0KNXkl:lxO00OkoclxOkxddkXWWXOo,..:oxkOOOOkdooox0NWWNXXNWWXNMMMMMMMMMMMWXXWMMMMMMMMMMMMMMMMMMMMMNKKKKXNX00K0xl,.  .,l,  ,cdO00kdddddkKNKOkOOkl.               ....,:ldO0XNMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMK:.;;.    'oxdxxdx0NXkkKX0kdlcdKKdcxOo,,d0xclxd:..lOOkkkk0XO:.;d0Ol,;lxOKKxllxkOOOkdc;cdkkxdxkOOOOkl..:d0KKOxo;'.,ck0XWWXOkkOKXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNXXWWXKNMMMNKOk0NN0dl:codxdkOk:    ,xxl',cdkO0XWNKOOxdl.          ..,:oxOOc.    .;o0WMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMWKl'l0l.    ....;;,:kNX0OXWXkk0XXx::dl,'cdl;c;'. .lko;;dKX0d:,ck0x:.;okOOkxdxkkkkkxl::loxkxxxxddxxl::cd0NWKxc,.':okKWMMWKOdx0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXO0NMMWMMMMMMMMMMWKkkkxxOKNWWx.    ..  .oxkXWMMMN0kl.           :x0XWWW0o;..':lx0XWWMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMWXd,  .'          .;dkO0OkO0Ox0NK0d:xXOdd0Xxcoo, 'oKKo'c0XOl;;oOkl,'cdkkkkxxxxddxdl::oxxxkkxxoodxdl:;lkXNKxc,,cdO0xdkNMWWKxokXMMWXXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMNXNWMMMMMWKOOOO00000x;. .lkOOkxxo'     .;:';odddo,.             'dOkxolllldOKNWMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMXd'         .,...:dxxxxxkKWXOkO00OO0XX0OdoxKNNWXxdkl;;cx0x:;ckKk:.,okkxxxdddddxOk:,cdddxkkkxodxxdl:cxK0Od:,;oOKOd:,;xXXkollldONWX0OOKNMMMMMMMMMMMNKNMMMMMMMMMMMMWNKNMMMMMWN0kxkkOOkl,;;..,lkKNN0l.                                ..':okKNWMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMWO;           .:oxkdodkKK000OOOkkOO0XKOkkkkk00xoOXOl;;lxkxddkKKOo:cxOxddd:,lkO0NXOdoollxO0OxddxxdooxKWNOl;:oO0kl;,;lddo:':dkOKNWMMMNK0KNMMMMMMMMMMMWNWMMMMMMMMMMMMMMMMMMMNKKKKKKK0000kdOKO00Oxdl:'                             ,oolox0XWMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMWXo.       ..   :kd:..lXNXNXkdxOKNK00OkxxO0XNKOxddoodx0KkdxOX0dcclxKKOkkKXOxdkNMWX0OkolkXWXkdxxxxdxkdk0dlcokOdc;;lddoooll:lKWWXOxk0XXNNWMMMMNXXWMMMMMMMMMMMMMMMMMMMMMMWWMMMWXNWNXKKKXNKOxxxxxxdllodxl.                  ...      .oXNXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMWO,       'x0o.  .. .:dOdoONN0xod0NNXkdk0XNK0Oxdl::oKX0kxxdxdlclkXWMNKXN0KXX0O0XXNXOOO000NWKkkxdk0Ol:::ldkxl;.,lxxdoodkO0OOK0dlc,,oKWWNWWMMWNWWMMMMMMMMMMMMMMMMMMMMMMMNKKNMMMMMWOollllodxxxxdxkOklldO0kc.         'cc;:ccoxd'    .,.:0NWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMNx. ':.  .cKWK;    .lOkl:cxOKN0xkNMMWKO0XK0OOxlodxOKOdox00c..:o0WWNKOO0XXKKK0Okxxk00KWMNOk0NWWXOOXW0ddxxdc,,:odolodxkO00OkdllclooookXNK0NMMMWXXWMMMMMMMMMMMMMMMMMMMMMMMWWWWMMWNNWWNNX0OOkxxxxkKNWWXK0xdol;'.     .;dkkxl'  ..     ,xc.:KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMWKl. .kK, .xNMMO'   'od;,cddokKXXWMWXNNX0kxOOkdc:OWKxllxkdxxldO0KK0OOO0XXNNNX0OkddkO0O0XWMNKKXWMWX0NWNOo:,;lxkkkkxOK0OOkdooodxxxddddkKWMMMMNKKWMMMMMMMMMMMMMMMMMMMMMMMMMMX00KNMWNNXKKXXOdlldKNKxdkOOkxxdoodxl.   ..;c;'.            .o0c.lNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMNk,.'l0Kl.'OWMMWk.   ..  ;dxxOOOKNMWXNWMMXOOkkxOKX0dldOkc. .'ckXWKOxxO00O0XWW0kOOO0XNX0O0KWWKOKWWNKOxol'.cdO0Oxxk0NNKkolloxxdlcldO00OkOKWMMMWNWMMNXNMMMMMMMMMMMMMMMMMMMMMMMMMWWWNK0KXWWWNKOO00xc:lxxxxkkOOO0Kx..;lldl.       'lxo.    .dk'.kWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMWXk:.,xXNk, .kWMMMM0,      ,okxdx0NWNKOKWMWXOkkkO0KKkdxOOl. .';''dXXxdxkOOOOKK00OOOKXWMMNKxx0WWNNKkxkkdddxodO0KKOkkkkdlccoxdlccldkkxkkkxxOKK00NWNOkKNXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMNX0K0o;cdkO0XNKOkkxxxkKXKOkdd:...:k0Okd,   .c000Xk.    ... ;KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMWO,.'dXW0c.  :XMMMMMNo.   .cxdoxKNX0O00OOKXOk0NMNXK0Oxl,..  ,:''oKKOxx0NWKOOOO0O0KKKNWWKxodOXWXOxlclONK0OkxxkOOxdxkxccldkkxddxkxxxxxxdoc:xXXOxkKWN0OKWWXKWMMMMMMMMMMMMMMMMMMMMMMWXXWMMWNKxc;col:cdkOOKKXXKKK0Okl,':xxxxdxOK0o;..',.'dXd.    .,..dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMX: .lOKd''. 'OWMMMMMMO'    ':kNNKkkOOxxkOKKKX00NMW0d;.  .':oo,.o0kxxKWWKOkO0KKXKXNXXNKkxkKNK0K0xdOXWWKxc::ldkkxkkl;:d00OOkkkdodxxxo:,;;cx0xlclx0NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKKWWN0koc;.   .cOXNXX0kxkO000xc:ldo:;cd0NXKXXOkxkkkOX0;        'kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMO'  .;;  .'c0WMMMMMMMK;     ,dxxxOkddkO0KXXOxxOKOo,  .:dkkdc'..lO0KK0dldOKXXXXNNKOxxOKXNKkxkKXK0KKOo;..'oO0OO0kollkNMN0kdlloxkdc;,:oxxdo;. .d0Ox0NMMMMMMWWWMMMMMMMMMMMMMMMMMMMMMMMMMNOxxo,   .:dkOOOOO00OOOkxOkl,';cdxdooxOOOO0000OO0XO,.        .cOWMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMWk.       ;ONMMMMMMMMMNo.   .:clxxddddxOKX0kxxdoo;..:x0Oo;. .,d0Kxccc;lOKKKXWWKOkdxkKXKxddOXWXKXKk;. .cxkxdodo;.oKXWN0dlldkko;',cxkxdoc;.  .;dOO0KKOO0XWWKKNMMMMMMMMMMMMMMMMMMMMMMMMMW0xdd:.'oxxkkkO00KNNNX0xodo' .,:,;cxKXNNKKNMMWNXNW0xxxkkOOkd:'.'lKWMMMMMMMMMMMMMMMMMMMMMMMMM
MMWx.    .;kNMMMMMMMMMMMMO'     .,lxkc:xXKocoodxkOd;:OXk;.  'lkK0o,  .ck0kO0KX0l,cxOOkdooxKWWX00XKl..cdOOkollllolkXKkdoodk0Ol,,lxOkxddll:;;:dkxdokXXOxxkOKWMMMMMMMMMMMMMMMMMMWNWMMMMMMMWKkxdc..,oOKNWMWNXK0KNNOddo,   .cxKWNKXWNWN0000kxOkodOO0KXXx;oOo''dXMMMMMMMMMMMMMMMMMMMMMMMM
MMWl .'..xNMMMMMMMMMMMMMMX:      .xxco00l..,okkdlcldOOc. .:xOxdl:..'lO0d:oxdkx:;dOx:';o0WWX0O0KOo;cxO00OxxkOO0KNXKk:,lkxc;;coxkkxkkdoc:lxkOOo,.  .;okOXWWNWWMMMMMMMMMMMMMMMMWNNWMMMMMWK0OddkOd,.ck0KNWNNWMMMMN0kdolll,'xKOdokXMXxoOKOolood0XXNWWNXkldXW0c';xNMMMMMMMMMMMMMMMMMMMMMM
MMWo   .xWMMMMMMMMMMMMMMMWx.      ..:dl,'cxxddooddl:'..,dOOOkkO000O0K0kc.. .;dO0x;.;dXWKkdxOOxc,:kNWKkkkOOOdclx0Kd:..clclkKKOxk00Okxkkkdc;'.       'oO0KNWXKNMMMMMMMMMMMMMMMMMMMMMMMMWX0xllc,.  'dKX0OkKWMWWWX0OkOkd:,cxdodx0NOc:OXxldd:l0NXXXWW0od0NMMMWO;.;kKNWMMMMMMMMMMMMMMMMMM
MMWx. 'kWMMMMMMMMMMMMMMMMMK;       ...:dkdccxOOdc.  .:x00O0XNWWNXKK0Odc'  .l0Kd;'ckXNOocokkl;;oO00xc,:xxo:...lOOxdxdld0NNKOxdxO0OOK0oc' ..'c,  .';cc:dkOKNWWWMMMMMMMMMMMMMMMMMMMMMMMMMWKddko'  .oKXNK00XXXXXNNNX0Okddkxoxd;,:ccxOKNXXd,lK0OOl;dOkk0KK0dloo:..,:loxOXNWMMWNX0kkKNMMM
MMWk',0MMMMMMMMMMMMMMMMMMMWx.       ,oo:.,oxddxkdc:dOOO0KK00XWMW0xl,. ..  ;dl,,ckXKxlcdkd:';dOk:,c,   ...;loodxxxxk0K00OkxdxxkO00kc..';lxkkdccodoclOXNNXNX0XWMMMMMMMMMMMMMMMMMMMMMMMMMWKc,;.   .cO0Oxxk0KXNX0KXWMNx,,cdx:  .'lOo,:dO0::KN0k;.:dol:;'.. .cx00kkd:';:,;clc:,..,,'dWMM
MMMO;oWMMMMMMMMMMMMMMMMMMMMK;      .'',;.'cdxxl,':okO0XK0O0NX0Odclllloxl..';,;dOklcoxxl;:cokko,..'.  .;oxxkkxxxkdoxOK0kxdxddxk0kl..:kOkxkkxl,,,..;dOKK0OKNNWMMMMMMMMMMMMMMMMMMMMMMMMMWXKKKkl'  .'cxkkkkOKX0OO0K000d;:dd'   .ox;  ...'..,cc.  ..       .oOOkOkxd:.cko:,.    :KO,lWMM
MMMKdOMMMMMMMMMMMMMMMMMMMMMWx.       ,occxOd,.   ;kK0OO0KWNkcokKNWN0xxxxxOKNXkl;. ':,..:lloxl.    .cddl;.'cdxdoooodxkkkdolllodxxdoxKX0kkdoc.     .,:lloxXWMMMMMMMMMMMMMMMMMMMMMMMMNK0Oxx0KOd:..;:lxkkkO00kxk0XX0O0XXk:.    ''.                        'lxOkdl:;:cdOKNXx,  'Ok,;0MMM
MMMWXNMMMMMMMMMMMMMMMMMMMMMMX:         'lc'     ,kxlokOKKOxkKWMWKkxxO00XNNKOl.            ..     .:c;.  .:lloolcldddoooodxO000kxkkOKXOc.         .;ldO00KOkxxxkO0XNWMMMWWNWMMWNXKK0kdlccllodc. .lXWX0OkOKNNXKOkO0XO:.     .'                         .cl:,..;dkOO0KKKKKc .dx.'kWMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMWk'                 ..  'oO0OOKWWX0OO00OkOOxc,.                             ';;:codooodddkKXKkoc;;,,o0Od:.           .:xO0kk00kO0O0KXWWMWNWWKOO0KNNXOO0KOkkxo;. ..'cdO00O00OO00O0XNWWX:       .'           .ll,.      ...      .clcokKk;...  lO;.dWMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx'                     cOKKK0Oxk00kddxko,.                                   . .;lxxxkOxl;.       ';.       .':;..,lxO00xoxkxO00O0KNMMWNWMMWNNWMMMNKKXNN0:.     ';,',lolcoOK00XWN0xc:c,      . ,o;       .:x00kdoollxKKxc'.     ...'.     ;Kd.cXMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKl.                  .ododo,;odlcokkl.                                  ..      .;'.         .     .:c,.'ldddoodk0OO0OOkkkkxxxxkO0OO00XWX0KNMMMMMMWWWMMWO:.         .;lodo:'colllodl;..:c,.   .:'          .;:lodxxkkOO0K0xc,.          'OK;'OWMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo.                  .     .':xkl,.                  .';clo:,','..';ldkk:.,ll'.. ..  .'':lddo:,:oxdl,'lOOxookNNKkllxkkkk0KXNX0k0NN0OXNWKk0NMMMMMMMMMMMMNd.             .;.  .cdo;. .lxd'.'  .;.    .;;.               .':dOKKkdl:'     ;d,.oNMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl.                        .ll.                  'cxKNWWWKKNNX0O00kkxoccdOd;.,,.,c,:x00OOOOOkkxxo'  ;dkkkkOkdoc:cdXWMWWNKko:,..dKNXXWMMMMMMMMMMMMMMMMMWk.                   .      ..       .     .xOl.                   .;coxxl.      .oXMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk,                                          'oOK00NMMMN0OKKkdxo;.  .lodddool;;oO0kdc'.,lc;'.;o:. .:olc;;::coddolc:;;,'.   ;o,cKWMWMMMMMMMMMMMMMMMMMMXl                                           .                           .......,o0WMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc.         .c'.:xkdc.                    .cxxxkOOxdl;....           .;:,,cddl;.                 .                       .d00XWMMMMMMMMMMMMMMMMMMNOl.                                                   .':looodxdoooodddxxkO000KKXWMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx'        .';',ok0Od:'.                     ',.                         ..                                             .c000NMMMMMMMMMMMMMMMMWKo.                                .lkkkxxxdddooolooodkOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXo.   .'cdkOkkkkxc..';.     ..'.                                                                                        'kNXXMMMMMMMMMMMNK0xko.  ...                      ..;lxOKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO'   ,l:,:ldxxdl'      .;lx0XN0c.                     .';:::;,'..                                ....           ..,,.   .;cdKMMMMMMMMXOxx;... .cKXOkkkkkxxddoolloooddxxkOKXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWo        .;ll;.    .,lkKWMMMMMMWKx,              '.  'kNWMMMMWNX0Oxoc;'..                ..,:ldkO0KXO;        'oOXWWk.     'oKWWMMMMMWKo,    .xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO' .,cl;.,:'     .;xKWMMMMMMMMMMMMWO'           .o0l. ,0MMMMMMMMMMMMMMWNX0OkxdollllloddxO0KXWMMMMMMMMMO.      .o00XWMWx.   .d00000KWMMMMXc.  .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNx..cOK0OkkOx,   .;kNMMMMMMMMMMMMMMMMXc          .d0kd; ;XMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;   .;ok0XWMMMMWo    .;xXWKKWMMMMMX:  .kMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXl. ;XNOdddol;. .lx0WMMMMMMMMMMMMMMMMMNl.        'dxd00;.dNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc   :0K0OKNMMMMWk;.   .dNWNWMMMMMMWx. 'OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMKc   'l;..,c'   ,ONXNMMMMMMMMMMMMMMMMMMXc         .,:OKOc:0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNl.  .cdk0XWMMMXkx0O:   lNMMMMMMMMMNd. cXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO;      .,;cl'  cKMMMMMMMMMMMMMMMMMMMMMWO'          ,kX0xcxNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd.  :KMMMMMMMKodXMMNd. .c0NWMMMMWOo;..dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO,       .dk,  .lXMMMMMMMMMMMMMMMMMMMMMMWk.         .kWW0::KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNo. .lKWMMMMWOlxNMMMMW0; .o0XNMMMWK:  .OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc.       ..   :XMMMMMMMMMMMMMMMMMMMMMMMMK:         ;KMK:.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMX:.;xKWMMMMNxckWMMMMMMMK: .dNWMMMW0; .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd.    .lo.   ;KMMMMMMMMMMMMMMMMMMMMMMMMWx.        ;KNx'.dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx:dXWMMMMMNo,xWMMMMMMMMMXc 'kWMMMWO' '0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:     ';'.   oWMMMMMMMMMMMMMMMMMMMMMMMMK:       .oNO;..xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk:oKNWMMMMNl.lNMMMMMMMMMMMXc .:0MMMNo..xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.      ..   ;KMMMMMMMMMMMMMMMMMMMMMMMMWO'      ,OO:  ,0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;'xNMMMMMWd.:KMMMMMMMMMMMMMK,  lNMMMK; 'OWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc ..  .lkkc..xWMMMMMMMMMMMMMMMMMMMMMMMMNd.     ...  .oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMk..d0NMMWKo';0WMMMMMMMMMMMMMWd. .oXMMWk' ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:.   .oXMX: :XMMMMMMMMMMMMMMMMMMMMMMMMMXl        ...lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;.;xxxkd,.,OWMMMMMMMMMMMMMMMXc  ;0MMMW0;.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0;     :KNo..xWMMMMMMMMMMMMMMMMMMMMMMMMM0;      .c00ooXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx. . .;;..xWMMMMMMMMMMMMMMMMMK; .cKWMMWO'.xNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.     .xO; 'OWMMMMMMMMMMMMMMMMMMMMMMMMW0:       ;d:.oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK:       '0MMMMMMMMMMMMMMMMMMWO'  'lkXNO' ,0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM0,      .'.  ,OWMMMMMMMMMMMMMMMMMMMMMMMMMK;          .oKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWx.      .dNMMMMMMMMMMMMMMMMMMX;     .,.  .dWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXc            .dNMMMMMMMMMMMMMMMMMMMMMMMMWx.           .l0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNk;      .oXMMMMMMMMMMMMMMMMM0'      ,ol, .cKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWd.             :KMMMMMMMMMMMMMMMMMMMMMMMMXc.         .'''lKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMK;  'll..,xXMMMMMMMMMMMMMMWx.      ;0WXo. :KMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXx'        ':o:.:KMMMMMMMMMMMMMMMMMMMMMMMMNOxdl'     'x0x:;kNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWO, ,0Wk'  'oKWMMMMMMMMMMMMKcckOo.  .lKNk,.c0KNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNOc'.    .lOXNx';0MMMMMMMMMMMMMMMMMMMMMMMMMMMMK:   .:xddxc'xWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWk'.:xo.    'xWMMMMMMMMMMMMWWMMWk'   .cdl. .;0MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNKx,    ..,,. ;0MMMMMMMMMMMMMMMMMMMMMMMMMMMMXklcclol:loo0WMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xdolc::;;:xNMMMMMMMMMMMMMMMMMW0lc:;;;,'..lXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMXkxxxxxxxxxkXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWMMMMMMMMMMMMMMMMMMMMMMWWWWWWNXXNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
\end{filecontents*}
\newsavebox{\asciiart}
\newcommand{\pig}{\raisebox{.8\height}{\resizebox{1.5ex}{!}{\usebox{\asciiart}}}}

\begin{document}
\begin{lrbox}{\asciiart}
\begin{varwidth}{\maxdimen}
\noindent\lstinputlisting[basicstyle=\ttfamily]{pig.txt}
\end{varwidth}
\end{lrbox}%

 \scalebox{50}{\pig{}}

\end{document}

to get:

enter image description here

  • How did you do it? – pushpen.paul Mar 14 at 3:59
  • @pushpen.paul you take a image that you like, convert it online into ascii. And, then you plot it in TeX. – Raaja Mar 14 at 6:02
5

(This answer is suggested by KJO)

Let's hope to have a year filled with money!

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}[y=0.80pt, x=0.80pt, yscale=-1.000000, xscale=1.000000, inner sep=0pt, outer sep=0pt]
\fill[yellow,yshift=7.2cm] (15,30) rectangle (40,15);
\path[fill=black,line width=0.056pt] (11.7614,296.5612) .. controls
  (11.3851,295.9868) and (11.4156,295.6960) .. (12.1522,292.8392) .. controls
  (12.5917,291.1347) and (12.9512,289.5263) .. (12.9512,289.2649) .. controls
  (12.9512,289.0035) and (12.4849,288.4664) .. (11.9150,288.0715) .. controls
  (10.8120,287.3071) and (8.0433,284.4949) .. (7.3902,283.4755) .. controls
  (7.1101,283.0385) and (6.6579,282.8200) .. (5.8075,282.7111) .. controls
  (2.4694,282.2834) and (0.6994,279.9432) .. (-0.0230,275.0021) .. controls
  (-0.3005,273.1045) and (-0.2866,272.7630) .. (0.0919,272.1854) .. controls
  (0.3287,271.8239) and (0.7889,271.4769) .. (1.1145,271.4143) .. controls
  (3.8064,270.8964) and (4.9406,270.6343) .. (5.2960,270.4477) .. controls
  (5.5240,270.3280) and (6.1422,269.3594) .. (6.6698,268.2952) .. controls
  (7.6356,266.3469) and (9.2936,264.3698) .. (11.2099,262.8815) --
  (12.2466,262.0763) -- (11.5545,261.1688) .. controls (10.7799,260.1533) and
  (9.3930,257.2403) .. (9.1277,256.0717) -- (8.9543,255.3080) --
  (11.5481,255.4387) .. controls (14.4665,255.5857) and (18.0645,256.6356) ..
  (20.6242,258.0870) .. controls (21.4245,258.5408) and (22.3934,258.8904) ..
  (22.7772,258.8640) .. controls (23.3875,258.8219) and (23.4979,258.9405) ..
  (23.6580,259.8100) .. controls (24.1689,262.5854) and (26.2258,265.1720) ..
  (28.8628,266.3555) .. controls (30.7667,267.2099) and (33.5066,267.3323) ..
  (35.4030,266.6477) .. controls (37.0986,266.0356) and (38.9808,264.5459) ..
  (39.9326,263.0626) -- (40.7698,261.7580) -- (42.1396,262.6008) .. controls
  (44.0447,263.7731) and (47.0598,266.7080) .. (48.0085,268.3137) .. controls
  (48.4853,269.1206) and (48.9906,269.6592) .. (49.2738,269.6624) .. controls
  (49.9018,269.6694) and (51.5831,268.9567) .. (51.5702,268.6889) .. controls
  (51.5642,268.5724) and (51.1821,268.2389) .. (50.7202,267.9478) .. controls
  (49.4649,267.1569) and (48.6700,265.8172) .. (48.6700,264.4926) .. controls
  (48.6700,263.5579) and (48.8094,263.2473) .. (49.4840,262.6797) .. controls
  (49.9318,262.3030) and (50.5925,261.9947) .. (50.9524,261.9947) .. controls
  (52.5243,261.9947) and (54.2980,263.6473) .. (54.8197,265.5981) .. controls
  (54.9902,266.2356) and (55.2833,266.7572) .. (55.4710,266.7572) .. controls
  (55.6587,266.7572) and (56.2840,266.3310) .. (56.8607,265.8100) .. controls
  (57.9885,264.7911) and (58.8201,264.7508) .. (59.1215,265.7003) .. controls
  (59.4670,266.7891) and (57.3965,268.5769) .. (55.2846,269.0134) .. controls
  (54.7753,269.1186) and (53.9204,269.5987) .. (53.3849,270.0802) .. controls
  (52.8495,270.5616) and (51.8046,271.1711) .. (51.0630,271.4345) .. controls
  (49.7563,271.8986) and (49.7210,271.9379) .. (49.9199,272.7087) .. controls
  (50.0328,273.1462) and (50.1222,274.5756) .. (50.1185,275.8853) .. controls
  (50.1078,279.6723) and (48.7426,282.8163) .. (45.7530,285.9395) .. controls
  (45.0608,286.6627) and (44.6869,287.3330) .. (44.5724,288.0562) .. controls
  (44.0349,291.4502) and (42.7403,296.0276) .. (42.1217,296.7213) .. controls
  (41.7648,297.1215) and (41.1947,297.1843) .. (37.9195,297.1843) .. controls
  (34.2202,297.1843) and (34.1203,297.1693) .. (33.7174,296.5545) .. controls
  (33.3396,295.9779) and (33.3494,295.7635) .. (33.8333,294.0175) --
  (34.3617,292.1104) -- (32.9831,292.3322) .. controls (31.3480,292.5953) and
  (24.0735,292.6290) .. (22.7206,292.3798) -- (21.7743,292.2054) --
  (21.1790,294.2318) .. controls (20.2900,297.2577) and (20.4197,297.1843) ..
  (15.9591,297.1843) .. controls (12.2713,297.1843) and (12.1588,297.1676) ..
  (11.7614,296.5612) -- cycle(36.7032,282.1261) .. controls (37.1792,281.9373)
  and (37.6852,281.5650) .. (37.8277,281.2989) .. controls (37.9701,281.0327)
  and (38.0867,279.2800) .. (38.0867,277.4041) .. controls (38.0867,274.0791)
  and (38.0695,273.9771) .. (37.4036,273.3518) -- (36.7206,272.7103) --
  (26.8422,272.7103) .. controls (21.4091,272.7103) and (16.8699,272.8043) ..
  (16.7551,272.9192) .. controls (16.4775,273.1969) and (16.2807,279.3879) ..
  (16.5024,280.8666) -- (16.6772,282.0322) -- (18.3200,282.3054) .. controls
  (20.7458,282.7089) and (35.5994,282.5640) .. (36.7032,282.1262) --
  cycle(15.5779,269.7642) .. controls (16.2980,268.8487) and (16.2702,268.2000)
  .. (15.4768,267.4066) .. controls (14.2164,266.1462) and (12.4221,266.9216) ..
  (12.4221,268.7266) .. controls (12.4221,270.4142) and (14.5232,271.1050) ..
  (15.5779,269.7642) -- cycle(52.9033,266.3564) .. controls (52.9033,265.8422)
  and (51.1535,263.9210) .. (50.9083,264.1661) .. controls (50.5218,264.5526)
  and (51.0994,265.7360) .. (51.9182,266.2353) .. controls (52.9422,266.8596)
  and (52.9033,266.8548) .. (52.9033,266.3564) -- cycle(30.1883,265.2075) ..
  controls (28.4468,264.5878) and (27.6205,263.9904) .. (26.5183,262.5543) ..
  controls (25.4449,261.1557) and (25.0385,259.6658) .. (25.1760,257.6333) ..
  controls (25.3040,255.7406) and (25.9513,254.2863) .. (27.2387,252.9989) ..
  controls (28.7839,251.4537) and (29.9551,251.0145) .. (32.5304,251.0145) ..
  controls (34.4908,251.0145) and (34.9321,251.1048) .. (35.9700,251.7185) ..
  controls (38.5102,253.2205) and (39.7803,255.4241) .. (39.7581,258.2905) ..
  controls (39.7418,260.3841) and (39.2619,261.5926) .. (37.8302,263.1459) ..
  controls (35.7943,265.3546) and (32.8406,266.1515) .. (30.1883,265.2075) --
  cycle(33.1852,263.1830) .. controls (33.3344,262.8932) and (33.7790,262.3390)
  .. (34.1733,261.9513) .. controls (35.7409,260.4100) and (35.3328,258.8215) ..
  (33.0882,257.7276) .. controls (31.3987,256.9043) and (31.0221,256.3971) ..
  (31.6408,255.7784) .. controls (32.1808,255.2384) and (33.3015,255.4480) ..
  (33.8194,256.1859) .. controls (34.2616,256.8158) and (35.0590,256.8610) ..
  (35.2862,256.2689) .. controls (35.4987,255.7152) and (34.8047,254.6469) ..
  (33.9920,254.2766) .. controls (33.6471,254.1194) and (33.2920,253.7004) ..
  (33.2029,253.3454) .. controls (32.9895,252.4954) and (31.9091,252.5842) ..
  (31.7844,253.4619) .. controls (31.7379,253.7893) and (31.5837,254.0572) ..
  (31.4416,254.0572) .. controls (31.2996,254.0572) and (30.8912,254.3495) ..
  (30.5340,254.7067) .. controls (30.0660,255.1747) and (29.8846,255.6450) ..
  (29.8846,256.3904) .. controls (29.8846,257.6560) and (30.7129,258.5878) ..
  (32.2464,259.0472) .. controls (33.4580,259.4102) and (33.6899,259.6716) ..
  (33.4557,260.4096) .. controls (33.2215,261.1474) and (31.6073,261.1457) ..
  (31.1461,260.4076) .. controls (30.6598,259.6289) and (29.6200,259.7030) ..
  (29.6200,260.5164) .. controls (29.6200,261.1223) and (30.9273,262.5243) ..
  (31.4924,262.5243) .. controls (31.6267,262.5243) and (31.7367,262.7425) ..
  (31.7367,263.0093) .. controls (31.7367,263.9995) and (32.7051,264.1159) ..
  (33.1852,263.1834) -- cycle;
\end{tikzpicture}
\end{document}

enter image description here

Edit 1

Shorter version WITH CHINESE!

\documentclass[tikz]{standalone}
\usepackage{CJKutf8}
\begin{document}
\begin{tikzpicture}
\fill[black] (0,0) ellipse (3cm and 2.5cm);
\fill[black,rounded corners] (-1.5,-2)--(-2,-3.5)--(-1,-3.5)--(-.5,-2);
\fill[black,rounded corners] (1,-2)--(0.5,-3.5)--(1.5,-3.5)--(2.5,-1);
\fill[black,rounded corners=1mm] (-2.5,0.5)--(-4,0)--(-3.75,-1)--(-2,-1.5);
\fill[black] (0,2)--(-3,2.25)--(-2,1);
\draw[line width=3mm] (1,0)--(3.5,1.5);
\node[line width=2mm,draw=white,fill=black,circle,font=\sffamily\color{white}\Huge,scale=1.5] at (80:3cm and 2.5cm) {\$};
\fill[white] (-2,1) circle (2mm);
\node[fill=red,font=\color{yellow}\huge] at (0,-.25) {%
\begin{CJK*}{UTF8}{gbsn}
新年快乐!
\end{CJK*}
};
\end{tikzpicture}
\end{document}

enter image description here

  • 1
    Ok I know I'm picky (piggy:-) but you could squeeze 新年快乐 in the box ? – user170109 Mar 16 at 12:54
  • 1
    @KJO Well I am not familiar with typing Chinese in LaTeX, so would you please add it for me? It will be very appreciated. I know I can't use babel and that is why I am feeling lazy ;-) Happy (not new anymore) year! – user156344 Mar 16 at 12:56
  • 1
    Good point year of the pig 豬年 (synonymous with a year of prosperity) but a good single character may simply be fu 福 – user170109 Mar 16 at 13:14
  • 1
    @KJO Just learned CJKutf8 ;-) See the edited answer! – user156344 Mar 16 at 13:23
  • 1
    WoW ! take +2 for the colours – user170109 Mar 16 at 13:24
5

There is, now, also my pig :-) drawn with Matcha editor https://www.mathcha.io

enter image description here

\documentclass[a4paper,12pt]{article}
\usepackage{tikz}
\begin{document}

\tikzset{every picture/.style={line width=0.75pt}} 

\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw [fill=pink,fill opacity=1 ]  (128.4,142.2) .. controls (128.4,117.35) and (157.84,97.2) .. (194.15,97.2) .. controls (230.46,97.2) and (259.9,117.35) .. (259.9,142.2) .. controls (259.9,167.05) and (230.46,187.2) .. (194.15,187.2) .. controls (157.84,187.2) and (128.4,167.05) .. (128.4,142.2) -- cycle ;
\draw  [fill=pink,fill opacity=1] (100.87,153.64) .. controls (99.86,138.46) and (116.02,125.02) .. (136.97,123.63) .. controls (157.91,122.23) and (175.71,133.42) .. (176.72,148.61) .. controls (177.72,163.79) and (161.56,177.23) .. (140.62,178.62) .. controls (119.67,180.02) and (101.88,168.83) .. (100.87,153.64) -- cycle ; 
\draw   (145.63,151.23) .. controls (154.17,152.67) and (157.02,156.91) .. (151.99,160.69) .. controls (146.97,164.47) and (135.98,166.37) .. (127.45,164.93) .. controls (118.92,163.49) and (116.07,159.25) .. (121.09,155.47) .. controls (126.11,151.69) and (137.1,149.79) .. (145.63,151.23) -- cycle ;
\draw   (143.25,141.06) .. controls (142.84,139.99) and (143.37,139.13) .. (144.44,139.13) .. controls (145.51,139.13) and (146.71,139.99) .. (147.13,141.06) .. controls (147.54,142.13) and (147,143) .. (145.93,143) .. controls (144.86,143) and (143.66,142.13) .. (143.25,141.06) -- cycle ;
\draw   (121.49,141.48) .. controls (122.61,141.24) and (123.38,141.9) .. (123.22,142.96) .. controls (123.05,144.02) and (122.01,145.07) .. (120.89,145.31) .. controls (119.77,145.55) and (118.99,144.89) .. (119.16,143.83) .. controls (119.32,142.78) and (120.37,141.72) .. (121.49,141.48) -- cycle ; 
\draw   (143.79,154.13) -- (143.79,161.08) ;
\draw    (126.2,155.43) -- (127.45,162.93) ;
\draw[fill=pink]   (103.37,133.64) -- (106.1,126.87) -- (116.37,122.5) -- (123.14,125.23) -- (125.16,129.99) -- (125.16,129.99) -- (105.39,138.39) -- (105.39,138.39) -- cycle ;
\draw[fill=pink]   (136.97,123.63) -- (142.57,118.03) -- (152.85,118.03) -- (158.45,123.63) -- (158.45,129.23) -- (158.45,129.23) -- (136.97,129.23) -- (136.97,129.23) -- cycle ;
\draw  [color={rgb, 255:red, 0; green, 0; blue, 0 }  ][line width=0.75] [line join = round][line cap = round] (259.69,142.57) .. controls (265.17,140.64) and (270.84,140.56) .. (268.91,146.69) .. controls (268.43,148.18) and (265.32,149.85) .. (263.04,149.05) .. controls (255.71,146.47) and (266.59,138.8) .. (269.74,137.85) .. controls (270.26,137.69) and (271.05,137.55) .. (271.42,137.85) .. controls (275.04,140.76) and (276.45,142.97) .. (276.45,146.69) .. controls (276.45,148.01) and (272.97,144.29) .. (273.93,143.16) .. controls (275.56,141.25) and (277.54,138.87) .. (280.63,138.44) .. controls (286.59,137.6) and (289.48,142.47) .. (284.82,144.92) .. controls (283.6,145.57) and (282.83,141.83) .. (283.15,141.39) .. controls (284.7,139.2) and (285.57,139.62) .. (288.18,139.62) ;
5) .. controls (252.49,162.5) and (255.86,163.51) .. (255.86,164.76) -- cycle ;
\draw[fill=yellow]   (57.5,85.67) .. controls (48.76,81.11) and (44.91,71.22) .. (48.89,63.57) .. controls (52.88,55.92) and (63.2,53.41) .. (71.94,57.97) .. controls (65.77,58.27) and (59.89,61.78) .. (56.81,67.69) .. controls (53.72,73.61) and (54.21,80.44) .. (57.5,85.67) -- cycle ;
\draw   (85.61,59.25) .. controls (85.41,58.24) and (86.07,57.24) .. (87.31,56.68) .. controls (88.55,56.11) and (90.16,56.08) .. (91.45,56.59) .. controls (91.91,56.01) and (92.74,55.6) .. (93.7,55.5) .. controls (94.66,55.4) and (95.64,55.61) .. (96.33,56.08) .. controls (96.72,55.55) and (97.48,55.19) .. (98.35,55.13) .. controls (99.22,55.08) and (100.07,55.33) .. (100.6,55.8) .. controls (101.3,55.24) and (102.42,55) .. (103.47,55.19) .. controls (104.52,55.39) and (105.31,55.97) .. (105.5,56.7) .. controls (106.36,56.86) and (107.08,57.27) .. (107.47,57.82) .. controls (107.85,58.37) and (107.87,59.01) .. (107.52,59.57) .. controls (108.37,60.32) and (108.57,61.33) .. (108.04,62.21) .. controls (107.52,63.09) and (106.35,63.71) .. (104.97,63.85) .. controls (104.96,64.68) and (104.3,65.43) .. (103.24,65.83) .. controls (102.18,66.23) and (100.88,66.2) .. (99.86,65.77) .. controls (99.42,66.76) and (98.19,67.49) .. (96.7,67.64) .. controls (95.2,67.79) and (93.72,67.34) .. (92.88,66.48) .. controls (91.85,66.9) and (90.62,67.02) .. (89.46,66.82) .. controls (88.3,66.61) and (87.31,66.09) .. (86.71,65.38) .. controls (85.66,65.46) and (84.64,65.09) .. (84.17,64.45) .. controls (83.69,63.8) and (83.85,63.02) .. (84.58,62.5) .. controls (83.64,62.12) and (83.16,61.37) .. (83.39,60.64) .. controls (83.62,59.91) and (84.51,59.37) .. (85.59,59.29) ; \draw   (84.58,62.5) .. controls (85.02,62.68) and (85.53,62.76) .. (86.04,62.73)(86.71,65.38) .. controls (86.93,65.36) and (87.14,65.32) .. (87.35,65.27)(92.88,66.48) .. controls (92.72,66.32) and (92.59,66.15) .. (92.49,65.97)(99.86,65.77) .. controls (99.94,65.59) and (99.99,65.4) .. (100.01,65.21)(104.97,63.85) .. controls (104.98,62.97) and (104.25,62.16) .. (103.09,61.78)(107.52,59.57) .. controls (107.34,59.87) and (107.05,60.14) .. (106.69,60.35)(105.5,56.7) .. controls (105.53,56.82) and (105.55,56.95) .. (105.54,57.07)(100.6,55.8) .. controls (100.42,55.95) and (100.28,56.1) .. (100.17,56.27)(96.33,56.08) .. controls (96.24,56.21) and (96.17,56.34) .. (96.13,56.48)(91.45,56.59) .. controls (91.72,56.7) and (91.97,56.83) .. (92.2,56.98)(85.61,59.25) .. controls (85.64,59.39) and (85.68,59.53) .. (85.74,59.67) ;
\draw   (125.61,55.25) .. controls (125.41,54.24) and (126.07,53.24) .. (127.31,52.68) .. controls (128.55,52.11) and (130.16,52.08) .. (131.45,52.59) .. controls (131.91,52.01) and (132.74,51.6) .. (133.7,51.5) .. controls (134.66,51.4) and (135.64,51.61) .. (136.33,52.08) .. controls (136.72,51.55) and (137.48,51.19) .. (138.35,51.13) .. controls (139.22,51.08) and (140.07,51.33) .. (140.6,51.8) .. controls (141.3,51.24) and (142.42,51) .. (143.47,51.19) .. controls (144.52,51.39) and (145.31,51.97) .. (145.5,52.7) .. controls (146.36,52.86) and (147.08,53.27) .. (147.47,53.82) .. controls (147.85,54.37) and (147.87,55.01) .. (147.52,55.57) .. controls (148.37,56.32) and (148.57,57.33) .. (148.04,58.21) .. controls (147.52,59.09) and (146.35,59.71) .. (144.97,59.85) .. controls (144.96,60.68) and (144.3,61.43) .. (143.24,61.83) .. controls (142.18,62.23) and (140.88,62.2) .. (139.86,61.77) .. controls (139.42,62.76) and (138.19,63.49) .. (136.7,63.64) .. controls (135.2,63.79) and (133.72,63.34) .. (132.88,62.48) .. controls (131.85,62.9) and (130.62,63.02) .. (129.46,62.82) .. controls (128.3,62.61) and (127.31,62.09) .. (126.71,61.38) .. controls (125.66,61.46) and (124.64,61.09) .. (124.17,60.45) .. controls (123.69,59.8) and (123.85,59.02) .. (124.58,58.5) .. controls (123.64,58.12) and (123.16,57.37) .. (123.39,56.64) .. controls (123.62,55.91) and (124.51,55.37) .. (125.59,55.29) ; \draw   (124.58,58.5) .. controls (125.02,58.68) and (125.53,58.76) .. (126.04,58.73)(126.71,61.38) .. controls (126.93,61.36) and (127.14,61.32) .. (127.35,61.27)(132.88,62.48) .. controls (132.72,62.32) and (132.59,62.15) .. (132.49,61.97)(139.86,61.77) .. controls (139.94,61.59) and (139.99,61.4) .. (140.01,61.21)(144.97,59.85) .. controls (144.98,58.97) and (144.25,58.16) .. (143.09,57.78)(147.52,55.57) .. controls (147.34,55.87) and (147.05,56.14) .. (146.69,56.35)(145.5,52.7) .. controls (145.53,52.82) and (145.55,52.95) .. (145.54,53.07)(140.6,51.8) .. controls (140.42,51.95) and (140.28,52.1) .. (140.17,52.27)(136.33,52.08) .. controls (136.24,52.21) and (136.17,52.34) .. (136.13,52.48)(131.45,52.59) .. controls (131.72,52.7) and (131.97,52.83) .. (132.2,52.98)(125.61,55.25) .. controls (125.64,55.39) and (125.68,55.53) .. (125.74,55.67) ;
\draw   (16.28,55.47) .. controls (16.07,54.24) and (16.73,53.03) .. (17.98,52.34) .. controls (19.22,51.65) and (20.83,51.61) .. (22.12,52.24) .. controls (22.57,51.53) and (23.41,51.03) .. (24.37,50.91) .. controls (25.33,50.79) and (26.31,51.05) .. (27,51.62) .. controls (27.39,50.97) and (28.15,50.54) .. (29.02,50.47) .. controls (29.89,50.4) and (30.73,50.71) .. (31.26,51.28) .. controls (31.97,50.6) and (33.08,50.31) .. (34.13,50.54) .. controls (35.18,50.77) and (35.97,51.49) .. (36.17,52.37) .. controls (37.03,52.57) and (37.74,53.06) .. (38.13,53.73) .. controls (38.52,54.39) and (38.54,55.17) .. (38.19,55.85) .. controls (39.04,56.76) and (39.24,57.98) .. (38.71,59.05) .. controls (38.19,60.12) and (37.02,60.87) .. (35.64,61.04) .. controls (35.63,62.04) and (34.97,62.96) .. (33.9,63.44) .. controls (32.84,63.92) and (31.55,63.89) .. (30.52,63.36) .. controls (30.09,64.56) and (28.86,65.45) .. (27.36,65.63) .. controls (25.87,65.82) and (24.38,65.27) .. (23.55,64.23) .. controls (22.52,64.74) and (21.28,64.89) .. (20.12,64.64) .. controls (18.96,64.39) and (17.97,63.76) .. (17.38,62.89) .. controls (16.33,62.99) and (15.31,62.54) .. (14.83,61.76) .. controls (14.36,60.98) and (14.52,60.04) .. (15.24,59.4) .. controls (14.31,58.94) and (13.83,58.03) .. (14.06,57.15) .. controls (14.29,56.27) and (15.17,55.61) .. (16.25,55.51) ; \draw   (15.24,59.4) .. controls (15.69,59.62) and (16.2,59.71) .. (16.71,59.68)(17.38,62.89) .. controls (17.6,62.87) and (17.81,62.82) .. (18.02,62.76)(23.55,64.23) .. controls (23.39,64.03) and (23.26,63.83) .. (23.16,63.61)(30.52,63.36) .. controls (30.6,63.14) and (30.66,62.92) .. (30.68,62.69)(35.64,61.04) .. controls (35.65,59.97) and (34.92,58.99) .. (33.76,58.53)(38.19,55.85) .. controls (38,56.21) and (37.72,56.53) .. (37.35,56.79)(36.17,52.37) .. controls (36.2,52.52) and (36.21,52.67) .. (36.21,52.82)(31.26,51.28) .. controls (31.09,51.45) and (30.94,51.64) .. (30.83,51.85)(27,51.62) .. controls (26.91,51.77) and (26.84,51.94) .. (26.79,52.11)(22.12,52.24) .. controls (22.39,52.37) and (22.64,52.53) .. (22.87,52.71)(16.28,55.47) .. controls (16.3,55.63) and (16.35,55.8) .. (16.41,55.96) ;
\draw[fill=brown]   (272.27,179.58) -- (272.4,215.16) -- (115.9,215.73) -- (115.77,180.16) -- cycle ;
\draw   (156.48,168.75) .. controls (153.52,171.47) and (149.99,173.52) .. (145.99,174.68) .. controls (140.52,176.26) and (134.9,175.97) .. (129.65,174.15) -- cycle ;

\end{tikzpicture}

\end{document}
4

With the pgfornament package:

\documentclass[margin=10mm]{standalone}

\usepackage{pgfornament}

\begin{document}

\begin{tikzpicture}
\pgfornament[color=red!50!white]{111}
\end{tikzpicture}


\end{document}

enter image description here

  • My best compliments :-) – Sebastiano Jun 12 at 20:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy