はじめに

フォントが好きであれば、フォントの中身も気になりますよね。今回はフォントの中身を見る方法を紹介します。主にエンジニアに向けて。

OpenTypeとTrueType

よく見るフォント形式ですね。でもこれらはバイナリなので人には読めません。そのため人が読める形式に変換する必要があります。

ここではTTXとUFOの2形式を紹介します。

TTX

概要

TTXはフォントを扱うライブラリであるfontToolsに含まれる、OpenTypeとTrueTypeに互換のあるファイル形式兼ツールです。

TTXはXML形式で書かれているので、人でも読むことができます。

インストール

TTXはfontToolsの一部なので、fontToolsをインストールしなければなりません。

fontToolsはPythonのライブラリのためpip経由でインストールが行えます(Python、pipをインストールしてない人は先にインストールを行ってください)。コマンドは以下の通り。

pip install fonttools

使い方

フォントファイル(OpenTypeとTrueType)からTTXへ変換を行うには以下のコマンドを実行します(○○○.otfというファイルの例)。

ttx ○○○.otf

実行が完了(少し時間がかかります)すると、○○○.ttxというファイルが生成されます。これをテキストエディタ等で開くと膨大な量のXMLが出てきます。

ここにはフォントテーブルがそれぞれ人が読める形式で書かれており、編集も行うことができます。ただあまりにも長いので、もう少し見やすいテーブルごとの書き出しを行いたいと思います。

ttx -s ○○○.otf

これでテーブルごとにTTXファイルが書き出され、それぞれがより見やすくなりました。その他のオプションについてはttx -hで確認することができるので、確認してみてください。

またTTXからOpenTypeとTrueTypeへ戻すこともでき、こちらは単純に同じコマンドで

ttx ○○○.ttx

とすることで戻せます。

UFO

概要

Unified Font Objectです。未確認飛行物体ではありません。まだ足りない機能なども多いですが、個人的にはこの形式の方が人が読むのに向いてる気がします。

UFOはフォルダで構成されているので、各グリフが個別のファイルに保存されたりしています。そのため、1文字1文字をじっくりみたい時には読みやすいと思います。

インストール

こちらはTTXのように便利にまとまったツール群があるわけではないので主にRoboToolsのライブラリGoogleのufo2ft使用していくことになります。

必要に応じてライブラリをインストールしましょう。それぞれpipでインストールすることができます。

ちなみにGlyphsの書き出し形式としてもUFOを選択することができます。

おわりに

フォントの見た目ではなく、中身が気になった方は是非、じっくりと中までご覧ください。