GitHub製のコーディングフォント「Monaspace」の特徴と使い方

GitHub Nextが、「An innovative superfamily of fonts for code(コード用フォントの革新的なスーパーファミリー)」と主張する、新しいコーディングフォント「Monaspace」を発表しました。GitHub Nextはソフトウェア開発の未来を探求する、GitHubの研究チームです。

Monaspaceファミリーは等幅フォントで、それぞれ見た目の異なる次の5つのフォントで構成されています。
- Neon
- Argon
- Xenon
- Radon
- Krypton
Monaspaceの特徴
混植対応
Monaspaceファミリーのフォント同士は、互いに自然に混植できるように設計されています。

通常、等幅フォントはそれぞれ異なるメトリックを使用するため、複数のフォントを混在させることができません。
しかし、Monaspace同士は自然に組み合わせて使用できるようになっています。
テクスチャーヒーリング
等幅フォントには、テキストの一部の領域が密になっていたり、逆に空白があったりするという問題があります。これは、幅の狭い文字も広い文字も、すべてを同じ幅で表示するという等幅フォントの性質上、避けられない問題です。
Monaspaceでは、等幅フォントの密度を均一にし、プロポーショナルフォントに近づける新しい技術「テクスチャーヒーリング」を採用しています。
画像は、テクスチャーヒーリングが無効な場合(上)と有効な場合(下)の比較です。テクスチャーヒーリングを有効にすると、iがより引き締まった見た目になり、mがよりゆったりとした見た目になっています。

通常、等幅フォントでは、すべての文字を同じ幅にするために1やiは余白が多く見え、mやwなどはゆがんで見えます。
テクスチャーヒーリングは、筆記体フォントやアラビア語のフォントで利用されている、OpenTypeの「contextual alternates」機能を使用しています。幅の狭い文字は空白の一部を譲るバージョンと交換され、幅の広い文字は枠ぎりぎりまで広がるバージョンと交換されます。
VS Codeでテクスチャーヒーリングとコード合字(リガチャ)を有効にするには、settings.jsonに次の設定を追加します。
"editor.fontLigatures": true,可変フォント(バリアブルフォント)対応
Monaspaceは、可変フォント(バリアブルフォント)に対応しています。可変フォントは、フォントの太さや幅、傾きなどを、1つのフォントファイルで表現できる技術です。
Monaspaceでは、フォントの太さを200〜800、傾斜軸を0°〜-11°、幅を100〜125の範囲で、任意の値に設定できます。
コード合字(リガチャ)
Monaspaceでは、コード合字(リガチャ)をサポートしています。合字は、特定の文字の組み合わせのときに、より見やすい見た目に置き換える機能です。

Monaspaceでは、合字を細かく調整できるようになっています。どの合字を有効にして、どの合字を無効にするかの設定のコードは、Monaspace公式サイトで取得できます。使いたい合字にチェックを入れて、生成されたコードをコピーしてください。
オープンソース
Monaspaceは、オープンソースです。GitHubでソースコードが公開されています。
ダウンロード方法
Monaspaceフォントファミリーは、公式GitHubリポジトリーからダウンロードできます。
VS Codeでの設定方法
VS CodeでMonaspaceを使用するには、次の手順で設定します。
まず、Monaspaceをダウンロードし、インストールします。
次に、VS Codeの設定を変更します。たとえば、英数記号にMonaspace Neonを使用し、それ以外にはNoto Sans JPを使いたい場合、次のように設定します。
"editor.fontFamily": "'Monaspace Neon Var', 'Noto Sans JP', monospace",これは、可変フォントを利用した場合の設定です。可変フォントではなく通常のフォント(.otf形式)をインストールした場合は、次のようになります。
"editor.fontFamily": "'Monaspace Neon', 'Noto Sans JP', monospace",また、テクスチャーヒーリングとコード合字(リガチャ)を有効にするには、``settings.json``に次の設定を追加します。
"editor.fontLigatures": true,フォントの太さを変更したい場合は、次の設定を追加します。私のお気に入りは360ですが、この数字を大きくすると太く、小さくすると細くなります。
"editor.fontWeight": "360",2024年2月19日追記
MonaspaceとIBM Plex Sansを組み合わせた日本語対応のコーディング用フォント「Moralerspace」がリリースされました。詳細はこちらの記事で解説しています。
まとめ
GitHub Nextが開発した、新しいコーディングフォント「Monaspace」を紹介しました。
Monaspaceは、等幅フォントの問題を解決するために、新しい技術を採用しています。混植対応、テクスチャーヒーリング、可変フォント対応、コード合字(リガチャ)など、コーディングフォントとしては画期的な機能を備えています。
Monaspaceは、オープンソースで公開されています。GitHubからダウンロードできるので、興味のある方はぜひチェックしてみてください。
記事をシェア
フォローして最新情報を入手
Googleの優先ソースに追加すると、このサイトの記事をGoogleで見つけやすくなります。また、ぜひXやRSSフィードもフォローしてください。
関連記事
-1.png&w=1080&q=75)
生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。
Webフロントエンドプログラマーとして、TypeScriptを用いたWebアプリやブラウザー拡張機能を制作。Xのシャドウバン検知ツール「Shadowban Scanner」やリンクカード復活ツール「Restore Link Card」を公開し、国内外のメディアで紹介されました。iGEM 2023ではJapan-UnitedチームのWikiを制作してGrand Prizeの獲得に貢献。ブログではXやSNSの最新ニュース、不具合の検証と対処法、フロントエンド開発の知見を発信しています。



![[Sign in to use Copilot]と[Sign in to GitHub]というダイアログにGoogleでログインするボタンが表示されている画像](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fgoogle-social-login-on-github.png&w=3840&q=75)
![[MCP Servers]というツールチップが表示されたボタンのスクリーンショット](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fcline-mcp-server-button.png&w=640&q=75)




![[新しいXチャットへようこそ]というテキストが画面に大きく表示されており、その下には次の3つの説明が表示されている。[エンドツーエンドの暗号化:メッセージは、端末にかかわらずエンドツーエンドで暗号化されています。][最先端のプライバシー:Xを含め、他の人がメッセージを読むことはできません。][パスコードを設定:メッセージを保護するため、4桁のパスコードを設定してください。]これらの説明の下には、[パスコードを作成]という大きなボタンが配置されている](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fwelcome-to-new-chat.png&w=1920&q=75)



![Discordの[プロフィールのプライバシー]設定のスクリーンショット](/_next/image/?url=%2Fapi%2Fmedia%2Ffile%2Fdiscord-profile-privacy-settings.png&w=3840&q=75)