2 ポイント 投稿者 jamiekim 16 시간 전 | まだコメントはありません。 | WhatsAppで共有

少し前にここへ投稿されていた Jetendard(JetBrains Mono Nerd Font + Pretendard)を興味深く見ました。こうした合成フォントは、これまでは作成者が選んだ組み合わせをそのまま使う形が一般的でした。ですが、英字は A フォント、韓国語は B フォントというように、自分だけの組み合わせを作りたい人もいるはずです。そこで、誰でも GUI で直接作れるツールを作りました。

フォント2つを CLI で統合すること自体は難しくありません。fontTools で回せばすぐです。面倒なのはその次です。オプションを変え、再度統合し、インストールして確認する。この1周に毎回数分かかり、さらに IDE にフォントを指定しなければならないので、かなり煩雑です。font-moeum(モウム)は、このループを数秒に短縮することに集中したデスクトップアプリです。英字フォントと韓国語フォントのちょうど2つ(TTF/OTF)を受け取り、1つの TTF に統合します。

統合が終わると、結果をすぐに読み込み、インストールなしでプレビュー領域で直接タイプして試せます。サイズ・行間は再統合なしで CSS によりリアルタイム調整されます。オプションを変更すると自動で再統合します。ラテン文字・数字・句読点のように両方に存在するグリフは、どちらのフォントから取るかを A/B スワップでワンクリックで切り替えて比較できます。

モードは2つです。

通常モードは fontTools Merger で全体を統合し、韓国語は元の比率のままなので、文書・UI 用に向いています。

コーディングフォントモードは、専用エンジンが固定幅の A をベースに、B の韓国語グリフをラテン幅の整数倍セル(デフォルト 2:1)に合わせてスケール・中央揃えしてコピーします。これにより、ターミナルやエディタでラテン2セルと韓国語1文字が正確に揃います。韓国語のスケール、幅の倍率、縦方向オフセット、漢字を含めるかどうか、ジャモ合成(ccmp)などは高度なパネルで調整できます。A が固定幅でない場合は統合を拒否します。

実装は Tauri v2 + React です。統合エンジンには Python の fontTools を PyInstaller の単一実行ファイルにまとめ、サイドカーとして内蔵しました。統合自体には fontTools をそのまま使っています。結果を即座に表示するには WebView の FontFace API が便利だったため、この構成になりました。OTF(CFF)は読み込み時に cu2qu で TTF に変換してから統合します。曲線近似と CFF ヒンティング消失があるため、スロットには "OTF→TTF" バッジで表示し、CFF2 可変 OTF は拒否します。出力は常に TTF です。

Windows(インストーラー版・ポータブル zip)・macOS(Apple Silicon)・Linux(AppImage/deb)ビルドを用意しています。コード署名がないため Windows では SmartScreen 警告が表示され、macOS では公証がないため xattr -cr を一度実行する必要があります。アプリにはフォントは含まれていません。

統合するフォントのライセンス順守はユーザーの責任です(OFL の Reserved Font Name は出力名に再利用できません)。

MIT ライセンスです。例としては D2Coding + JetBrains Mono(OFL)の組み合わせを使っています。統合できないフォントや不自然になる組み合わせに遭遇したら、Issue で知らせていただけるとありがたいです。

まだコメントはありません。

まだコメントはありません。