プログラミング用フォント Ricty

概要

Ricty(リクティ)は Linux 環境での研究・開発を想定したプログラミング用フォントです。テキストエディタやターミナルエミュレータ、プログラミング言語やマークアップ言語に対する使用に適しています。InconsolataMigu 1M の合成、および、プログラミング用フォントとしてのいくつかのチューニングを行う生成スクリプトを配布しています。Inconsolata 作者の Raph Levien 氏、Migu 1M 作者の itouhiro 氏、M+ M Type-1 作者の coz 氏、IPA ゴシックのベースとされている TB ゴシック作者の林隆男氏、私のイニシャルから Ricty と命名しました。

また、JIS 第二水準の漢字が不足している姉妹フォント Ricty Diminished はフリーな TrueType フォントを配布しています。

Ricty screenshot of C Ricty screenshot of HTML

ハイライト

  • ラテン文字には Inconsolata が適用されます。
  • それ以外の文字には Migu 1M が適用されます。M+ M Type-1 の美しいグリフと IPA ゴシックの JIS 第四水準漢字、そして、Migu 1M の判読性の高い和文文字(半濁音など)が使用できます。
  • 半角文字と全角文字の横幅の比が 1:2 に調整されています。
  • 全角スペースが可視化されます。
  • いくつかの全角グリフが対応する半角グリフと差別化されています。
  • en ダッシュ、em ダッシュが破断線のようになります(LaTeX での入力ミス防止のため)。

派生フォント Ricty Discord

Ricty では、調和・統一感の維持のため、プログラミング用フォントのコアである Inconsolata 由来の ASCII 文字に手を入れないようにしています。一方、Discord(不協和音)版は、判読性向上のため、調和・統一感を犠牲にして以下の ASCII 文字に手を入れた Ricty の派生フォントです。

