TeX Alchemist Online

TeX のこと,フォントのこと,Mac のこと

Overleaf で BXcoloremoji パッケージを用いて絵文字を出力する

f:id:doraTeX:20220116011622p:plain

Overleaf に BXcoloremoji パッケージを導入し,日本語対応 LaTeX エンジンでコンパイルして,絵文字入りの和文文書を作成してみましょう。(Overleaf のエディタ上にはBMP外絵文字の直接入力ができないこともあり,ちょっと面倒です。)

準備:Overleaf で日本語 LaTeX 文書を作成する準備を整える

まずは,次に記事を参考にして,Overleaf 上に新規プロジェクトを作成し,日本語 LaTeX 文書を作成する準備を整えてください。

doratex.hatenablog.jp

ここでは,日本語 LaTeX エンジンとして upLaTeX + dvipdfmx のワークフローを採用することにしましょう。

BXcoloremoji パッケージをダウンロードする

ZRさんの BXcoloremoji パッケージをローカルにダウンロードします。

必要ファイルをアップロードする

  • bxcoloremoji.sty
  • bxcoloremoji-names.def

の2つが最低限必要なファイルです。これを Overleaf プロジェクト内にアップロードし,main.tex と同じトップ階層に収納してください。

現状,Overleaf のプロジェクト内のトップ階層はこうなっているはずです。

f:id:doraTeX:20220116003334p:plain

補足:Overleaf のサブ階層以下にスタイルファイルを収録する方法

latexmkrc ファイル内に

$ENV{TEXINPUTS} = './/:'

と記述しておけば,main.tex 以下のサブ階層内のスタイルファイルが再帰的にサーチされるようになります。(// の部分が「再帰的に」を意味します。)

入力したい絵文字のコードポイントを特定する

Overleaf のエディタは,☃ (U+‪‪2603) のようなBMP内絵文字は入力できるのですが,🍣 (U+1F363) のようなBMP外絵文字は入力できません。ローカルの LaTeX エディタ・コンパイラを使うのならば \coloremoji{🍣} のような入力ができて便利なのですが,Overleaf のエディタに入力するならばコードポイント指定で,\coloremoijcode{1F363} と入力せねばなりません。

そこで,入力したい絵文字のコードポイントを特定しましょう。入力文字のコードポイントを表示してくれる機能のあるテキストエディタを使うとよいです。ここでは,macOS 用のテキストエディタである CotEditor の文字情報表示パネル(文字選択 → Command + Shift + I)を使ってみます。VScode の Unicode Code Point という拡張機能でも同様のことができます。

CotEditor の場合,絵文字を入力して選択して Command + Shift + I を押すと,次のように表示されます。

f:id:doraTeX:20220116005549p:plain

VScode + Unicode Code Point 拡張の場合,カーソル位置の次の文字のコードポイントがステータスバーに表示されます。

f:id:doraTeX:20220116053518p:plain

\coloremoijcode の引数にコードポイントを入れる

そうやって発見した絵文字のコードポイントを,\coloremoijcode{1F363} のようにして \coloremoijcode の引数に入れます。 ただし,複数コードポイントからなる結合絵文字の場合,次のような翻訳が必要です。

  • 基本は複数コードポイントを空白区切りで並べる
  • U+200D (ZERO WIDTH JOINER) は + に変換する
  • U+FE0F(絵文字スタイルセレクタ)は除去する

この結果,たとえば次のようになります。

  • 🙋🏾 (U+1F64B, U+1F3FE (Skin Tone Selector)) → \coloremojicode{1F64B 1F3FE}
  • 4人家族絵文字 f:id:doraTeX:20220116010214p:plain\coloremojicode{1F468 + 1F469 + 1F467 + 1F467}
  • NGサイン絵文字 f:id:doraTeX:20220116010350p:plain\coloremojicode{1F645 1F3FB + 2642}

必要な画像ファイルを特定し,Overleaf 上の適切な場所に配置する

この引数のコードポイント列をもとに,必要な画像ファイルを特定します。BXcoloremoji パッケージの emoji_images/twemoji-png ディレクトリの中にある絵文字画像ファイルの中から,必要なファイルを特定します。引数の中の +200D に読み替えてください。たとえば,1F645 1F3FB + 2642 ならば twemoji-1F645-1F3FB-200D-2642.png が該当するファイルとなります。

Overleaf 上に emoji_images/twemoji-png ディレクトリを作成し,BXcoloremoji パッケージのディレクトリツリーを再現します。そして,その中に必要な画像ファイルを投入します。つまり,次のような階層構造となります。

f:id:doraTeX:20220116010911p:plain

main.tex で BXcoloremoji パッケージを呼び出す

これで準備完了です。いざ,BXcoloremoji パッケージを呼び出してコンパイルしてみましょう!

ソース

\documentclass[dvipdfmx,uplatex]{jsarticle}
\usepackage{graphicx}
\usepackage[twemoji-png]{bxcoloremoji}

\begin{document}
Overleafで日本語と絵文字\coloremojicode{2603}\coloremojicode{1F60A}\coloremojicode{26F7}\coloremojicode{1F363}\coloremojicode{1F371}\coloremojicode{1F647}\coloremojicode{1F64B 1F3FE}\coloremojicode{1F46A}\coloremojicode{1F468 + 1F469 + 1F467 + 1F467}\coloremojicode{1F645 1F3FB + 2642}\coloremojicode{1F97A}の共存!
\end{document}

コンパイル結果

f:id:doraTeX:20220116011622p:plain

サンプル Overleaf プロジェクト

今回作成したサンプル Overleaf プロジェクトはこちらです。

www.overleaf.com