マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

2025年版 TeX Live で使えるゆきだるま☃のまとめ

これは「TeX & LaTeX Advent Caleandar 2025」の8日めの記事です
(7日め→ Takashi Miyamoto さん/9日め→ Yarakashi Kikohshi さん)

2016年の「TeX & LaTeX Advent Calendar」において「TeX Live で使えるゆきだるま☃のまとめ」という記事がありました。

この記事では「TeX Liveの収録物の範囲でゆきだるま☃を出力する方法を網羅する」こと1を目的としています。

しかし皆さんもご存じの通り、TeX Liveは年々膨張を続けています。9年前と比べると今のTeX Liveはゆきだるま☃を出力する手段がもっともっと増えていることでしょう。

というわけで本記事では、現時点(2025-12-08)での「TeX Live で使えるゆきだるま☃」を改めて纏めてみました。

本記事中で例示したLaTeX文書については、その文書のタイプセットで前提となるワークフロー種別を先頭行にコメントで記載しました。なお、この前提条件は「パッケージの動作の前提条件」とは異なる場合があります。

OpenTypeフォント(フツー)でゆきだるま☃

Unicode TeXエンジン(XeTeX・LuaLaTeX)の普及に伴い、(La)TeXの世界でもOpenTypeフォント2が文字出力の中心的役割になりつつあります。それ以前からpTeXエンジンにおいては和文OpenTypeフォントが使われてきました。そこでまず「ゆきだるま☃のグリフ(字形)を含むOpenTypeフォント」から始めましょう。ただしカラー絵文字フォントは少し特殊なので別扱いにして、まずフツーのテキスト(モノクロ)フォントを扱います。

※ 同じファミリのウェイト・スラント違いの書体は、「そこに別のグリフがある」という事例3がなかったので省略した。
Unicodeのゆきだるま☃以外の符号位置にゆきだるま☃のグリフがある事例は(少しだけ調べたが)見つかっていない。
赤色のグリフは「全角幅である」ことを示している。

以降ではLaTeXOpenTypeフォントを利用してゆきだるま☃を出力する方法を紹介します。

Unicode LaTeXでfontspecする

LaTeXOpenTypeフォントを扱う場合は、やはりUnicode LaTeX(LuaLaTeX・XeLaTeX)を利用するのがカンタンです。fontspecパッケージの機能を用いて直接フォントを指定できます。