"
ダブルクオートを拡大する。
'
クオートを拡大する。
*
アスタリスクをやや下方に移動する。
+
プラスをやや下方に移動する。
,
コンマを拡大する。
-
ハイフンをやや下方に移動する。
.
ピリオドを拡大する。
0
0 をドットゼロ(Inconsolata の不使用グリフ)にする。
7
7 にクロスバーを付ける。
:
コロンを拡大する。
;
セミコロンを拡大する。
< および >
不等号をやや下方に移動する。
=
等号をやや下方に移動する。
D
D を Eth にする(D にクロスバーを付ける)。
Z
Z にクロスバーを付ける。
^
サーカムフレックスを拡大する。
`
グレイブを拡大する。
l
l の左下のセリフを切り落とす。
r
r をセリフ体(Inconsolata の不使用グリフ)にする。
z
z にクロスバーを付ける。
|
縦線を破断線にする。
~
チルダを上方に移動する。
Ricty Discord screenshot of C Ricty Discord screenshot of HTML

ライセンス

  • Ricty 生成スクリプトは二条項 BSD ライセンスに従うものとします。
  • Ricty 生成スクリプトにより生成されたフォントは SIL Open Font License (OFL) Version 1.1 および IPA Font License Agreement v1.0 に従うものとします。特に、OFL 1.1 Section 5 に従い、生成されたフォントの再配布は禁止とします。

ダウンロード

ricty_generator.sh
Ricty 生成スクリプト
os2version_reviser.sh
生成されたフォントの文字間隔が不自然に大きくなったときにフォントを修正するスクリプト

生成方法

  1. FontForge Open Source Font Editor やパッケージマネージャから FontForge をインストールします。
  2. Google Fonts Inconsolata(リリース)もしくは GitHub google/fonts/ofl/inconsolata(アップストリーム)から Inconsolata(2.000 以降)を入手します。
  3. M+ と IPA の合成フォントから Migu 1M(2015.0712 以降)を入手します。
  4. Ricty 生成スクリプトを以下のように実行します。
% ./ricty_generator.sh auto

もしくは

% ./ricty_generator.sh Inconsolata-{Regular,Bold}.ttf migu-1m-{regular,bold}.ttf

Ricty 生成スクリプトのオプション

使用法

ricty_generator.sh [オプション] auto
ricty_generator.sh [オプション] Inconsolata-{Regular,Bold}.ttf migu-1m-{regular,bold}.ttf

オプション

-h
ヘルプを表示する。
-V
バージョン番号を表示する。
-f /path/to/fontforge
fontforge コマンドのパスを指定する。
-v
fontforge の警告メッセージを表示する。
-l
生成の過程で生じる中間ファイルを削除せずに残す。
-n string
フォントファミリ名を「Ricty」ではなく「Ricty ○○○」として生成する。
-w
行間を広くする。
-W
行間をかなり広くする。
-Z unicode
他のグリフのコピーすることで全角スペースを可視化する(たとえば -Z 2668 とすると、全角スペースが ♨ になる)。
-z
全角スペースを可視化しない。
-a
Inconsolata のグリフを優先し、Ambiguous 文字を全角化しない。
-s
Migu 1M のグリフを縮小しない(-w オプションとの併用を推奨)。
-d characters
Ricty Discord で Discord 化しない文字を指定する(たとえば "7DZz""\"\`")。

バージョン

最新版

4.1.1(2017 年 12 月 3 日)

  • 斜体生成スクリプトの Ricty 生成スクリプトへの統合

4.1.0(2016 年 12 月 30 日)

  • Ricty Discord 生成スクリプトの Ricty 生成スクリプトへの統合
  • Inconsolata 2.000 対応

4.0.1(2016 年 1 月 28 日)

  • ヒンティング情報の付与

4.0.0(2015 年 12 月 31 日)

  • Inconsolata.otf から Inconsolata-Regular/Bold.ttf への切り替え
  • Inconsolata をボールド化するオプションの廃止

3.2.4(2014 年 12 月 7 日)

  • ライセンス変更(public domain → 二条項 BSD)

3.2.3(2014 年 5 月 4 日)

  • ASCII グリフのボールド体の太さの変更(以前の太さにするときは -b

3.2.2(2013 年 6 月 9 日)

  • 全角括弧を半角括弧と差別化

3.2.1(2012 年 11 月 6 日)

  • M+ FONTS LICENSE 記述の除去(Migu 1M の更新に追従)
  • いくつかの環境で等幅でなくなる問題に対処
  • em ダッシュ処理の修正

3.2.0(2012 年 4 月 16 日)

  • 行間の調整
  • コマンドラインオプションの追加

3.1.3(2011 年 11 月 24 日)

  • Ricty Discord のコマンドラインオプション
  • コマンドラインオプションの追加

3.1.2(2011 年 10 月 3 日)

  • Migu 20111002 に同期(後方互換を担保せず)
  • コマンドラインオプションの追加

3.1.1(2011 年 7 月 8 日)

  • コマンドラインオプションの追加

3.1.0(2011 年 6 月 19 日)

  • Mac OS X で Regular と Bold が異なる高さで表示される問題に対処

3.0.2(2011 年 6 月 2 日)

  • 生成スクリプトへの auto オプションの追加

3.0.1(2011 年 5 月 20 日)

3.0.0(2011 年 5 月 17 日)

  • 生成スクリプトの配布開始
  • TrueType フォントの配布中止

既知の問題

  • Ricty Discord の 0r が異なるグリフになることがあります。Inconsolata や Migu 1M のバージョンが合っていないことが原因です。
  • 半角文字と全角文字の横幅比が 1:2 にならないことがあります。ピクセル値(px)が偶数でないとき、どのフォントでも起こりうる問題です。一般的な 96 DPI のフォントレンダリングでは 9 pt、10.5 pt、12 pt、13.5 pt、15 pt など、1.5 の倍数を指定すると 1:2 で表示されます。