126

I would like to include smileys in my LaTeX document. Is there any package with lots of different smileys?

In mnsymbol and wasysym, I found some general symbols:

\documentclass{article}
\usepackage{MnSymbol,wasysym}
\begin{document}
wasysym: \smiley{} \frownie{} \blacksmiley{}

MnSymbol: \(\smile{} \frown{}\)
\end{document}

output

But I do not like the output. Actually, I am looking for smileys which look like "default smiles" in Google Talk, MSN, ... ;) <- this one is my favourite. ;)

3
  • 1
    Since you have some responses below that seem to answer your question, please consider marking one of them as ‘Accepted’ by clicking on the tickmark below their vote count. This shows which answer helped you most, and it assigns reputation points to the author of the answer (and to you!). If you need more help, please specify your needs.
    – doncherry
    Commented Jul 13, 2011 at 22:10
  • 2
    Related Question: Something between \frownie and \smiley. Commented Jun 9, 2012 at 0:25
  • What do you think about this new answer tex.stackexchange.com/a/375029/13173 ? I think it is great. Commented Jun 18, 2017 at 7:21

10 Answers 10

80

For the sake of completeness (see also https://tex.stackexchange.com/a/59125/83):

Unicode defines codepoints of the various emoticons/emojis: There is ☺ and ☹ at U+263A and U+2639, and there are many more from U+1F601 onward. So, all you need is a font that includes these characters (DejaVu Sans contains some of them, and there are other fonts with full emoji support), copy&paste your emojis, and use XeLaTeX or LuaLaTeX. E.g.,

% Compile with xelatex or lualatex and DejaVu Sans installed on your system.
\documentclass{article}
\usepackage{fontspec}
\newfontfamily\DejaSans{DejaVu Sans}

\begin{document}
Some emoticons from Unicode: 

{\DejaSans ☺😐☹😁😂😃😇😉😈😋😍😱} and even cats: {\DejaSans 😺}!
\end{document}

result

5
  • 28
    Any chance getting this to work with pdfLatex?
    – kexxcream
    Commented Aug 3, 2016 at 12:59
  • 2
    when i compile the above code i only get "????" instead of smileys, what am i doing wrong? :(
    – nerdess
    Commented Dec 7, 2016 at 20:24
  • @nerdess Did you compile with XeLaTeX or LuaLaTeX and is DejaVu Sans available (to TeX) on you system?
    – Caramdir
    Commented Dec 9, 2016 at 23:34
  • Is it possible to get the coloured version? Still, some emotions don't work, for example: 💖 Which font has full support?
    – LEo
    Commented Feb 10, 2021 at 21:39
  • 3
    @LEo: The font Noto Color Emoji has support for colored emojis. Its use in LaTeX is explained here. Commented Apr 7, 2021 at 9:04
69

Package tikzsymbols provides some symbols as well. As usual with tikz, you can apply scale and color changes.

lanSmiley

\documentclass{article}
\usepackage{tikzsymbols}
\usepackage{textcomp}
\usepackage{parskip}
\begin{document}
This is Max \Strichmaxerl and this is Jane \Strichmaxerl. The met
over a  \Coffeecup of nice and tasty coffee. Later they went for
a \Candle-light dinner. Their love for each other was burning
like \Fire and he asked Jane to \textmarried{} him. 

He was a bit \Sey[][green!60!white] on his wedding day  and had to \Chair
down. His best man told him to be \Cooley and that everything is
going to be just fine with the \Winkey of an eye.

All guests were waiting for the famous words of the \Innocey: You
may now kiss the bride. 

Everybody was very \dSmiley at the reception. Bride and groom were
very excited \Laughey[1.4] thinking about their honeymoon, which they
planned not only to be staying  in \Bed sleeping in ;-)
\end{document}
2
  • I was hoping for a light bulb smilie in tikzsymbols but no luck :(
    – aiag
    Commented Jan 6, 2018 at 22:47
  • 2
    @aiag The documentation says suggestions are welcome, just ask on the github page.
    – Johannes_B
    Commented Jan 7, 2018 at 7:52
35

bclogo offers these: smileys from bclogo (from the manual)

This, however, doesn't work with pdfTeX because the package uses pstricks.

Generally, I recommend you look for some smileys that you like on the web and then put them in your document via includegraphics{}.


Addition:

marvosym also offers two smileys:

\documentclass{article}
\usepackage{marvosym}
\begin{document}
\Smiley{} \Frowny{}
\end{document}

output

4
  • Unfortunately, marvosym collides with mathabx on what seems like dozens of symbols, otherwise this looks cute. Commented Jul 17, 2016 at 22:20
  • It would be perfect if more styles are available!
    – zyy
    Commented Feb 14, 2020 at 19:28
  • 1
    Woah are these ugly ... The eyes aren't even round. Commented Aug 18, 2021 at 11:07
  • Note that bclogo works fine with pdfLaTeX currently (in 2023).
    – Marijn
    Commented Feb 16, 2023 at 11:32
25

Here are some more complicated emojis created in tikz (with the help of inkscape)-(I have used the answer for the sphaire from here and the full code is here):

First Part of longtable

the code is here:

\documentclass[10pt,a4paper]{article}
\usepackage{tikz}
\usepackage{xcolor}
\usepackage{longtable}
\usepackage{ctable}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
%TeXporter:DefineEmojiColors
\definecolor{c0a0808}{RGB}{10,8,8}
\definecolor{cff0000}{RGB}{255,0,0}
\definecolor{cff9700}{RGB}{255,151,0}
\definecolor{c1a0f00}{RGB}{26,15,0}
\definecolor{c782121}{RGB}{120,33,33}
\definecolor{cffffff}{RGB}{255,255,255}
\definecolor{cffefef}{RGB}{255,239,239}
\definecolor{c250303}{RGB}{37,3,3}
\definecolor{ce3dbdb}{RGB}{227,219,219}
\definecolor{cd45500}{RGB}{212,85,0}
\definecolor{cffd42a}{RGB}{255,212,42}
\definecolor{caa4400}{RGB}{170,68,0}
\definecolor{cff5555}{RGB}{255,85,85}
\definecolor{cffff00}{RGB}{255,255,0}
\definecolor{c5a5a5a}{RGB}{90,90,90}
\definecolor{ce9c900}{RGB}{233,201,0}
\definecolor{c2b0000}{RGB}{43,0,0}
\definecolor{c00ffff}{RGB}{0,255,255}
%TeXporter:EndDefineEmojiColors
%TeXporter:EmojiHappyFace
\def\CreateHappyFace{
\begin{tikzpicture}[scale=0.5]
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(yellow!55!white);
color(18bp)=(yellow!60!orange);
color(25bp)=(yellow!50!orange);
color(50bp)=(black)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{2cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(yellow!30!white);
color(18bp)=(yellow!60!orange);
color(25bp)=(yellow!50!orange);
color(50bp)=(orange)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{1.85cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
%Head hat
\path[yshift=138,xshift=-140,scale=0.012,yscale=-1, fill=white,opacity=0.234] (411.4196,246.6473) .. controls
(344.7661,246.6473) and (288.7870,289.5501) .. (273.0134,347.5848) .. controls
(311.3176,336.0898) and (355.6292,329.4911) .. (402.8571,329.4911) .. controls
(457.9662,329.4911) and (509.1043,338.4615) .. (551.3571,353.7411) .. controls
(537.9844,292.6125) and (480.4076,246.6473) .. (411.4196,246.6473) -- cycle;
%Left eye
\path[yshift=163,xshift=-68,scale=0.012,inner color=c782121!70!yellow,outer color=c782121!60!black,yscale=-1] (157.4105,420.0859) .. controls (145.5758,420.0859) and
(135.9730,441.1746) .. (135.9730,467.2109) .. controls (135.9730,472.5231) and
(136.3929,477.6340) .. (137.1293,482.3984) .. controls (139.9795,463.6457) and
(148.6651,449.9922) .. (158.9730,449.9922) .. controls (167.3672,449.9922) and
(174.7174,459.0360) .. (178.6918,472.5234) .. controls (178.7809,470.7772) and
(178.8168,469.0096) .. (178.8168,467.2109) .. controls (178.8168,441.1746) and
(169.2452,420.0859) .. (157.4105,420.0859) -- cycle;
%Right eye
\path[yshift=163,xshift=68,xscale=-1,scale=0.012,inner color=c782121!70!yellow,outer color=c782121!60!black,yscale=-1] (157.4105,420.0859) .. controls (145.5758,420.0859) and
(135.9730,441.1746) .. (135.9730,467.2109) .. controls (135.9730,472.5231) and
(136.3929,477.6340) .. (137.1293,482.3984) .. controls (139.9795,463.6457) and
(148.6651,449.9922) .. (158.9730,449.9922) .. controls (167.3672,449.9922) and
(174.7174,459.0360) .. (178.6918,472.5234) .. controls (178.7809,470.7772) and
(178.8168,469.0096) .. (178.8168,467.2109) .. controls (178.8168,441.1746) and
(169.2452,420.0859) .. (157.4105,420.0859) -- cycle;
%mouth
\path[yshift=203,xshift=-90,scale=0.024,yscale=-1,draw=black,inner color=c782121!70!yellow,outer color=c782121!60!black,miter limit=4.00,line width=0.820pt]
(83.2188,316.4062) .. controls (86.0968,339.8625) and (107.1942,358.0625) ..
(132.8438,358.0625) .. controls (158.3006,358.0625) and (179.3095,340.1386) ..
(182.4375,316.9375) .. controls (167.0177,319.5504) and (150.8782,320.9375) ..
(134.2812,320.9375) .. controls (116.6268,320.9375) and (99.5245,319.3512) ..
(83.2188,316.4062) -- cycle;
%teeth
\path[yshift=203,xshift=-90,scale=0.024,yscale=-1,inner color=white,outer color=ce3dbdb!80!black,draw=black,line width=0.6] (83.3970,316.4171) .. controls (84.1788,322.7888) and
(86.2941,328.7681) .. (89.4908,334.1046) .. controls (103.3990,334.8620) and
(119.1174,338.6714) .. (133.0437,338.3979) .. controls (148.5504,338.0933) and
(162.2806,333.5914) .. (177.7095,332.0108) .. controls (180.1799,327.3657) and
(181.8923,322.3146) .. (182.6157,316.9483) .. controls (167.1960,319.5612) and
(151.0564,320.9483) .. (134.4595,320.9483) .. controls (116.8050,320.9483) and
(99.7027,319.3620) .. (83.3970,316.4171) -- cycle;
%tangue
\path[yshift=203,xshift=-110,scale=0.024,yscale=-1,xscale=1.25,inner color=cff5555!80!black,outer color=c782121!60!black,opacity=0.9] (115.5196,352.1215) .. controls (111.3671,350.2285) and
(105.6834,345.8852) .. (102.8892,342.4698) -- (97.8089,336.2598) --
(102.2146,336.3376) .. controls (104.6377,336.3804) and (111.6672,337.1200) ..
(117.8358,337.9812) .. controls (124.3649,338.8926) and (133.4252,338.8866) ..
(139.5191,337.9667) .. controls (145.2764,337.0975) and (153.3516,335.9044) ..
(157.4639,335.3152) -- (164.9409,334.2440) -- (157.7177,342.3122) .. controls
(146.0180,355.3804) and (130.5538,358.9753) .. (115.5196,352.1216) -- cycle;
\end{tikzpicture}
}
%TeXporter:EndEmojiHappyFace


%TeXporter:EmojiSadFace
\def\CreateSadFace{
\begin{tikzpicture}[scale=0.5]
%Head
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(orange!85!white);
color(18bp)=(orange!90!blue);
color(25bp)=(yellow!80!blue);
color(50bp)=(black)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{2cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(yellow!30!white);
color(18bp)=(yellow!60!orange);
color(25bp)=(yellow!50!orange);
color(50bp)=(orange)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{1.85cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
%Head hat
\path[yshift=138,xshift=-140,scale=0.012,yscale=-1, fill=white,opacity=0.234] (411.4196,246.6473) .. controls
(344.7661,246.6473) and (288.7870,289.5501) .. (273.0134,347.5848) .. controls
(311.3176,336.0898) and (355.6292,329.4911) .. (402.8571,329.4911) .. controls
(457.9662,329.4911) and (509.1043,338.4615) .. (551.3571,353.7411) .. controls
(537.9844,292.6125) and (480.4076,246.6473) .. (411.4196,246.6473) -- cycle;

\draw[inner color=white ,outer color=c782121!20!white]
(-0.8,0.1) circle (0.35);
\fill[inner color=black ,outer color=black!20!white]
(-0.8,-0.05) circle (0.15);

\draw[inner color=white ,outer color=c782121!20!white]
(0.8,0.1) circle (0.35);
\fill[inner color=black ,outer color=black!20!white]
(0.8,-0.05) circle (0.14);

\path[xshift=-90,yshift=122,scale=0.06,yscale=-1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(46.74375,50.94375) .. controls (44.20450,57.00941) and (38.54312,61.64973) ..
(31.56875,63.20938) .. controls (32.36042,63.35032) and (33.17901,63.42500) ..
(34.01562,63.42500) .. controls (41.06052,63.42500) and (46.77188,58.18907) ..
(46.77188,51.73125) .. controls (46.77188,51.46641) and (46.76266,51.20420) ..
(46.74375,50.94375) -- cycle;

\path[xshift=90,yshift=122,scale=0.06,yscale=-1,xscale=-1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(46.74375,50.94375) .. controls (44.20450,57.00941) and (38.54312,61.64973) ..
(31.56875,63.20938) .. controls (32.36042,63.35032) and (33.17901,63.42500) ..
(34.01562,63.42500) .. controls (41.06052,63.42500) and (46.77188,58.18907) ..
(46.77188,51.73125) .. controls (46.77188,51.46641) and (46.76266,51.20420) ..
(46.74375,50.94375) -- cycle;

\path[xshift=55,yshift=-10,scale=0.0065,yscale=-0.8,xscale=-0.8,draw=black,inner color=cff5555!80!black,outer color=c782121!60!black]
(359.6464,67.3100) .. controls (278.1326,67.3100)
and (211.4129,129.5159) .. (205.8964,208.2475) .. controls (250.9411,190.8018)
and (304.2674,180.7163) .. (361.4277,180.7163) .. controls (417.0568,180.7163)
and (469.0358,190.2795) .. (513.3027,206.8725) .. controls (507.1094,128.7941)
and (440.6844,67.3100) .. (359.6464,67.3100) -- cycle;
\fill[xshift=55,yshift=-10,scale=0.0065,yscale=-0.8,xscale=-0.8,inner color=white,outer color=ce3dbdb!80!black,line width=0.2]
(359.6346,72.6265) .. controls (315.4332,72.6265)
and (275.6110,90.9215) .. (247.5096,120.2202) .. controls (283.3018,112.3912)
and (322.3429,108.0640) .. (363.1971,108.0640) .. controls (400.7202,108.0640)
and (436.6908,111.7186) .. (470.0408,118.3765) .. controls (442.0468,90.1452)
and (402.9104,72.6265) .. (359.6346,72.6265) -- cycle;


\fill[xshift=-63,yshift=5,scale=0.025,yscale=-1,inner color=blue!10!white,outer color=blue!80!white]
(37.38189,16.83071) -- (24.98031,58.99606) .. controls (24.04934,63.33741) and
(24.68778,67.99808) .. (26.75197,71.92913) .. controls (27.87220,74.06251) and
(29.41478,75.99641) .. (31.36401,77.41300) .. controls (33.31324,78.82959) and
(35.68099,79.70975) .. (38.09055,79.72441) .. controls (40.70723,79.74033) and
(43.28208,78.73161) .. (45.33407,77.10784) .. controls (47.38607,75.48408) and
(48.93151,73.27201) .. (49.96063,70.86614) .. controls (51.54908,67.15267) and
(51.92699,62.93268) .. (51.02362,58.99606) -- (37.38189,16.83071);

\fill[xshift=-55,yshift=-9,scale=0.017,yscale=-1,inner color=blue!5!white,outer color=blue!20!white,opacity=0.1]
(37.38189,16.83071) -- (24.98031,58.99606) .. controls (24.04934,63.33741) and
(24.68778,67.99808) .. (26.75197,71.92913) .. controls (27.87220,74.06251) and
(29.41478,75.99641) .. (31.36401,77.41300) .. controls (33.31324,78.82959) and
(35.68099,79.70975) .. (38.09055,79.72441) .. controls (40.70723,79.74033) and
(43.28208,78.73161) .. (45.33407,77.10784) .. controls (47.38607,75.48408) and
(48.93151,73.27201) .. (49.96063,70.86614) .. controls (51.54908,67.15267) and
(51.92699,62.93268) .. (51.02362,58.99606) -- (37.38189,16.83071);
\fill[xshift=-52,yshift=-17,scale=0.013,yscale=-1,fill=white,opacity=0.4]
(37.38189,16.83071) -- (24.98031,58.99606) .. controls (24.04934,63.33741) and
(24.68778,67.99808) .. (26.75197,71.92913) .. controls (27.87220,74.06251) and
(29.41478,75.99641) .. (31.36401,77.41300) .. controls (33.31324,78.82959) and
(35.68099,79.70975) .. (38.09055,79.72441) .. controls (40.70723,79.74033) and
(43.28208,78.73161) .. (45.33407,77.10784) .. controls (47.38607,75.48408) and
(48.93151,73.27201) .. (49.96063,70.86614) .. controls (51.54908,67.15267) and
(51.92699,62.93268) .. (51.02362,58.99606) -- (37.38189,16.83071);
\end{tikzpicture}
}
%TeXporter:EndEmojiSadFace


%TeXporter:EmojiAngryFace
\def\CreateAngryFace{
\begin{tikzpicture}[scale=0.5]
%Head
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(red!40!yellow);
color(9bp)=(red!65!yellow);
color(18bp)=(red!60!orange);
color(25bp)=(red!40!orange);
color(50bp)=(black)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{2cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(red!40!yellow);
color(9bp)=(red!30!yellow);
color(18bp)=(red!60!orange);
color(25bp)=(red!50!orange);
color(50bp)=(orange)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{1.85cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
%Head hat
\path[yshift=138,xshift=-140,scale=0.012,yscale=-1, fill=white,opacity=0.234] (411.4196,246.6473) .. controls
(344.7661,246.6473) and (288.7870,289.5501) .. (273.0134,347.5848) .. controls
(311.3176,336.0898) and (355.6292,329.4911) .. (402.8571,329.4911) .. controls
(457.9662,329.4911) and (509.1043,338.4615) .. (551.3571,353.7411) .. controls
(537.9844,292.6125) and (480.4076,246.6473) .. (411.4196,246.6473) -- cycle;

\path[xshift=-84,yshift=70,scale=0.05,yscale=-1,draw=black,inner color=white,outer color=white!80!red,line width=.260pt]
(48.45625,38.80000) .. controls (45.66765,38.80000) and (43.40625,41.77454) ..
(43.40625,45.44375) .. controls (43.40625,49.11296) and (45.66765,52.08750) ..
(48.45625,52.08750) .. controls (51.24485,52.08750) and (53.50312,49.11296) ..
(53.50312,45.44375) .. controls (53.50312,43.67448) and (52.97885,42.06561) ..
(52.12188,40.87500) .. controls (51.86458,40.74817) and (51.61751,40.60337) ..
(51.38125,40.44062) .. controls (50.81739,40.05221) and (50.32891,39.57631) ..
(49.87188,39.06562) .. controls (49.42207,38.89280) and (48.94849,38.80000) ..
(48.45625,38.80000) -- cycle;

\path[xshift=84,yshift=70,xscale=-1,scale=0.05,yscale=-1,draw=black,inner color=white,outer color=white!80!red,line width=.260pt]
(48.45625,38.80000) .. controls (45.66765,38.80000) and (43.40625,41.77454) ..
(43.40625,45.44375) .. controls (43.40625,49.11296) and (45.66765,52.08750) ..
(48.45625,52.08750) .. controls (51.24485,52.08750) and (53.50312,49.11296) ..
(53.50312,45.44375) .. controls (53.50312,43.67448) and (52.97885,42.06561) ..
(52.12188,40.87500) .. controls (51.86458,40.74817) and (51.61751,40.60337) ..
(51.38125,40.44062) .. controls (50.81739,40.05221) and (50.32891,39.57631) ..
(49.87188,39.06562) .. controls (49.42207,38.89280) and (48.94849,38.80000) ..
(48.45625,38.80000) -- cycle;

\path[xshift=-107,yshift=90,xscale=1,scale=0.065,yscale=-1,draw=black,inner color=red,outer color=red!80!blue,line width=.160pt]
(52.26378,46.50591)arc(-0.0018:180.018:2.0374)arc(-180.018:0.0018:2.0374) --
cycle;
\path[xshift=107,yshift=90,xscale=-1,scale=0.065,yscale=-1,draw=black,inner color=red,outer color=red!80!blue,line width=.160pt]
(52.26378,46.50591)arc(-0.0018:180.018:2.0374)arc(-180.018:0.0018:2.0374) --
cycle;

\path[xshift=-49.5,yshift=37,xscale=1,scale=0.025,yscale=-1,draw=black,fill=black]
(52.26378,46.50591)arc(-0.0018:180.018:2.0374)arc(-180.018:0.0018:2.0374) --
cycle;
\path[xshift=49.5,yshift=37,xscale=-1,scale=0.025,yscale=-1,draw=black,fill=black]
(52.26378,46.50591)arc(-0.0018:180.018:2.0374)arc(-180.018:0.0018:2.0374) --
cycle;

\path[xshift=-107,yshift=86,xscale=1,scale=0.065,yscale=-1,draw=c782121!60!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(41.38592,35.84990) .. controls (41.84318,35.28057) and (42.46384,34.84401) ..
(43.15422,34.60610) .. controls (43.84461,34.36819) and (44.60245,34.32972) ..
(45.31337,34.49649) .. controls (45.99367,34.65608) and (46.62202,34.99767) ..
(47.17522,35.42457) .. controls (47.72841,35.85148) and (48.21076,36.36295) ..
(48.66578,36.89326) .. controls (49.57581,37.95388) and (50.40612,39.11735) ..
(51.55702,39.91014) .. controls (52.36181,40.46451) and (53.30482,40.81656) ..
(54.27602,40.92520) -- (56.69291,39.91014) .. controls (55.94307,40.25443) and
(55.09158,40.37363) .. (54.27602,40.24849) .. controls (53.06451,40.06259) and
(51.97745,39.35199) .. (51.15420,38.44394) .. controls (50.26540,37.46360) and
(49.65913,36.26737) .. (48.97155,35.13676) .. controls (48.28397,34.00616) and
(47.47006,32.89605) .. (46.32041,32.24080) .. controls (45.59223,31.82577) and
(44.72278,31.61276) .. (43.90352,31.78967) .. controls (43.44795,31.88804) and
(43.02031,32.10413) .. (42.65993,32.39968) .. controls (42.29955,32.69523) and
(42.00586,33.06902) .. (41.78874,33.48143) .. controls (41.40938,34.20200) and
(41.26611,35.04444) .. (41.38592,35.84990);

\path[xshift=107,yshift=86,xscale=-1,scale=0.065,yscale=-1,draw=c782121!60!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(41.38592,35.84990) .. controls (41.84318,35.28057) and (42.46384,34.84401) ..
(43.15422,34.60610) .. controls (43.84461,34.36819) and (44.60245,34.32972) ..
(45.31337,34.49649) .. controls (45.99367,34.65608) and (46.62202,34.99767) ..
(47.17522,35.42457) .. controls (47.72841,35.85148) and (48.21076,36.36295) ..
(48.66578,36.89326) .. controls (49.57581,37.95388) and (50.40612,39.11735) ..
(51.55702,39.91014) .. controls (52.36181,40.46451) and (53.30482,40.81656) ..
(54.27602,40.92520) -- (56.69291,39.91014) .. controls (55.94307,40.25443) and
(55.09158,40.37363) .. (54.27602,40.24849) .. controls (53.06451,40.06259) and
(51.97745,39.35199) .. (51.15420,38.44394) .. controls (50.26540,37.46360) and
(49.65913,36.26737) .. (48.97155,35.13676) .. controls (48.28397,34.00616) and
(47.47006,32.89605) .. (46.32041,32.24080) .. controls (45.59223,31.82577) and
(44.72278,31.61276) .. (43.90352,31.78967) .. controls (43.44795,31.88804) and
(43.02031,32.10413) .. (42.65993,32.39968) .. controls (42.29955,32.69523) and
(42.00586,33.06902) .. (41.78874,33.48143) .. controls (41.40938,34.20200) and
(41.26611,35.04444) .. (41.38592,35.84990);

\path[xshift=54,yshift=30,xscale=-1,scale=0.05,yscale=-1,draw=black,inner color=c782121!70!yellow,outer color=c782121!60!black,miter limit=4.00,line width=0.420pt]
(47.77500,44.38293) .. controls (47.22576,44.30335) and (45.43196,43.81962) ..
(43.78878,43.30799) .. controls (40.86586,42.39788) and (40.75324,42.37761) ..
(38.58661,42.37181) .. controls (36.47900,42.36616) and (36.25654,42.40161) ..
(33.98031,43.10578) .. controls (30.76077,44.10178) and (30.04321,44.25052) ..
(28.48819,44.24428) .. controls (23.81734,44.22552) and (20.23712,40.53985) ..
(20.55630,36.07879) .. controls (20.77798,32.98058) and (23.12842,30.50658) ..
(26.07494,30.27006) .. controls (28.06283,30.11049) and (29.81184,30.71618) ..
(33.05100,32.68591) .. controls (37.76370,35.55169) and (39.70380,35.69705) ..
(43.37008,33.45907) .. controls (44.10089,33.01296) and (45.32514,32.26468) ..
(46.09065,31.79621) .. controls (48.23023,30.48687) and (49.20593,30.16461) ..
(51.07677,30.14941) .. controls (52.48024,30.13800) and (52.77966,30.19360) ..
(53.57615,30.61354) .. controls (56.15678,31.97416) and (57.48951,35.16505) ..
(56.76488,38.24815) .. controls (56.60938,38.90974) and (56.35235,39.70698) ..
(56.19370,40.01981) .. controls (54.63599,43.09123) and (51.18910,44.87764) ..
(47.77500,44.38293) -- cycle;
\path[xshift=54,yshift=30,xscale=-1,scale=0.05,yscale=-1,inner color=white,outer color=ce3dbdb!80!black,draw=black,line width=0.2]
(47.95217,44.20577) .. controls (47.40292,44.12618) and (45.60913,43.64245) ..
(43.96595,43.13082) .. controls (41.04302,42.22071) and (40.93040,42.20045) ..
(38.76378,42.19464) .. controls (36.65616,42.18899) and (36.43370,42.22444) ..
(34.15748,42.92861) .. controls (30.93794,43.92461) and (30.22037,44.07336) ..
(28.66535,44.06712) .. controls (27.09746,44.06082) and (25.48932,43.60752) ..
(24.28084,42.83120) .. controls (23.41263,42.27348) and (21.98529,40.92008) ..
(22.12175,40.78395) .. controls (22.25090,40.65510) and (27.53138,39.81848) ..
(30.25984,39.49458) .. controls (33.97559,39.05347) and (43.35251,39.04662) ..
(46.20472,39.48292) .. controls (50.08684,40.07678) and (55.14364,41.40963) ..
(55.01207,41.80433) .. controls (54.89954,42.14193) and (52.83323,43.45914) ..
(51.84570,43.82280) .. controls (50.67030,44.25564) and (49.25624,44.39473) ..
(47.95217,44.20577) -- cycle;
\path[xshift=54,yshift=30,xscale=-1,scale=0.05,yscale=-1,inner color=white,outer color=ce3dbdb!80!black,draw=black,line width=0.2]
(35.82316,38.72249) .. controls (31.64570,38.45251) and (27.93719,37.82766) ..
(23.88189,36.71052) .. controls (20.47566,35.77218) and (20.65951,35.88385) ..
(20.94721,34.92788) .. controls (21.71718,32.36946) and (23.76900,30.64655) ..
(26.28650,30.44447) .. controls (28.23668,30.28792) and (30.00870,30.90533) ..
(33.22817,32.86307) .. controls (37.94087,35.72885) and (39.88097,35.87421) ..
(43.54724,33.63623) .. controls (44.27805,33.19013) and (45.50231,32.44185) ..
(46.26782,31.97338) .. controls (48.44141,30.64322) and (49.38918,30.32938) ..
(51.25394,30.32230) .. controls (52.64813,30.31701) and (52.96210,30.37602) ..
(53.75331,30.79203) .. controls (54.93329,31.41243) and (56.19106,32.82750) ..
(56.64796,34.04868) .. controls (56.84808,34.58355) and (57.01181,35.09185) ..
(57.01181,35.17825) .. controls (57.01181,35.26465) and (56.19464,35.65262) ..
(55.19587,36.04042) .. controls (50.32228,37.93271) and (46.71398,38.66641) ..
(41.68701,38.78727) .. controls (39.73819,38.83412) and (37.09946,38.80497) ..
(35.82316,38.72249) -- (35.82316,38.72249) -- cycle;

\end{tikzpicture}
}
%TeXporter:EndEmojiAngryFace


%TeXporter:EmojiStressedFace
\def\CreateStressedFace{
\begin{tikzpicture}[scale=0.5]
%Head
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(yellow!55!white);
color(18bp)=(yellow!60!orange);
color(25bp)=(yellow!50!orange);
color(50bp)=(black)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{2cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
\pgfdeclareradialshading{ballshading}{\pgfpoint{-10bp}{10bp}}
{color(0bp)=(yellow!40!white);
color(9bp)=(yellow!30!white);
color(18bp)=(yellow!60!orange);
color(25bp)=(yellow!50!orange);
color(50bp)=(orange)}
\pgfpathcircle{\pgfpoint{0cm}{0cm}}{1.85cm}
\pgfshadepath{ballshading}{20}
\pgfusepath{}
%Head hat
\path[yshift=138,xshift=-140,scale=0.012,yscale=-1, fill=white,opacity=0.234] (411.4196,246.6473) .. controls
(344.7661,246.6473) and (288.7870,289.5501) .. (273.0134,347.5848) .. controls
(311.3176,336.0898) and (355.6292,329.4911) .. (402.8571,329.4911) .. controls
(457.9662,329.4911) and (509.1043,338.4615) .. (551.3571,353.7411) .. controls
(537.9844,292.6125) and (480.4076,246.6473) .. (411.4196,246.6473) -- cycle;

\path[xshift=-165,yshift=190,scale=0.013,yscale=-1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(412.2952,416.1696) .. controls (402.4957,434.4069) and (372.7147,447.8466) ..
(337.0714,448.6326) .. controls (345.7428,453.7104) and (357.9211,456.8754) ..
(371.4088,456.8754) .. controls (397.7352,456.8754) and (419.0639,444.8410) ..
(419.0639,429.9941) .. controls (419.0639,424.9402) and (416.5958,420.2082) ..
(412.2952,416.1696) -- cycle;

\path[xshift=165,yshift=190,scale=0.013,yscale=-1,xscale=-1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(412.2952,416.1696) .. controls (402.4957,434.4069) and (372.7147,447.8466) ..
(337.0714,448.6326) .. controls (345.7428,453.7104) and (357.9211,456.8754) ..
(371.4088,456.8754) .. controls (397.7352,456.8754) and (419.0639,444.8410) ..
(419.0639,429.9941) .. controls (419.0639,424.9402) and (416.5958,420.2082) ..
(412.2952,416.1696) -- cycle;

\path[xshift=-51,yshift=28,scale=0.003,yscale=-1,xscale=1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(240.9449,201.9685) .. controls (277.7444,163.7790) and (331.4846,142.5483) ..
(384.4488,145.2756) .. controls (416.1699,146.9090) and (447.4278,156.8390) ..
(474.2758,173.8119) .. controls (501.1239,190.7848) and (523.5012,214.7621) ..
(538.5827,242.7165) .. controls (491.0752,298.2483) and (428.6499,340.8953) ..
(359.6457,364.9606) .. controls (319.2364,379.0534) and (276.6393,386.8529) ..
(233.8583,387.9921) .. controls (271.0447,373.5979) and (305.8888,353.1720) ..
(336.6142,327.7559) .. controls (350.5885,316.1962) and (363.9856,303.2534) ..
(372.0472,287.0079) .. controls (380.5313,269.9111) and (382.4928,249.6748) ..
(377.4504,231.2669) .. controls (372.4079,212.8589) and (360.4075,196.4472) ..
(344.3949,186.0607) .. controls (328.3824,175.6743) and (308.5040,171.4077) ..
(289.6397,174.3085) .. controls (270.7753,177.2094) and (253.0971,187.2510) ..
(240.9449,201.9685);

\path[xshift=51,yshift=28,scale=0.003,yscale=-1,xscale=-1,draw=brown!70!black,inner color=c782121!70!yellow,outer color=c782121!60!black]
(240.9449,201.9685) .. controls (277.7444,163.7790) and (331.4846,142.5483) ..
(384.4488,145.2756) .. controls (416.1699,146.9090) and (447.4278,156.8390) ..
(474.2758,173.8119) .. controls (501.1239,190.7848) and (523.5012,214.7621) ..
(538.5827,242.7165) .. controls (491.0752,298.2483) and (428.6499,340.8953) ..
(359.6457,364.9606) .. controls (319.2364,379.0534) and (276.6393,386.8529) ..
(233.8583,387.9921) .. controls (271.0447,373.5979) and (305.8888,353.1720) ..
(336.6142,327.7559) .. controls (350.5885,316.1962) and (363.9856,303.2534) ..
(372.0472,287.0079) .. controls (380.5313,269.9111) and (382.4928,249.6748) ..
(377.4504,231.2669) .. controls (372.4079,212.8589) and (360.4075,196.4472) ..
(344.3949,186.0607) .. controls (328.3824,175.6743) and (308.5040,171.4077) ..
(289.6397,174.3085) .. controls (270.7753,177.2094) and (253.0971,187.2510) ..
(240.9449,201.9685);

\path[xshift=66,yshift=1,scale=0.0065,yscale=-1,xscale=-1,draw=black,inner color=cff5555!80!black,outer color=c782121!60!black]
(359.6464,67.3100) .. controls (278.1326,67.3100)
and (211.4129,129.5159) .. (205.8964,208.2475) .. controls (250.9411,190.8018)
and (304.2674,180.7163) .. (361.4277,180.7163) .. controls (417.0568,180.7163)
and (469.0358,190.2795) .. (513.3027,206.8725) .. controls (507.1094,128.7941)
and (440.6844,67.3100) .. (359.6464,67.3100) -- cycle;

\fill[xshift=66,yshift=1,scale=0.0065,yscale=-1,xscale=-1,inner color=white,outer color=ce3dbdb!80!black,line width=0.2]
(359.6346,72.6265) .. controls (315.4332,72.6265)
and (275.6110,90.9215) .. (247.5096,120.2202) .. controls (283.3018,112.3912)
and (322.3429,108.0640) .. (363.1971,108.0640) .. controls (400.7202,108.0640)
and (436.6908,111.7186) .. (470.0408,118.3765) .. controls (442.0468,90.1452)
and (402.9104,72.6265) .. (359.6346,72.6265) -- cycle;
\end{tikzpicture}
}
%TeXporter:EndEmojiStressedFace


\begin{document}
\begin{center}
\begin{longtable}{|c|C{3cm}|}
\caption{Available Emojis}\\
\hline
\textbf{Name} & \textbf{Emoji} \\
\hline
\endfirsthead
\multicolumn{2}{c}%
{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{Name} & \textbf{Emoji} \\
\hline
\endhead
\hline \multicolumn{2}{r}{\textit{Continued on next page}} \\
\endfoot
\hline
\endlastfoot
HappyFace & \CreateHappyFace\\\hline
SadFace & \CreateSadFace\\\hline
AngryFace & \CreateAngryFace\\\hline
StressedFace & \CreateStressedFace\\
\end{longtable}
\end{center}
\end{document}
5
  • This looks very nice! - - So you took the sphere code. How did you get the emojis' codes? - - I have a related problem here where the ball is heart: tex.stackexchange.com/q/345303/13173 Can your method applied there? Do you need any other pieces of information there? Commented Jun 18, 2017 at 7:19
  • 1
    The emojis codes created with an extension of inkscape that gives tikz code... But I had to create every element (eye, mouth, teeth) separate and then to add it to my main code (rescale it, color it etc) [the extension of inkscape is not perfect yet... but gives the shape code]... I have seen the problem you say... but I think it needs 3D tikz and I have not the knowledge needed yet... Sorry...
    – koleygr
    Commented Jun 18, 2017 at 7:30
  • @Koleygr it would be great if you could make this as a package ;) Commented Dec 17, 2019 at 5:55
  • 1
    @Raaja ... Actually I am working in 2 3 packages I am going to release in January... (this -but much improved- is one of them)Thanks!
    – koleygr
    Commented Dec 17, 2019 at 8:03
  • @Koleygr Great nice to know and looking forward to know. Commented Dec 17, 2019 at 8:24
18

A dingbats style font? How about James Stirling's smiley faces font:

  1. Sampler selection gratis for noncommercial use
  2. Standard rights commercial, full range for $5

alt text

1
11

A very good solution is provided by the emoji package (https://www.texlive.info/CTAN/macros/luatex/latex/emoji/emoji-doc.pdf). It should be included with the 2020 release of TeX Live.

In case of an older version it can be installed with tlmgr install emoji (if you get an error regarding checksums, add --verify-repo=none, also you might need to add sudo and specify the path to tlmgr, in my case the full command would be sudo /usr/local/texlive/2020/bin/x86_64-linux/tlmgr install emoji --verify-repo=none)

Usage:

\documentclass[a4paper,12pt]{article}
\usepackage{emoji}

\begin{document}
\emoji{check-mark-button} Task solved!
\end{document}

The list of available emoji names can be found in the documentation linked above (https://www.texlive.info/CTAN/macros/luatex/latex/emoji/emoji-doc.pdf).

2
  • 1
    Wonderful package! Strongly recommend this!!
    – sotmot
    Commented Aug 24, 2023 at 5:59
  • It seems that it does not work with Xelatex Commented Aug 27, 2023 at 20:23
9

I slightly modified emoticons from TeXample.net (a work of Raoul Kessels; http://www.texample.net/tikz/examples/emoticons/) to a form I can use directly:

  • I added black circle (face) to all emoticons.
  • Pupils in look up and look down are slightly bigger.
  • I scaled the emoticons down to 50 %.
  • I created a simple sty file with TeX commands.
  • I manually modified and moved a tail in devilish.

This is the RKsmileys.sty file:

% !TeX root = striz-denik.tex

\RequirePackage{tikz}
\usetikzlibrary{positioning}

\tikzset{face/.style={shape=circle,minimum size=4ex,shading=radial,outer sep=0pt, inner color=white!50!yellow,outer color= yellow!70!orange}}

\newcommand{\emoticon}[2][]{%
\scalebox{.5}{\begin{tikzpicture}
\node[face,#1,draw,thick] (emoticon) {};
%% The eyes are fixed.
\draw[fill=white] (-1ex,0ex) ..controls (-0.5ex,0.2ex)and(0.5ex,0.2ex)..(1ex,0.0ex) ..controls ( 1.5ex,1.5ex)and( 0.2ex,1.7ex)..(0ex,0.4ex) ..controls (-0.2ex,1.7ex)and(-1.5ex,1.5ex)..(-1ex,0ex)--cycle;
#2%
\end{tikzpicture}}%
}

\newcommand{\pupils}{
%% standard pupils
\fill[shift={(0.5ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.5ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);}

%\def\zaklad#1{\scalebox{.5}{\begin{tikzpicture}#1\end{tikzpicture}}}

\def\RKsmallsmile{%
\emoticon{%
\pupils
%% mouth
\draw[thick] (-0.5ex,-1ex)..controls (-0.25ex,-1.25ex)and(0.25ex,-1.25ex)..(0.5ex,-1ex);
}%\emoticon
}

\def\RKsmile{%
\emoticon{%
\pupils
\draw[thick] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKbigsmile{%
\emoticon{%
\pupils
%% mouth
\draw[thick] (-1.5ex,-0.5ex)..controls (-0.7ex,-1.7ex)and(0.7ex,-1.7ex)..(1.5ex,-0.5ex);
}%\emoticon
}

\def\RKsad{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-0.5ex)and(0.5ex,-0.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKneutral{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-0.5ex,-1ex)--(0.5ex,-1ex);
}%\emoticon
}

\def\RKconfused{%
\emoticon{%
\pupils
%% mouth
\draw[thick] (-1ex,-0.75ex)--(1ex,-1.25ex);
}%\emoticon
}

\def\RKsexy{%
\emoticon{%
\pupils
%% mouth
\draw[very thick,red,line cap=round] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
%% eyelashes
\draw (0.60ex,1.20ex)--(0.60ex,1.60ex)
  (0.85ex,1.25ex)--(0.95ex,1.45ex)
  (1.00ex,1.00ex)--(1.20ex,1.10ex)
  (0.35ex,1.15ex)--(0.25ex,1.35ex)
  (-0.60ex,1.20ex)--(-0.60ex,1.60ex)
  (-0.85ex,1.25ex)--(-0.95ex,1.45ex)
  (-1.00ex,1.00ex)--(-1.20ex,1.10ex)
  (-0.35ex,1.15ex)--(-0.25ex,1.35ex);
}%\emoticon
}

\def\RKangry{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.5ex,0.5ex)},rotate=90] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-0.5ex)and(0.5ex,-0.5ex)..(1ex,-1ex);
%% eyebrows
\draw[thick] (0.2ex,1.15ex)--(0.5ex,1.6ex)(-0.2ex,1.15ex)--(-0.5ex,1.6ex);
}%\emoticon
}

\def\RKlookup{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,1.05ex)},rotate= 80] (0,0) ellipse (0.2ex and 0.2ex);
\fill[shift={(-0.5ex,1.05ex)},rotate=100] (0,0) ellipse (0.2ex and 0.2ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKlookdown{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,0.3ex)},rotate= 80] (0,0) ellipse (0.2ex and 0.2ex);
\fill[shift={(-0.5ex,0.3ex)},rotate=100] (0,0) ellipse (0.2ex and 0.2ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKlookleft{%
\emoticon{%
%% pupils
\fill[shift={( 0.25ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.95ex,0.5ex)},rotate=100] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKlookright{%
\emoticon{%
%% pupils
\fill[shift={( 0.95ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.25ex,0.5ex)},rotate=80] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-1.0ex,-1ex)..controls(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKblush{%
\emoticon{%
\pupils
%% mouth
\draw[thick] (-0.5ex,-1ex)..controls (-0.25ex,-1.25ex)and(0.25ex,-1.25ex)..(0.5ex,-1ex);
%% blush
\shade[shading=radial,inner color=white!50!red,outer color= yellow!80!orange] ( 1ex,-0.5ex) circle (0.4ex);
\shade[shading=radial,inner color=white!50!red,outer color= yellow!80!orange] (-1ex,-0.5ex) circle (0.4ex);
}%\emoticon
}

\def\RKalmostcrying{%
\emoticon{%
%% pupils
\fill[shift={( 0.5ex,0.5ex)},rotate=105] (0,0) ellipse (0.3ex and 0.15ex);
\fill[shift={(-0.5ex,0.5ex)},rotate= 75] (0,0) ellipse (0.3ex and 0.15ex);
%% mouth
\draw[thick] (-1ex,-1ex)..controls
(-0.5ex,-0.8ex)and(0.5ex,-0.8ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKmartian{%
\emoticon[inner color=white!50!green,outer color=green!70!red]{%
\pupils
%% mouth
\draw[thick] (-1ex,-1ex)..controls
(-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
}%\emoticon
}

\def\RKdevilish{%
\raisebox{-0.6ex}[0ex][0ex]{%
\emoticon[inner color=white!50!red,outer color= red!70!red!90!black]{%
\pupils
%% mouth
\draw[thick,line cap=round] (-1ex,-1ex)..controls (-0.5ex,-1.5ex)and(0.5ex,-1.5ex)..(1ex,-1ex);
%% tail
\draw[line width=0.45ex,-stealth,black] (emoticon.330)--++(330:0.01ex)..controls (3ex,-3ex)and(3.5ex,1ex)..(4.25ex,-3ex);
\draw[line width=0.27ex,-stealth,red!90!black] (emoticon.330)--++(330:0.01ex)..controls (3ex,-3ex)and(3.5ex,1ex)..(4.22ex,-2.8ex);
%% horns
\draw[fill] (emoticon.80)..controls ( 0.6ex,2.4ex)..( 1ex,2.5ex)..controls ( 0.8ex,2.3ex)..(emoticon.70);
\draw[fill] (emoticon.100)..controls (-0.6ex,2.4ex)..(-1ex,2.5ex)..controls (-0.8ex,2.3ex)..(emoticon.110); 
\draw[thick] (0,0) circle (2ex);
}%\emoticon
}%\raisebox
}

And this is a snippet with all emoticons (RKsmileys.tex):

%! lualatex
% http://www.texample.net/tikz/examples/emoticons/
\documentclass[a4paper]{article}
\usepackage{RKsmileys}
\pagestyle{empty}
\begin{document}
\RKsmallsmile\ \RKsmile\ \RKbigsmile\ 
\RKsad\ \RKneutral\ \RKconfused\ 
\RKsexy\ \RKangry\par 
\RKlookup\ \RKlookdown\ \RKlookleft\ \RKlookright\ 
\RKblush\ \RKalmostcrying\ 
\RKmartian\ \RKdevilish
\end{document}

An example

0
5

There's now a coloremoji package on CTAN. GitHub source: https://github.com/alecjacobson/coloremoji.sty

1
  • It's been unmaintained for many years now. Isn't working even after applying the pending pull requests.
    – shivams
    Commented Sep 8, 2022 at 3:28
3

There are also the utfsym package that provide to create smileys in LaTeX. I do, here, an example.

\documentclass[12pt]{article}
\usepackage{utfsym}
\usepackage{xcolor}
\begin{document}
\usym{1F601}, \usym{1F613}, \usym{1F607},

\textcolor{red}{\usym{1F60C}}, \textcolor{green}{\usym{1F613}}, \textcolor{orange}{\usym{1F612}}
\end{document}

enter image description here

0

Caramdir's solution didn't work for me, so i used a shotgun:

With this python script:

#!/usr/bin/env python3

import json
import argparse

parser = argparse.ArgumentParser(
                    prog='replace_emojis',
                    description='replace emojis by their names',
                    )

parser.add_argument('filename')
args = parser.parse_args()

# Load the JSON data
# get from here: https://github.com/github/gemoji/blob/master/db/emoji.json

with open('emoji.json', 'r', encoding='utf-8') as f:
    emoji_data = json.load(f)

emoji_to_alias = {item['emoji']: item['description'].replace(" ", "-") for item in emoji_data}

def replace_emojis(text):
    for emoji, alias in emoji_to_alias.items():
        text = text.replace(emoji, "\emoji{"+alias+"}")
    return text

with open(args.filename, 'r', encoding='utf-8') as f:
    text = f.read()

new_text = replace_emojis(text)

with open(f"out_{args.filename}", 'w', encoding='utf-8') as f:
    f.write(new_text)


notice=r"""
If you haven't already, add the following lines to your tex file:

First line:

%!Tex program = luatex

\usepackage{emoji}
\usepackage{fontspec}
\setemojifont{NotoColorEmoji} % or some other font which has emojis that you installed in your pc

"""

print(notice)

And the package https://www.ctan.org/pkg/emoji

You must log in to answer this question.

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