2013年3月11日月曜日

ターミナルのフォント

今までsshのターミナルにはTeraTermを使い続けてきましたが最近ふとしたところからputtyを使う様になりました。別にTTSSHに何か不満があったわけでもないんですけど、本当になんとなくです。(ふと昔一緒に仕事していた会社のIT管理をしていた人が熱狂的なputtyユーザーだったのを思い出しただけ)

っとこれは実は今回のエントリーの本題では無くて・・・本題はフォントの話デス。

そのputtyのフォント設定をなんとなくTerminalにしていたんですが、これが最近の安ノートPCの液晶(WXGA1366x768)であれば特に問題無かったのですが職場の24インチ1920x1200のモニタだと10ptでは小さすぎる、次のサイズの14ptではデカすぎるとイマイチ勝手が良くない。

というわけで代替えフォントを探す事にしました。少しググるとこんな記事が。

http://d.hatena.ne.jp/shibason/20100902/1283424768

ここに紹介されているInconsolataをためしに入れてみるとナカナカ良い感じに見える。ただし記事にも書かれている様に日本語のフォントは入っていないので日本語を含んだ表示をすると残念なことになります。(昔昔680x0系のMacにNetBSD + X-Windowを入れてなんとか日本語化したなんて時代を思い出す感じですな)



こんな感じ。かといってここに書かれているFontLinkを使用する方法はレジストリをいじるのでなんとなくやりたくない。(別に問題になる根拠はないんだけど)

じゃー、もともとソースが公開されているフォントだし自分でマージして1フォントとして用意されている方が楽だし後で別の環境で使う場合も気兼ねなく使えるじゃないという事でFontForge関連をパラパラ見ていたらやはり同じことを考えた人がいて作っている人がいました。

http://save.sys.t.u-tokyo.ac.jp/~yusa/fonts/rictydiminished.html

で、試しに入れてみたんですが



なんか同じデータのはずなのに素のInconsolataとは印象が違いますネ・・・。eとかの上部が欠けていたりしてなんとなく気持ち悪い。あと、なんとなく元の方が線が太かった気がするんですがboldを指定すると太すぎるしバランスが・・・。不思議なもんですな。

これだけではネタとしてアレなので無印Rictyさんを自前環境で作ってみる事にします。FontForgeのWindows版はなんか色々面倒臭そうな雰囲気だったので、丁度別用途の為に作ってあったUbuntu環境で生成してみます。基本ドキュメントに書いてある通りなのでここを見る必要はないハズです。

$ sudo aptitude install fontforge

でサクッとFontForgeをインストール。

お次はフォントデータ及び変換スクリプトを入手しましょう。

$ wget http://www.levien.com/type/myfonts/Inconsolata.otf
$ wget 'http://sourceforge.jp/frs/redir.php?m=jaist&f=%2Fmix-mplus-ipa%2F57240%2Fmigu-1m-20121030.zip'
$ wget https://github.com/yascentur/Ricty/archive/3.2.1.zip

リンクは今現在のリンクなんで変わってたら適当に読み替えてね。sourceforgeの方はURLを''でくくるのを忘れるとぷんぷんする事になりますよ。

圧縮されているものは展開してインストール。とりあえずUbuntuは全ユーザで使える様にフォントを入れるには/usr/local/share/fonts/にコピーすれば良いらしい。

$ mv redir.php\?m\=jaist\&f\=%2Fmix-mplus-ipa%2F57240%2Fmigu-1m-20121030.zip migu-1m-20121030.zip
$ unzip migu-1m-20121030.zip
$ sudo cp migu-1m-20121030/migu-1m*.ttf /usr/local/share/fonts/

$ sudo cp Inconsolata.otf /usr/local/share/fonts/

$ unzip 3.2.1.zip


そして変換開始。

$ cd Ricty-3.2.1/
$ sh ricty_generator.sh auto

しばしほっておくと「Ricty-Regular.ttf」と「Ricty-Bold.ttf 」等が出来上がっているのですがWindowsに入れてみると字間が凄い事になっています。 大分前に発覚している不具合らしいんですが未だに直ってないっぽいですね。というわけで

$wget https://raw.github.com/yascentur/Ricty/3.2.1/misc/os2version_reviser.sh

こちらのスクリプトを使用して変換してやりましょう。具体的にはOS/2バージョンとやらを4から1にするらしいのですが意味はサッパリわかりませんw FontForge上で手動でやってもOKの様です。

$ sh os2version_reviser.sh Ricty-*.ttf RictyDiscord-*.ttf


これで出来た物をWindows側にもってきたら終了です。

よくよく作者さんのページを読み直してみるとWindows環境では文字が小さい時に綺麗に表示されない(文字が欠ける)という事は書かれていましたね。というわけでついでにサイズを13pt(リストには13無いけど手入力で)にして色を上のサイトに書いてあるのを真似して調整してみました。



良い感じですな!しばらくはこれでいってみましょう。

しかしなんだ。もしかしてこれより小さい文字で使う場合はMigu 1Mを素のまま使った方が幸せだったりする!?ショボイ液晶のノートとかだとこのサイズデカすぎるしなぁ。




追伸

ついでと言ってはなんですがこのRictyのスクリプトを使用してTakaoゴシックとの混合版も作ってみました。

$ ./ricty_generator.sh -n takao ../Inconsolata.otf ../takao-fonts-ttf-003.02.01/TakaoGothic.ttf ../takao-fonts-ttf-003.02.01/TakaoGothicS.ttf
$ sh os2version_reviser.sh Rictytakao-*.ttf RictytakaoDiscord-*.ttf

前に書いたautoの時は勝手にインストール済みのフォントから拾ってきたみたいですが、こちらの書き方はソースになる実フォントファイルのパス指定になる様です。適当に読み替えて下さい。一番最後の指定ってbold用のフォント指定らしいのですが最終的にインストールしないので適当です。