読者です 読者をやめる 読者になる 読者になる

@uents blog

Code wins arguments.

IPAフォントから埋め込みビットマップフォントを除去する

IPAフォントが一般ユーザー向けにも正式に配布されたので、使ってみることにした。

ただし、12pt/14pt/16ptに関してはビットマップフォント、それ以外はアウトラインフォントが埋め込まれているので、WindowsでClearTypeを有効にしていても、フォントサイズの設定によってはスムージングがかからなかったりする。用は、フォントサイズで12pt/14pt/16ptを選んだときはギザギザなってしまうってわけ。

というわけで、埋め込みビットマップフォントを下記のサイトに基づいて除去してみる。

必要なもの


手順

'IPA ゴシック'を例に書いています。実際は、これと同様の事を他のフォントでも行います。
(1) SBIT32で埋め込みビットマップを除去
以下のような3つのファイルをあらかじめ用意しておき、

C:\work>more 12.txt
PPEM 12
END

C:\work>more 14.txt
PPEM 14
END

C:\work>more 16.txt
PPEM 16
END

以下の手順で、12pt/14pt/16ptの埋め込みビットマップフォントを削除していく。

C:\work>SBIT32 -d ipag.ttf 12.txt tmp.ttf

C:\work>SBIT32 -d tmp.ttf 14.txt tmp1.ttf

C:\work>SBIT32 -d tmp1.ttf 16.txt ipag00201nb.ttf

(2) ttfmodでヒンティング・スムージングを有効に
ttfmodでipag00201nb.ttfを開き、
  • ヒンティング ... あり
  • スムージング ... あり
に、サイズ8/サイズ16/サイズ∞の全てで変更する。

(3) ttfname3でフォント名を変更

オリジナルの'IPA ゴシック'とフォント名が衝突しないように、'00201NB'と付けて行く。
まずは、XML形式でフォント設定をファイルに抽出。

C:\work>ttfname3 ipag00201nb.ttf

'ipag00201nb.xml'というファイルができるので、それをエディタで開いて、

<!-- Family -->
<T n="3,1,0409,1">IPAGothic</T>
<T n="3,1,0411,1">IPAゴシック</T>

(中略)

<!-- UniqueIdentifier -->
<T n="3,1,0409,3">IPAGothic</T>
<T n="3,1,0411,3">IPAGothic</T>

<!-- FullName -->
<T n="3,1,0409,4">IPAGothic</T>
<T n="3,1,0411,4">IPAゴシック</T>

(中略)

<!-- PostscriptName -->
<T n="3,1,0409,6">IPAGothic</T>
<T n="3,1,0411,6">IPAGothic</T>

のフォント名に該当する部分の後ろに、'00201NB'を付記する。

<!-- Family -->
<T n="3,1,0409,1">IPAGothic00201NB</T>
<T n="3,1,0411,1">IPAゴシック00201NB</T>

(中略)

<!-- UniqueIdentifier -->
<T n="3,1,0409,3">IPAGothic00201NB</T>
<T n="3,1,0411,3">IPAGothic00201NB</T>

<!-- FullName -->
<T n="3,1,0409,4">IPAGothic00201NB</T>
<T n="3,1,0411,4">IPAゴシック00201NB</T>

(中略)

<!-- PostscriptName -->
<T n="3,1,0409,6">IPAGothic00201NB</T>
<T n="3,1,0411,6">IPAGothic00201NB</T>

編集したXMLファイルとTTFファイルをまとめてttfname3にドラッグ&ドロップすると、新しいフォント'ipag00201nb_mod.ttf'ができる。そのフォントをインストール。詳しくは、引用元を見て

配布

特に規約違反でなければこのブログで配布してもいいんですが、どうなんでしょうか? > 誰か詳しい方がいらっしゃれば教えて下さい。

結果

アンチエイリアシングがしょぼいWindowsにしては、結構がんばってるんじゃないかな。ただし、12ptを指定するとカタカナの'ア'がちょっとおかしくなったりとかはする。
丸っこいメイリオと比べてると字形がシャープなので、1024×768の解像度しか出ない僕のLet's noteではハッキリと映って見やすくなった気がします。長く使えそうです。

引用元

Pyon's Diary - 新 IPA フォントからビットマップを取り除いた