2 ポイント 投稿者 GN⁺ 2025-11-09 | 2件のコメント | WhatsAppで共有
  • プログラミング言語でよく使われる 記号をアルファベットと同等に扱うモノスペースフォント で、コードエディタの視覚的な調和を目指している
  • ASCII記号中心の設計 により、->::=~ など複数字記号の整列を改善し、バランスの取れた太さと明確な識別性 を提供
  • 言語ごとの可読性 を考慮し、Perl、Haskell、C などで記号や演算子の形状を明確に表現
  • 現在は 単一ウェイトかつ非リガチャ形式 で提供され、Linux の fontconfig・pango 環境では合成ボールドをサポート
  • SIL Open Font License 1.1 で配布されており、自由な利用と修正が可能

Myna 概要

  • Myna記号を第一級のグリフとして扱うモノスペースフォント で、プログラミング言語における記号の視覚的一貫性を高めることに焦点を当てている
    • ->$@% などの記号が既存フォントでは不自然に見える問題を解決
    • ASCII のシンプルさを保ちながら Ligature の美的効果 を模倣

主な特徴

  • Symbol-First Design: プログラミング言語全般で使われる ASCII 記号を中心に設計
  • 整列精度: ->>>=:: など 複数文字記号の整列精度 を高め、コードの可読性を向上
  • バランスの取れた太さ(Weight): 記号と文字のコントラストを調和よく維持
  • ミニマルな形状: 引用符やカンマなどは幾何学的な形に単純化
  • 明確な識別性: 1lI|0Oo など紛らわしい文字の区別を強化
  • 言語認識型デザイン: 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件のコメント

 
bobross0 2025-11-11

JetBrains Font を使っていますが、興味深いですね。

 
GN⁺ 2025-11-09
Hacker Newsの意見
  • 最近 Iosevka(発音は Joseph)に乗り換えたのは、まさにこういう 簡潔さ が理由。
    Iosevka GitHub リンク
    面白いのは、このフォントのソースコード自体が実際に読めるほど構造が明快なこと。

    • Iosevkaは本当に美しいフォント。Mynaの 圧縮された見た目(condensed look) も実はIosevkaから着想を得ている。
      前のバージョンであるHeraは、Source Code Proをカスタマイズした非圧縮版だった。
    • Iosevkaは標準で カスタムビルド をサポートしていて、さまざまなグリフ変形や リガチャの選択 が可能。かなり驚くべき水準。
    • IosevkaがJosephの変形だと今さら知った。何年も使っていたのに発音すら知らなかった。READMEに書いてあったのに。
    • Pragmasevkaも一度試す価値がある。Iosevkaから乗り換えたけど、可読性 が少し上に感じる。
    • 自分は Iosevka Orw を使っている。標準のIosevkaと一般的なmonospaceの中間くらいの幅で理想的。
  • 正直に言うと、「symbol-heavy な言語 のためのフォント」という説明がよく分からない。記号は普通に見える。もしかして間隔が少し広いのだろうか?

    • GitHubページの最初の注目ポイントが「Near-Perfect Alignment」。つまり、->>>=:: のような複数字記号が完璧に整列するという意味。
    • デザイナーです。ここでいうsymbol-heavyな言語とは、PerlやHaskellのような 記号使用の多い言語 を指す。自分はリガチャを使わずに整列のきれいなフォントを作りたかった。
    • デザインの違いを説明するには実際の比較例が必要。比較画像がないので混乱するのは当然。
  • フォントはかなりきれい。ただ、サンプルに emdash(—) の文字が欠けているように見える。Markdownをよく使うが、多くのプログラミング向けフォントはこの文字をうまく表現できていない。
    スクリーンショットは他のフォントよりずっと 評価の助けになる

    • その通り。em-dashは単なる文字以上のもの。良い文章を書くうえでの 重要な要素 だと思う(半分冗談、半分本気)。
    • フィードバックありがとう。このフォントではen-dashを広めに作っていて、em-dashとの区別がつきにくい。自分はem-dashをほとんど使わないので、区別の必要性を感じていなかった。
      それでも要望があるなら改善を検討したい。
  • 多くのフォントと同様、このフォントも 縦向き矢印(↑↓) の整列がぎこちない。
    ^ 文字はもともとタイプライター時代の circumflex アクセント のためのものだった。だから高さが非対称。caretの下端が v と対称になるといいと思う。

    • caretを上下矢印として使っているのを見たことがない。対称性が必須だとは思わない。
    • caretを縦向き矢印として使うのは現実的ではない。2行にまたがって入力しないといけないから。実際にこんなものを使う言語があるのか気になる。
    • もしかして行をまたぐ リガチャ を作ろうとしているのか? 単にUnicodeの を使うほうがいいのでは?
    • デザイナーです。こうした組み合わせは検出が難しいし、caretは本来 演算子記号 なので、プログラム上の意味を壊してはいけない。v と比較するのは公平ではない。
    • caretの歴史的理由は重要ではない。今では誰もがその形に慣れている。こういう特殊ケースのためにフォントを変えると、かえって混乱を招く。
      フォントは 予測可能な形 を保つべき。
  • -> が矢印っぽく見えない」という不満に対して、本当の解決策は ←→ のような実際の矢印 を使うこと。いつか言語がより良い タイポグラフィ品質 をサポートしてくれることを願う。

    • デザイナーです。優雅さと一貫性 を同時に得るのは不可能。自分たちはリガチャなしでもASCIIベースのコードが見栄えよく見えるよう努力している。
    • リガチャは存在する。
  • JuliaMono は、Julia言語の 完全なUnicode対応 のために設計されたフォント。

    • リンクありがとう。グリフが非常に豊富に見える。フォントの限界を超えるために、JuliaMono2、3、4のような フォールバック体系 を使っているのも興味深い。
    • デザイナーです。自分は主にASCII範囲で作業しているが、MynaにJuliaMonoを 補助フォント として設定すればUnicodeカバレッジを拡張できる。
  • フォントはきれいではあるが、上部の「Lorem」の字間が広すぎて カーニング(kern) が不自然に感じる。個人的には気になる。

    • デザイナーです。毎日使っているうちに欠点に鈍感になっていた。それでも指摘はもっとも。次のバージョンで カーニング修正 を検討したい。具体例があればissueとして残してほしい。
  • リガチャ(ligature) は開発者の間でかなり議論の多いテーマ。
    コードがより 美しく読みやすくなる という人もいれば、「記号を隠すのは不要、あるいは不誠実だ」と考える人もいる。
    また「言語がUnicodeをきちんとサポートしていればリガチャは不要だったはず」と言う人もいる。
    結局このプロジェクトは3つの立場すべてを同時に刺激したが、だからこそ面白い。GitHubでスターを付けた。

    • ほとんどのエディタではリガチャは オプション としてオン・オフできる。だから誰も排除されない。
  • 記号が小文字の横で少し高すぎる位置にあるように見える。括弧の整列に合わせようとして生じた問題に見える。バランス感 がやや惜しい。

    • デザイナーです。一般的なフォントはテキスト中心なので伝統的な整列に従うが、コードはテキストではない
      伝統を破ることで、むしろ可読性が良くなる。ハイフンは > と整列して 矢印の形 になるよう設計した。
  • すでに Myna UI という アイコンフォント が存在する。混同されるかもしれない。

    • デザイナーです。知らせてくれてありがとう。それでも大きな混乱にはならないと思う。