プログラミング用フォント Ricty
お知らせ
Ricty および Ricty Diminished は、2010 年代前半には欧文・和文合成プログラミング用フォントとして先駆的でしたが、現在は前時代的な存在となっています。不具合もいくつか確認されています。良質なプログラミング用フォントが数多く登場していますので、それらの利用をおすすめします。
序文
Ricty(リクティ)は Linux 環境での研究・開発を想定したプログラミング用フォントです。テキストエディタやターミナルエミュレータ、プログラミング言語やマークアップ言語に対する使用に適しています。Inconsolata と Migu 1M の合成、および、プログラミング用フォントとしてのいくつかのチューニングを行う生成スクリプトを配布しています。Inconsolata 作者の Raph Levien 氏、Migu 1M 作者の itouhiro 氏、M+ M Type-1 作者の coz 氏、IPA ゴシックのベースとされている TB ゴシック作者の林隆男氏、私のイニシャルから Ricty と命名しました。
また、JIS 第二水準の漢字が不足している姉妹フォント Ricty Diminished はフリーな TrueType フォントを配布しています。
ハイライト
- ラテン文字には Inconsolata が適用されます。
- それ以外の文字には Migu 1M が適用されます。M+ M Type-1 の美しいグリフと IPA ゴシックの JIS 第四水準漢字、そして、Migu 1M の判読性の高い和文文字(半濁音など)が使用できます。
- 半角文字と全角文字の横幅の比が 1:2 に調整されています。
- 全角スペースが可視化されます。
- いくつかの全角グリフが対応する半角グリフと差別化されています。
- en ダッシュ、em ダッシュが破断線のようになります(LaTeX での入力ミス防止のため)。
派生フォント Ricty Discord
Ricty では、調和・統一感の維持のため、プログラミング用フォントのコアである Inconsolata 由来の ASCII 文字に手を入れないようにしています。一方、Discord(不協和音)版は、判読性向上のため、調和・統一感を犠牲にして以下の ASCII 文字に手を入れた Ricty の派生フォントです。
手を入れた ASCII 文字
"
- ダブルクオートを拡大する。
'
- クオートを拡大する。
*
- アスタリスクをやや下方に移動する。
+
- プラスをやや下方に移動する。
,
- コンマを拡大する。
-
- ハイフンをやや下方に移動する。
.
- ピリオドを拡大する。
0
- 0 をドットゼロ(Inconsolata の不使用グリフ)にする。
7
- 7 にクロスバーを付ける。
:
- コロンを拡大する。
;
- セミコロンを拡大する。
<
および >
- 不等号をやや下方に移動する。
=
- 等号をやや下方に移動する。
D
- D を Eth にする(D にクロスバーを付ける)。
Z
- Z にクロスバーを付ける。
^
- サーカムフレックスを拡大する。
`
- グレイブを拡大する。
l
- l の左下のセリフを切り落とす。
r
- r をセリフ体(Inconsolata の不使用グリフ)にする。
z
- z にクロスバーを付ける。
|
- 縦線を破断線にする。
~
- チルダを上方に移動する。
ライセンス
ダウンロード
ricty_generator.sh
- Ricty 生成スクリプト
os2version_reviser.sh
- 生成されたフォントの文字間隔が不自然に大きくなったときにフォントを修正するスクリプト
生成方法
- FontForge Open Source Font Editor やパッケージマネージャから FontForge をインストールします。
- Google Fonts Inconsolata(リリース)もしくは GitHub google/fonts/ofl/inconsolata(アップストリーム)から Inconsolata(2.000 以降)を入手します。
- M+ と IPA の合成フォントから Migu 1M(2015.0712 以降)を入手します。
- 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"
、"\"\`"
)。
バージョン
- 斜体生成スクリプトの Ricty 生成スクリプトへの統合
- Ricty Discord 生成スクリプトの Ricty 生成スクリプトへの統合
- Inconsolata 2.000 対応
- Inconsolata.otf から Inconsolata-Regular/Bold.ttf への切り替え
- Inconsolata をボールド化するオプションの廃止
- ライセンス変更(public domain → 二条項 BSD)
- ASCII グリフのボールド体の太さの変更(以前の太さにするときは
-b
)
- M+ FONTS LICENSE 記述の除去(Migu 1M の更新に追従)
- いくつかの環境で等幅でなくなる問題に対処
- em ダッシュ処理の修正
- Ricty Discord のコマンドラインオプション
- コマンドラインオプションの追加
- Migu 20111002 に同期(後方互換を担保せず)
- コマンドラインオプションの追加
- Mac OS X で Regular と Bold が異なる高さで表示される問題に対処
- 生成スクリプトの配布開始
- TrueType フォントの配布中止
既知の問題
- Ricty Discord の
0
、r
が異なるグリフになることがあります。Inconsolata や Migu 1M のバージョンが合っていないことが原因です。
- 半角文字と全角文字の横幅比が 1:2 にならないことがあります。ピクセル値(px)が偶数でないとき、どのフォントでも起こりうる問題です。一般的な 96 DPI のフォントレンダリングでは 9 pt、10.5 pt、12 pt、13.5 pt、15 pt など、1.5 の倍数を指定すると 1:2 で表示されます。