%% LuaLaTeX/XeLaTeX
\documentclass[a4paper]{article}
\usepackage{fontspec}% フォントを指定したい
% フォントファミリ名を指定する
\newfontfamily{\fNEmoji}{Noto Emoji}
% フォントファイル名での指定も可能
%\newfontfamily{\fNEmoji}{NotoEmoji-Regular.ttf}
% ↓"Noto Emoji"での出力を指定する命令
\newcommand*{\cNC}[1]{{\fNEmoji#1}}
\begin{document}
Today I'd like \cNC{} rather than \cNC{}.
\end{document}

上掲の表の中で「IBM Plex Math」と「STIX Two Math」は数式用フォントです。数式用フォントもOpenTypeフォントの一種なので普通にfontspecで扱えますが、せっかくの数式フォントなのだから、unicode-mathパッケージでゆきだるま☃を数式として出力する方が素敵かもしれません(えっ😲)

%% LuaLaTeX/XeLaTeX
\documentclass[a4paper]{article}
\usepackage{fontspec,unicode-math}% Unicodeで数式したい
% 数式出力用フォントを"IBM Plex Math"に変更
\setmathfont{IBM Plex Math}
\begin{document}
% 素敵な数式😊
\[ ☃ \lor= ⛇ \]
\end{document}

なお「キーボードに☃キーがない」などの不幸😥な理由でゆきだるま☃文字の入力が難しいという場合は、ASCII文字での入力方法を利用できます。

  • \symbol{"‹符号値16進数›}でその符号値のUnicode文字を版面に出力できます。例えば\symbol{"26C4}で「⛄️」(U+26C4)を出力します。この場合A~Fは大文字で書きます。
  • ^^^^‹符号値16進数4桁›または^^^^^^‹符号値16進数6桁›を書くとその符号値のUnicode文字を書いたのと同等の扱い4になります。例えば^^^^26c4は「⛄️」と同等です。この場合a~fは小文字で書きます。
%% LuaLaTeX/XeLaTeX
\documentclass[a4paper]{article}
\usepackage{fontspec}
\newfontfamily{\fNEmoji}{Noto Emoji}
\newcommand*{\cNC}[1]{{\fNEmoji#1}}
\begin{document}
% "\symbol"を使う例
\cNC{\symbol{"2603}} or \cNC{\symbol{"26C4}}?

% "^表記"を使う例
\cNC{^^^^2603} and \cNC{^^^^26c4}!
\end{document}

LuaTeX-jaで和文ゆきだるま☃する

LuaLaTeXで日本語するためにLuaTeX-jaパッケージを用いる場合は、ゆきだるま☃の文字は和文扱いになります。従って、ゆきだるま☃の書体を指定する際は和文のフォントを(luatexja-fontspecパッケージで)指定する必要があります。

なお、LuaTeX-jaの既定の和文フォントは「Harano Aji Mincho/Gothic」なので、特にフォントを指定しなくてもゆきだるま☃の文字が出力されます。

%% LuaLaTeX
\documentclass[a4paper]{ltjsarticle}% 和文文書です
\usepackage{luatexja-fontspec}% 和文フォントを指定したい
% "\newfontfamily"でなく"\newjfontfamily"を使う
\newjfontfamily{\jIXMin}{IPAexMincho}
\begin{document}
% これは"Harano Aji Mincho"の☃になる
☃はトッテモ素敵。

% これは"IPAexMincho"の☃になる
{\jIXMin}もなにげに素敵。
\end{document}

なお、LuaTeX-jaの既定設定では和文文字は全角幅をもつ想定になっていて、全角幅でないグリフを使うと不自然な組み方になります。そのため、ゆきだるま☃の文字についても全角幅のグリフ(前景の表で赤字のもの)を選ぶべきでしょう。

(u)pLaTeX和文ゆきだるま☃する

upLaTeXでもゆきだるま☃の文字は和文扱いになるので、ゆきだるま☃の書体の指定は和文のフォントで行うことになります。TeX Liveの既定の和文フォントは「Harano Aji Mincho/Gothic」です。

ちなみに、upLaTeXでもゆきだるま☃文字の入力の代わりに\symbol命令が使えます5

%% upLaTeX+dvipdfmx
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,a4paper]{jsarticle}
\begin{document}
% 既定の和文フォントで出力される
{\TeX}と☃は一切関係ありません。

% \symbol 命令を使う例
{up\TeX}\symbol{"2603}も一切関係ありません。
\end{document}

既定ではゆきだるま☃は「Harano Aji Mincho」で出力されます。

kanji-config-updmapやDVIドライバのマップ指定(dvipdfmxの-fオプション等)で和文をIPAex系に変更した場合はゆきだるま⛄も「IPAexMincho」で出力されます。

(u)pLaTeXでは「文書中で使う和文書体を自由に増やす」ことが難しい6ので、「ゆきだるま☃の書体だけ変更したい」という場合は、「deluxe指定のjapanese-otfパッケージで和文を7書体に増やした上で、その1つ(例えば丸ゴシック体)を『ゆきだるま☃専用書体』に充てる」みたいな手法がよく採られます。pxchfonパッケージを併用するのが手軽でしょう。

%% upLaTeX+dvipdfmx
\RequirePackage{plautopatch}
\documentclass[uplatex,dvipdfmx,a4paper,jis2004]{jsarticle}
\usepackage[deluxe]{otf}% いっぱい和文書体を使いたい
\usepackage{pxchfon}% 和文書体を文書中で指定したい
% 丸ゴシックを"ゆきだるま☃専用書体"として扱う
\setmarugothicfont{LXGWYozai-Regular.ttf}% LXGW Yozai
\begin{document}
% これは既定(Harano Aji Mincho)の☃になる
☃はトッテモ素敵。

% これは"LXGW Yozai"の☃になる
{\mgfamily}はやっぱり素敵。
\end{document}

なお、LuaTeX-jaと同様に、(既定設定では)使用可能なグリフは全角幅のものに限られます。さらに(u)pLaTeXの場合、誤って全角幅でないグリフを混入させると全体の出力が異常になる可能性があるので注意が必要です。

和文Unicodeで扱えるupLaTeXと異なり、pLaTeXで扱える和文JIS X 0208の範囲に限られる7ため、ゆきだるま☃の文字を直接扱えません。ゆきだるま☃も扱えないような大昔のざんねんなエンジンはさっさと捨てるべきですが、pLaTeXでゆきだるま☃を出力したい場合は、japanese-otfの文字入力命令を利用します。

  • \UTF{‹符号値16進数›}でその符号値のUnicode文字を(和文として)版面に出力できます。
  • \CID{8218}\ajSnowman\UTF{2603}と同じ文字、つまり「☃️」(U+2603)を出力します。
%% pLaTeX+dvipdfmx
\RequirePackage{plautopatch}
\documentclass[platex,dvipdfmx,a4paper,jis2004]{jsarticle}
\usepackage[deluxe]{otf}
\usepackage{pxchfon}
% 先と同じく丸ゴシックを"ゆきだるま☃専用書体"として扱う
\setmarugothicfont{LXGWXiaolai-Regular.ttf}% LXGW Xiaolai
\begin{document}
% これは既定(Harano Aji Mincho)の☃になる
{\ajSnowman}とか\UTF{2603}とか\CID{8218}とかは素敵。

% これは"LXGW Xiaolai"の☃になる
{\mgfamily\ajSnowman}は例によって素敵。
\end{document}

OpenTypeフォント(カラー絵文字)でゆきだるま☃

続いてカラー絵文字のOpenTypeフォントを取り上げます。

現状ではカラー絵文字フォントを扱えるTeXエンジンはLuaTeX系に限られます。fontspecパッケージのフォント定義命令(\setmainfontnewfontfamily等)でカラー絵文字フォントを指定する場合にはオプションにRenderer=Harfbuzzを与える必要がありますが、それ以外は普通のフォントと全く同様に扱えます。

%% LuaLaTeX
\documentclass[a4paper]{article}
\usepackage{fontspec}
% カラー絵文字フォントを指定する("Renderer"指定が必要)
\newfontfamily{\fNCE}{Noto Color Emoji}[Renderer=Harfbuzz]
\newfontfamily{\fTM}{Twemoji Mozilla}[Renderer=Harfbuzz]
\begin{document}
% "Noto Color Emoji"のゆきだるま☃
{\fNCE} and {\fNCE} are nice.

% "Twemoji Mozilla"のゆきだるま☃
{\fTM} and {\fTM} are nice too.
\end{document}

フォントを利用したパッケージでゆきだるま☃

ゆきだるま☃のグリフをもつフォントはOpenTypeフォント以外でもありますが、LaTeXの世界ではそういうフォントは(Unicodeでない独自のエンコーディングをもつため)「そのフォントを使うためのLaTeXパッケージ」と一体で提供されるのが普通8です。

ここではゆきだるま☃を出力できるフォントパッケージを「ゆきだるま☃を出力する命令を実際に使った例」とともに紹介します。

本節で紹介するパッケージはどのワークフローでも使用可能です。

fontawesome7パッケージ

Font Awesomeの7版のフォントを使うためのパッケージです。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{fontawesome7}
\begin{document}
% "\faSnowman"または"\faIcon{snowman}"でゆきだるま☃を出力
\begin{itemize}
\item[\faSnowman] Nice
\item[\faIcon{snowman}] Essential
\end{itemize}
\end{document}

fontawesome6パッケージ

Font Awesomeの6版のフォントを使うためのパッケージです。7版とはゆきだるま☃の字形が異なります。

なお、6版より前のFont Awesome9にはゆきだるま☃は含まれていないようです。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{fontawesome6}
\begin{document}
% "\faSnowman"または"\faIcon{snowman}"でゆきだるま☃を出力
\begin{itemize}
\item[\faSnowman] Nice
\item[\faIcon{snowman}] Essential
\end{itemize}
\end{document}

ipaex-type1パッケージ

IPAexフォントをCJKパッケージで利用可能にするためにType1のサブフォント群に変換したものです。

元のIPAexフォントのゆきだるま☃はU+2603しか含まれないのですが、こちらにはU+2603・U+26C4・U+26C7が全て揃っているのがチョット素敵なポイントです。

基本的にCJKパッケージと併用する(ipxm/ipxgファミリとして指定する)前提ですが、単体で使う用法もあります。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{ipaex-type1}
\begin{document}
% \ipxmsymbol{符号値} でUnicode文字を出力する
Today, the feeling is
\ipxmsymbol{"2603}\ipxmsymbol{"26C4}\ipxmsymbol{"26C7}.

% ゆきだるま☃専用の命令もある
Tomorrow, the feeling will be
\ipxmSnowman\ipxmvarSnowman\ipxmBlackSnowman.
\end{document}

CJKパッケージと併用する例も載せておきます。

CJKパッケージは通常はpdfLaTeXまたは欧文LaTeXで用いられます。Unicode LaTeXでは使えません。
%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{CJKutf8}
\begin{document}
\textit{Example:}
% "ipxm"ファミリが"IPAexMincho"に相当する
\begin{CJK}{UTF8}{ipxm}
気分は☃⛄⛇。
\end{CJK}
\end{document}

Unicode絵文字出力パッケージでゆきだるま☃

3つのゆきだるま☃文字のうちU+2603(☃️)とU+26C4(⛄️)の2つはUnicodeにおいて​「絵文字である」​と規定されています。

TeX LiveにはLaTeXで「Unicode絵文字」を扱うためのパッケージが多数収録されているので、それらを利用してカラー絵文字のゆきだるま☃を出力できます。字形を出す原理はパッケージにより異なり、先述のカラー絵文字フォントを利用するものや絵文字の画像を用意するものなどがあります。

諸般の都合(時間切れ🙃)のため、このカテゴリについては説明を割愛します🙇 詳細については以下の記事を参照してください。

ただ一点だけ補足しておきます。bxcoloremojiパッケージは当該の記事が最初に書かれた時点ではまだTeX Liveに収録されてなかったのですが、2024年11月に収録されました。つまり今ではbxcoloremojiもTeX Liveで使える状態になっています🙂

%% LuaLaTeX
\documentclass[a4paper]{ltjsarticle}
\usepackage{bxcoloremoji}
\begin{document}
今日は\coloremoji{}よりも\coloremoji{}の
方が好きです\coloremoji{🥶}
\end{document}

画像を利用したパッケージでゆきだるま☃

先ほどUnicode絵文字用のパッケージで画像を利用したものの話をしましたが、Unicode絵文字以外の記号出力系パッケージでも画像を利用したものがあります。その中でゆきだるま☃を出力できるものを取り上げます。

本節で紹介するパッケージはどのワークフローでも使えます。ただしDVI出力の場合はドライバオプションを適切に設定する必要があります。

% 例えばdvipdfmxの場合, グローバルに"dvipdfmx"を指定する
\documentclass[a4paper,dvipdfmx]{article}

tablericonsパッケージ

Tablericonsの記号をLaTeXで使うためのパッケージです。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{tablericons}
\begin{document}
% "\tablericon{snowman}"でゆきだるま☃を出力
\begin{itemize}
\item[\tablericon{snowman}] Nice
\end{itemize}
\end{document}

openmojiパッケージ

OpenMojiの記号をLaTeXで使うためのパッケージです。

これは「Unicode絵文字」の一種のような気がしますが、詳細を調べていません。
%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{openmoji}
\begin{document}
% "\openmoji"命令で記号を出力する
\begin{itemize}
% "snowman without snow"は⛄️
\item[\openmoji{snowman without snow}] Essential
% "snowman"は☃️
\item[\openmoji{snowman}] Nice
\end{itemize}
\end{document}

TikZ描画を利用したパッケージでゆきだるま☃

最後にTikZによる描画を利用してゆきだるま☃の絵(記号・絵文字)を出力するパッケージを取り上げます。

本節で紹介するパッケージはどのワークフローでも使えます。ただしDVI出力の場合はドライバオプションを適切に設定する必要があります。

tikzsymbolsパッケージ

これは例の2016年の記事にも登場する古参のTikZ系記号パッケージです。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{tikzsymbols}
\begin{document}
% "\Snowman"でゆきだるま☃を出力
Hello, {\Snowman} world!
\end{document}

utfsymパッケージ

対象としているのはUnicodeの特定の符号値範囲に含まれる記号であり、絵文字ではないものも含まれます。

%% pdfLaTeX
\documentclass[a4paper]{article}
\usepackage{utfsym}
\begin{document}
% "\usym{符号値16進数}"でUnicode文字を出力
But does \usym{2603} align with \usym{26C4} and \usym{26C7}?
\end{document}

tikzlingsパッケージ

皆さんお馴染みのtikzducksパッケージの親戚にあたる(同じ作者の)パッケージで、色々な生き物の素敵なイラストを出力するものです。

%% pdfLaTeX
\documentclass{standalone}
\usepackage{xcolor,tikz,tikzlings}
\pagecolor{blue!80!black!50}
\newcommand*{\cText}{\usefont{OT1}{cmss}{sbc}{n}}
\begin{document}
\begin{tikzpicture}[x=1bp, y=1bp]
\useasboundingbox (0,0) rectangle (400,160);
% 左に⛄、右に🦉を描く
\node at (70,80) {\tikz[scale=60]{\snowman}};
\node at (330,80) {\tikz[scale=60]{\owl}};
\node[scale=4, text=white, font={\cText}]
  at (200,90) {texadvent};
\end{tikzpicture}
\end{document}

scsnowmanパッケージ

もはや説明の必要がないですね😊😊😊

%% pdfLaTeX
\documentclass{standalone}
\usepackage[svgnames]{xcolor}
\usepackage{tikz,scsnowman}
\pagecolor{Orange!60!Red!4}
\begin{document}
\begin{tikzpicture}[x=1bp, y=1bp]
\useasboundingbox (0,0) rectangle (400,200);
% あったかそうな⛄⛄を描く
\node at (100,100) {\scsnowman[scale=20, muffler=Red,
    arms=Brown, buttons=Green, hat=Green]};
\node at (300,100) {\scsnowman[scale=20, muffler=Orange!60!Red,
    arms=Brown, buttons=Green, hat=Green]};
\end{tikzpicture}
\end{document}

トッテモあったかそうで素敵🥰

まとめ

やっぱり、scsnowmanのゆきだるま☃が一番素敵😍


  1. scsnowmanパッケージTeX Liveに収録されたことの報告という意図もあるでしょう。
  2. この記事ではTTFグリフのものも含めて「OpenTypeフォント」と呼ぶことにします。
  3. なお「Regularにはゆきだるま☃があるのに別シェープにはない」という事例は存在した。(FreeSerifなど)
  4. \symbolは飽くまで「文字を版面に出力する命令」であるのに対して^^^^表記は「文字そのものの代用」となるので、例えば\☃という命令の表記を\^^^^2603で代替させることも可能です。
  5. ただし\symbolの引数の符号値が255以下の場合は欧文側の指定になります。^^^^記法は(2.00版以降では少し話がヤヤコシイですが要するに)使えません。
  6. LaTeXレベルで「文書中で使う和文書体を自由に増やす」方法が確立されていないということです。
  7. ……のはず。今のpLaTeXはe-upTeXエンジン上で動いていて、そしてイマドキ(2.00版以降)のe-upTeXエンジンはなにもわからない😭のだけど。
  8. 中にはエンジンによってフォントの種別を変えていて「Unicode LaTeXの場合はOpenTypeフォントを使う」という動作をするパッケージもあります。例えばfontawesome7パッケージはUnicode LaTeX上ではFontAwesome7Free-Solid-900.otf(冒頭の表にあるOpenTypeフォント)を使用します。
  9. TeX Liveには番号無しの“fontawesome”というパッケージもありますが、これは4版に対応するものなので注意が必要です。