- プログラミング言語でよく使われる 記号をアルファベットと同等に扱うモノスペースフォント で、コードエディタの視覚的な調和を目指している
- ASCII記号中心の設計 により、
->、::、=~ など複数字記号の整列を改善し、バランスの取れた太さと明確な識別性 を提供
- 言語ごとの可読性 を考慮し、Perl、Haskell、C などで記号や演算子の形状を明確に表現
- 現在は 単一ウェイトかつ非リガチャ形式 で提供され、Linux の fontconfig・pango 環境では合成ボールドをサポート
- SIL Open Font License 1.1 で配布されており、自由な利用と修正が可能
Myna 概要
- Myna は 記号を第一級のグリフとして扱うモノスペースフォント で、プログラミング言語における記号の視覚的一貫性を高めることに焦点を当てている
->、$、@、% などの記号が既存フォントでは不自然に見える問題を解決
- ASCII のシンプルさを保ちながら Ligature の美的効果 を模倣
主な特徴
- Symbol-First Design: プログラミング言語全般で使われる ASCII 記号を中心に設計
- 整列精度:
->、>>=、:: など 複数文字記号の整列精度 を高め、コードの可読性を向上
- バランスの取れた太さ(Weight): 記号と文字のコントラストを調和よく維持
- ミニマルな形状: 引用符やカンマなどは幾何学的な形に単純化
- 明確な識別性:
1、l、I、|、0、O、o など紛らわしい文字の区別を強化
- 言語認識型デザイン: Perl の Sigil、Haskell の演算子、C の記号表現をそれぞれ明確に表示
開発背景と現状
- 既存のモノスペースフォントの細かなグリフに満足できず、直接制作された書体
- 開発者自身が 業務および個人プロジェクトで長期間使用した後に公開
- 現在は 単一ウェイト、非-Ligature バージョン として提供されており、今後の需要に応じて拡張可能
- Linux 環境で fontconfig および pango を通じた合成ボールドをサポート
- SIL Open Font License 1.1 を適用
- 初期バージョンは Hera(Source Code Pro ベースのカスタマイズ)から出発
- Fira Mono、Inconsolata、Plex Mono、Office Code Pro、Anonymous Pro などさまざまなフォントの長所を参考に発展
今後の計画
- ターミナルおよびエディタ全般での汎用利用 を目標
- 非 ASCII グリフ(幾何学・数学記号など)を一部含む
- コミュニティのフィードバックに応じて グリフ拡張および機能追加 を予定
2件のコメント
JetBrains Font を使っていますが、興味深いですね。
Hacker Newsの意見
最近 Iosevka(発音は Joseph)に乗り換えたのは、まさにこういう 簡潔さ が理由。
Iosevka GitHub リンク
面白いのは、このフォントのソースコード自体が実際に読めるほど構造が明快なこと。
前のバージョンであるHeraは、Source Code Proをカスタマイズした非圧縮版だった。
正直に言うと、「symbol-heavy な言語 のためのフォント」という説明がよく分からない。記号は普通に見える。もしかして間隔が少し広いのだろうか?
->、>>=、::のような複数字記号が完璧に整列するという意味。フォントはかなりきれい。ただ、サンプルに emdash(—) の文字が欠けているように見える。Markdownをよく使うが、多くのプログラミング向けフォントはこの文字をうまく表現できていない。
スクリーンショットは他のフォントよりずっと 評価の助けになる。
それでも要望があるなら改善を検討したい。
多くのフォントと同様、このフォントも 縦向き矢印(↑↓) の整列がぎこちない。
^文字はもともとタイプライター時代の circumflex アクセント のためのものだった。だから高さが非対称。caretの下端がvと対称になるといいと思う。↑を使うほうがいいのでは?vと比較するのは公平ではない。フォントは 予測可能な形 を保つべき。
「
->が矢印っぽく見えない」という不満に対して、本当の解決策は ←→ のような実際の矢印 を使うこと。いつか言語がより良い タイポグラフィ品質 をサポートしてくれることを願う。JuliaMono は、Julia言語の 完全なUnicode対応 のために設計されたフォント。
フォントはきれいではあるが、上部の「Lorem」の字間が広すぎて カーニング(kern) が不自然に感じる。個人的には気になる。
リガチャ(ligature) は開発者の間でかなり議論の多いテーマ。
コードがより 美しく読みやすくなる という人もいれば、「記号を隠すのは不要、あるいは不誠実だ」と考える人もいる。
また「言語がUnicodeをきちんとサポートしていればリガチャは不要だったはず」と言う人もいる。
結局このプロジェクトは3つの立場すべてを同時に刺激したが、だからこそ面白い。GitHubでスターを付けた。
記号が小文字の横で少し高すぎる位置にあるように見える。括弧の整列に合わせようとして生じた問題に見える。バランス感 がやや惜しい。
伝統を破ることで、むしろ可読性が良くなる。ハイフンは
>と整列して 矢印の形 になるよう設計した。すでに Myna UI という アイコンフォント が存在する。混同されるかもしれない。