その昔、【GVim】Proggy + Osakaで快適コーディングという記事を書いたのですが、当時から 2 年も経って Putty + Vim な環境もずいぶん変わりました。個人的にエポックメイキングと言えるのが次の 2 点です。
- Putty D2D/DW がリリースされた。
- SSH クライアント Putty の派生版です。特長は Windows7/8 上でのフォントレンダリングに DirectWrite を使用したものを選べることです。これにより、Windows においても(フォントさえ選べば)Mac 並みに美麗な表示が出来るようになりました。
- Ricty が公開された。
- プログラミング用としては決定版とも目されるフォントです。元から人気の高かった Inconsolata と M+ フォントを組み合わせ、更にいくつかのカスタマイズが施してあります。これで、日本語環境でも快適なターミナル環境が使えるようになりました。
両者を組み合わせることでお手軽に快適な環境が得られるわけですが、ここはもう少し踏み込んで自分好みの環境にしてしまいたいところです。
つまり何が言いたいかというと、
半角フォントはやっぱり Proggy Clean の方がかっこいい!
ってことです。そこで Ricty の半角フォントだけを Proggy Clean に置き換えてみました。誰得なんでしょうね? まさに俺得です。
Ricty の生成環境
そもそも Ricty の公式サイトではフォント自体の配布が行われていません。配布されているのはスクリプトと生成方法の書いたマニュアルのみです。
今回はスクリプトに修正を加え、さらに Inconsolata の代わりに Proggy Clean を使って生成してみます。
スクリプトの修正
生成スクリプトを以下のように修正しました。Proggy Clean は 12pt で使うことを想定されたフォントですので、この大きさに合うように修正しています。具体的には、
- フォント全体の高さを 80% 程度に縮める。(半角フォントの字形は変えない)
- 組み合わせる日本語フォントを 75% に縮小し、位置を修正。(Ricty では 91% に縮小している)
diff --git a/ricty_generator.sh b/ricty_generator.sh index fb212d6..797e9aa 100755 --- a/ricty_generator.sh +++ b/ricty_generator.sh @@ -38,8 +38,8 @@ ricty_familyname="Ricty" ricty_addfamilyname="" # set ascent and descent (line width parameters) -ricty_ascent=835 -ricty_descent=215 +ricty_ascent=640 +ricty_descent=160 # set bold width of ASCII glyphs ascii_regular_width=0 @@ -370,8 +370,8 @@ i = 0; while (i < SizeOf(input_list)) ClearInstrs(); UnlinkReference() if ("$scaling_down_flag" == "true") Print("While scaling " + input_list[i]:t + ", wait a little...") - SetWidth(-1, 1); Scale(91, 91, 0, 0); SetWidth(110, 2); SetWidth(1, 1) - Move(23, 0); SetWidth(-23, 1) + SetWidth(-1, 1); Scale(75); SetWidth(1, 1) + Move(-130, -100) endif RoundToInt(); RemoveOverlap(); RoundToInt() # save modified Migu 1M
fork して修正を加えた repository は以下のリンクから見られます。
delphinus35/Ricty
https://github.com/delphinus35/Ricty
生成実行!
生成は普通の Ricty の場合と全く同じです。その際、Inconsolata.ttf
の代わりに ProggyCleanSZBP.ttf
を引数に与える点だけが違います。フォント名は Ricty Proggy としました。
$ sh ricty_generator.sh -n Proggy ProggyCleanSZBP.ttf migu-1m-regular.ttf migu-1m-bold.ttf # 何これ? Inconsolata じゃないよ? という警告が出るけど無視する。 $ sh misc/os2version_reviser.sh RictyProggy-Regular.ttf $ sh misc/os2version_reviser.sh RictyProggy-Bold.ttf # 間延びしたフォントにパッチを当てる
Windows で生成する場合は cygwin と fontforge のセットアップが必要になります。この辺は以前書いた記事を参考にしてください。
【Vim】Powerline でリッチなステータスラインを使う – blog.delphinus.dev
https://blog.delphinus.dev/2012/01/vim-powerline.html
後は完成したフォントをダブルクリック → インストールするだけです。
Putty D2D/DW の設定
Putty の方でもこのフォントを DirectWrite でレンダリングするように設定しましょう。
- 【Window】→【Font】
-
- 半角フォント: Ricty Proggy 12pt
- 全角フォント: なし
- fallback フォント: メイリオ 10pt
- 【Window】→【Anti-aliasing】
-
- Anti-aliasing settings: ClearType
- Rendering mode settings: Symmetric
- Gamma Level: 1800
- Enhanced Contrast: 100
- ClearType Level: 100
スクリーンショット
ソースファイルを表示するとこんな感じです。TTF フォントで一応 ClearType も効いてるのにかっちりした感じが好きです。
日本語はこんな感じ。Ricty の特長である、濁音と半濁音の区別がいい感じですね。
これから……
スクリーンショットを見て気付かれたと思いますが、実際には今回の Ricty Proggy の合成には Powerline パッチを当てたものを使っています。この特殊な字形が少し行からはみ出ちゃうんですよね。何とかならないかな。
ちなみに、iTerm2(Mac OS X)で使うとこんな感じです。行間がきっちり詰まっているので見づらいかもしれませんが、Macbook Air 11inch だとこれで丁度いい情報量になります。