2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaTeX で絵文字を使いたいときのエトセトラ

Last updated at Posted at 2024-07-25

LaTeX をしているときに絵文字を挿入したいことは多いでしょう。そんなときに、そのまま絵文字 😆 を挿入しようとしても上手くいきません 😵‍💫
適切なパッケージを使う必要があります。

本記事では、絵文字を挿入する際に必要なパッケージやそれらの特徴を紹介します 👍

絵文字を使うためのパッケージ

LaTeX で絵文字を利用するには、TeX Live に同梱されている 6 つのパッケージと同梱されていない 1 つのパッケージがあります。1

パッケージ 対応 LaTeX フォント
emoji LuaLaTeX 任意のフォント
emotion LuaLaTeX, XeLaTeX 任意のフォント
emo すべて Noto Color Emoji (images/font)
hwemoji pdfLaTeX Twemoji (images)
twemojis すべて Twemoji (images)
byo-twemojis すべて Twemoji (TikZ)
BXcoloremoji  すべて Twemoji (images)

フォントが “images” となっているパッケージでは、絵文字を PDF や PNG として埋め込みます。これらのパッケージでは graphics パッケージを内部で利用しています。そのため、(u)pLaTeX 下では \documentclass での dvipdfmx の指定を忘れないようにしてください。

加えて、emo パッケージでは “images/font” としていますが、これは LuaLaTeX 以外では images を利用するのに対して、LuaLaTeX では Noto Color Emoji (/font) を利用するためです。

特記

emo パッケージは、デフォルトではいくつかの絵文字しかサポートしていません。そのため、emo.py による生成が必要になるようです。詳細は README を確認してください。


byo-twemojis パッケージは TikZ を利用して Twemoji を再現します。(“byo” は Build Your Own の略)

このパッケージでは顔絵文字のみしか利用できません。しかし、この顔絵文字は分解されたいくつかのパーツ (TikZ elements) を組み合わせて作成するため、既存の絵文字に無いオリジナルな絵文字を作成することも出来ます。(下図では右 2 つがオリジナル)

\byoTwemoji{head; eyes normal; mouth laughing}
\byoTwemoji{head; eyes normal; mouth grimacing}
\byoTwemoji[set Yellow={254, 231, 184}]{head; clown makeup; clown nose; clown hair; mouth smiling!yscale=1.2,yshift=-3,fill=byoTwemojiRed; eyes normal!yshift=-2}
\byoTwemoji[let Yellow=byoTwemojiLightRed,let Brown=byoTwemojiBlack]{head; eyes normal!yshift=1.5; eyebrows worried; mouth tongue hanging-out; sweat left right}
%%
%% ↓ これらはオリジナル絵文字
\byoTwemoji{head; eyes tightly closed pupil!yshift=2; eyebrows worried!yshift=1; mouth thermostat; bandage}
\byoTwemoji{head exploding; mouth goofy}

byo-twemojis image


BXcoloremoji パッケージは TeX Live に集録されていませんが、非常によく利用される絵文字用パッケージです。単に絵文字を出力する以外にもいくつかの機能があり、画像による出力にも関わらず、和文的扱いをすることが出来ます。

