font
Ricty
powerline

Rictyフォントの文字間隔を修正する

RictyフォントをWindowsで利用する

プログラミング用フォントRictyという素晴らしいフォントがあります。
Macではすんなり使えますが、Windowsだとなぜか文字間隔が広くなってしまいました。

また、Vimmerにとってきれいな環境を作ることは至上命題で、Powerlineフォントも入れたいので一緒に解決します。

なにがだめなのか

FontForgeで生成した日本語TrueTypeフォント文字幅広すぎ対策の方がすべて述べられてますが、fontforgeを通すと文字間隔が広がるようです。
Rictyフォントの作者の方もos2version_reviser.shという修正スクリプトを公開されていますが、自分の環境では効果がありませんでした。

環境を準備する

Linux, Mac, WSLなどで以下のプログラムを用意します

  • fontforge
  • fontforgeのpythonライブラリ
  • fonttools

自分はWindowsなので、WSLでUbuntu 18.04を入れて以下のコマンドでサクッとインストールしました。

$ sudo apt install fontforge python-fontforge fonttools

また、Powerlineフォントを作成する方はfontpatcherをcloneしておきます。

$ git clone https://github.com/powerline/fontpatcher

修正手順

Rictyのサイトの生成方法に従ってフォントを作成します。
その後、以下のスクリプトを使い、文字間隔を修正します。

#!/bin/bash

rm -f Ricty*.ttf Ricty*.ttx Ricty*.ttx.bak
sh ricty_generator.sh auto
if [ -f "fontpatcher/scripts/powerline-fontpatcher" ]; then
  for R in Ricty*.ttf; do
    python fontpatcher/scripts/powerline-fontpatcher "$R"
  done
fi
for P in Ricty*.ttf; do
  ttx -t OS/2 "$P"
  sed -i.bak -e 's,xAvgCharWidth value="940",xAvgCharWidth value="500",' "${P%%.ttf}.ttx"
  mv "$P" "${P%%.ttf}.orig.ttf"
  ttx -m "${P%%.ttf}.orig.ttf" "${P%%.ttf}.ttx"
done

完成

できあがったフォントをインストールして確認してみましょう。