9
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?

Visual Studio CodeAdvent Calendar 2023

Day 2

VS Code でのカラー絵文字表示

Posted at

問題

コード中でのコメントにカラー絵文字を使うと重要なメッセージを目立たせる事ができ、またどのカラー絵文字かによってテキストを読む事なくそのカラー絵文字だけで、その情報の大まかなカテゴリを知る事もでき、とても便利なモノです。

そして ⚠️ のような絵文字はコード中のコメント内で特に目立って欲しいところなのですが、普通にやるとカラー絵文字版ではなく単色の絵文字が表示されて残念なことになる場合があります。
現状、環境のアップデートにより、この問題の再現環境は減りつつはあるのですが、この記事ではこの問題の対処方法をご紹介します。

⚠️がモノクロなスクショ

原因

そもそもなぜ他の多くの絵文字はカラー表示されるのに、一部の、それも より古くから存在していた絵文字が単色で表示されてしまうのか? これは古くから存在していた事によって、カラー絵文字に対応してない多くの一般的なフォントに単色版の絵文字が存在しており、それが表示されてしまう為です。

対策

対策は2つあり、1つは UNICODE のバリエーションセレクターでカラー絵文字版を指定する事なのですが普通に IME から絵文字を入力するとカラー絵文字版でない方が入力されてしまいます。もちろん、辞書登録するなり、外部ツールを使うなりする手もありますが、検索や正規化の問題もあります。

今回、この記事でフォーカスするのはもう1つの方法で、フォント指定を工夫する方法です。

カラー絵文字フォント

環境によって次のようなカラー絵文字フォントが存在しています。

フォント 環境
Apple Color Emoji Mac or iPhone or iPad
Noto Color Emoji Linux or Android
Segoe UI Emoji Windows

ようはこれらのフォントを優先的に指定すれば良いのですが、これらのフォントを真っ先に指定すると、今度はこれらのフォントが半角の空白文字や数字のデータを持っており、それが全角の様な文字幅になっていたりする為(恐らくカラー絵文字として全てが真に等幅フォントになっている)、

カラー絵文字を優先した為に他が残念な事になってるスクショ

このようにこれはこれで残念な事になってしまいます。それじゃぁと今度はこれらのフォントを最後に指定すると、他の指定フォントにもよりますが、単色版の絵文字が適用されてしまい、意味がありません。

そこでフォントの指定する順番として次のようにする必要があります。

  1. 絵文字を含まないフォント
  2. カラー絵文字フォント
  3. その他のフォント

「絵文字を含まないフォント」としては主に半角の英数記号(ASCIIの範囲)ぐらいしかデータを持ってない多くのプログラミング向けのフォントがちょうど向いてます。お好みのプログラミング向けのフォントを指定してください。( 特にこれと言った好みのプログラミング向けのフォントが無ければ Monaspace あるいは Cascadia Code でもダウンロードして利用してください。 )

「カラー絵文字フォント」はこのセクションの最初にリストアップしたヤツで、手元の環境に存在するヤツを指定してください。( 手元の環境に無ければ Noto Color Emoji でもダウンロードして利用してください。 )

「その他のフォント」は指定しなくとも概ね問題ないかと思いますが( 例えば日本語文字データを持たないフォントしか指定してなくても、通常、システム上のフォントで補完されて正常に表示されます。 )、お好みの日本語文字データを持っているフォントを指定しておくことを推奨します。( 手元の環境に無ければ Noto Sans Japanese でもダウンロードして利用してください。 )

指定例:

{
    "editor.fontFamily": "'Monaspace Neon', 'Cascadia Code', 'Apple Color Emoji', 'Noto Color Emoji', 'Segoe UI Emoji', Menlo, Monaco, 'Courier New', monospace",
    ...
}

全ていい感じになってるスクショ

フォント リンク集

参考情報

9
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
9
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?