また、デフォルトでは Twemoji フォントのみサポートしていますが、カスタム次第では他のフォントの絵文字を追加することも出来ます。(参考
この意味では、BXcoloremoji のみが画像形式で複数フォントの絵文字を扱う方法が提供されています。2

加えて、Version 0.18 以降では twemojis オプションを有効にすることで twemojis パッケージの PDF 画像を利用できるようになりました。(入力方法は BXcoloremoji のまま)

このオプションのメリットは、絵文字画像ファイル揃が不要で BXcoloremoji を利用できる点です。
そのため、Overleaf や Cloud LaTeX のような BXcoloremoji がインストールされていない環境であっても STY ファイルと DEF ファイルのみがあれば簡単に活用できます。

入力方法

それぞれのパッケージにおける入力方法と “😀” の表示例を紹介します。

パッケージ 入力方法
emoji shortcodes \emoji{grinning-face},
(aliase: \emoji{grinning})
emotion 準リテラル \emotion{😀}
emo shortcodes \emoji{grinning-face}
hwemoji リテラル 😀
twemojis codepoints,
shortcodes
\(text)twemoji{1f600} (lowercase),
\(text)twemoji{grinning face},
(aliase: \(text)twemoji{grinning})
byo-twemojis TikZ element names \byoTwemoji{head; eyes normal; mouth laughing}
BXcoloremoji 準リテラル,
codepoints,
shortcodes
\coloremoji{😀},
\coloremojicode{1f600},
\coloremojicode{:grinning:}

emoji、emo、twemojis の shortcodes は Unicode CLDR 名に由来します。一方で、BXcoloremoji は emoji-toolkit に由来します。

emoji と twemojis のパッケージガイドには shortcodes に関する情報が掲載されています。

絵文字の扱い方

すでに示しているように、絵文字はフォントとして埋め込むか画像として埋め込むかの 2 通りがあります。

フォント

絵文字をフォントとして挿入するこれらのパッケージでは fontspec パッケージを内部で利用しています。

そのため、LuaLaTeX や XeLaTeX といった限られた LaTeX のみで機能します。

emoji や emotion パッケージでは、以下のコマンドから任意のフォントが利用可能となっています。

パッケージ フォント構成コマンド
emoji \setemojifont
emotion \emotionsetup

TeX Live では以下のフォントが同梱されており、これらを利用できます。もちろん、これ以外にも PC にインストールされたフォントを利用することも出来ます。

フォント パッケージ
TwemojiMozilla.ttf カラー twemoji-colr
NotoColorEmoji.ttf カラー noto-emoji
NotoEmoji-Regular.ttf 白黒 noto-emoji

ただし、フォントの仕様によって利用できないとされているものもあるようです。詳しくはパッケージガイドを参照してください。

上記のパッケージを利用する以外に fontspec を利用して絵文字を得ることもできるようです。(参考

画像

絵文字を画像として挿入するこれらのパッケージでは graphics パッケージを内部で利用しています。

そのため、(u)pLaTeX 下では \documentclass での dvipdfmx の指定を忘れないようにしてください。

パッケージによって取り扱う画像の形式が異なります。また、見出しに絵文字を使う際に hyperref パッケージでブックマークを作成したときのブックマーク情報がどのように出力されるか異なります。

これらに関して以下の表にしました。

パッケージ 画像形式 ブックマーク情報
emo PDF 指定子とパス
hwemoji PDF Unicode 文字
twemojis PDF shortcodes
byo-twemojis TikZ TikZ element name
BXcoloremoji PDF, PNG Unicode 文字

hwemoji と BXcoloremoji パッケージのみがまともにブックマークを出力することが出来ます。(BXcoloremoji の twemojis オプションでも同様)

もしも hwemoji・BXcoloremoji 以外のパッケージを利用してブックマークに Unicode 文字として絵文字を出力したい場合は、\texorpdfstring (hyperref) を利用してください。

縦書きで絵文字を使いたい

縦書きであっても絵文字を使いたいこともあるでしょう。その場合、絵文字の向きが縦向きになるように調整する必要があります。

縦書きにデフォルトで対応するパッケージは BXcoloremoji のみ です。これ以外のパッケージでは、時計回り 90 度回転した状態で表示されます。

ただし、\rotatebox で 90 度回転させて、\raisebox で位置を調整すればその限りではありません。(非常に面倒ですが)

特に、twemojis パッケージでは以下のように angle = 90 を構成すると、縦書きであっても上手く表示させることができます。

\twemoji[height=1.4\twemojiDefaultHeight, angle = 90]{grinning face}

このような構成をいちいち書くのは面倒なので、\texttwemoji を以下のように再定義してしまえば、縦書きでもいい感じに表示されます。(参考

%% 実際、twemojis では \texttwemoji を以下のような感じで定義しています
\renewcommand{\texttwemoji}[1]{%
  \raisebox{-1ex}{\twemoji[height=1.4\twemojiDefaultHeight, angle = 90]{#1}}%
}%

余談

フォントによって絵文字を扱う emoji や emotion パッケージを使うことが最も楽な利用方法ですが、対応する LaTeX は限られています 🤔

画像によって絵文字を扱うパッケージを使う場合は、hwemoji(pdfLaTeX のみ)か BXcoloremoji パッケージを使うと良いでしょう。
BXcoloremoji は自力でインストールする必要がありますが、それほど難しい作業ではありません 🥳

LaTeX では絵文字を使うにも一苦労ですね ⛄

  1. Apple Color Emoji (/images) を利用した coloremoji がありますが、これは TeX Live に同梱されていないため割愛しました。
    導入したい場合は、CTAN あるいは GitHub リポジトリ からダウンロードできます。

  2. Apple Color Emoji であれば coloremoji のリポジトリ、Noto Color Emoji であれば noto-emoji のリポジトリ を参照すると、絵文字の画像を取得できます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?