ttfmodは、TrueTypeやOpenType規格のフォントに含まれる情報を解析し、表示、編集するユーティリティーです。
まだ作業を始めて日が浅いため、未実装の機能が大量にあります。作者が欲しいと思うものから順次、実装予定です。
作業を始めるためにはまず、フォントファイルを読み込む必要があります。ttfmodがすでに起動しているなら、"ファイル|フォントファイルを開く"メニューから任意のフォントファイルを選択します。まだ起動していない場合はフォントファイルのアイコンをttfmodのアイコンにドラッグ&ドロップします。
一応、TrueType(Windows用、拡張子ttf)とOpenType(拡張子ttf、otf)に対応していることになっています。
フォントファイルを正しく読み込むと、ウインドウ左側のツリーにファイル名のついたアイコンが表示されます。"+"をクリックするとそのフォントに含まれるテーブルの一覧が現れます。テーブルは、フォントの情報を機能ごとに分類したひとまとまり、のように考えればよいでしょう。
各テーブルの名前かアイコンをクリックすると、右側にその内容が表示されます。体裁はテーブルごとに異なりますので、詳細は後の節を参照してください。
ttfmodには一部の情報を編集する機能があります。編集が終わった後は必ず"ファイル|書き出し"メニューにて編集結果を保存してください。この場合、オリジナルのファイルに上書きすることは避け、新しいファイルを作成することを強くお勧めします。また、編集後のフォントファイルをオリジナルの著作権者に無断で再配布してはいけません。
現在のバージョンでサポートしているテーブルは次に挙げるものだけです。他のテーブルを選択しても、内容は表示されません。
OS/2テーブルには多くの情報が格納されていますが、それら全てに対応しているわけではありません。
「埋め込み許可状態」欄には、フォントをドキュメントに埋め込む際の制限が表示されています。一番厳しいのが「制限ライセンス」で、この場合は事実上フォントを埋め込むことはできません。「表示・印刷可能」となっているフォントは、表示または印刷されることを目的としたドキュメントにのみ埋め込みができ、そのフォントが埋め込まれたドキュメントは第三者が編集することはできません。「編集可能」となっているフォントが埋め込まれたドキュメントは、表示、印刷および第三者による編集が可能です。
「ベンダーID」欄には4文字のアルファベットを記入できますが、空欄になっているフォントもあります。現在登録されているベンダーIDのリストがMicrosoftのサイトにあります。
「ウエイト」は(ストロークの)太さを、「幅」は文字の幅を指定するものです。実際の外観に合った、適切な値を設定してください。これらの値がどうなっているかにかかわらず、書体のデザインがラスタライズ時に変更されることはありません。
このテーブルはCRT画面などの出力時に施されるヒンティング、スムージング処理の適用範囲をサイズで指定するものです。
表には、適用範囲の上限値と、ヒンティングおよびスムージングの有効/無効が表示されています。設定を変更するには、変更を加えたい行をダブルクリックします。設定ダイアログが表示されますので任意の値に変更し、設定ボタンを押してください。
現在のバージョンでは、範囲を追加・削除することはできません。既存の設定を変更することのみ可能となっています。
ttfmodはフリーソフトウェアです。ここでいうフリーとは、ソフトウェア(のソースコード)を使用し、変更し、または再配布できる自由について言及しています。ただし、改良のための変更はオリジナルに反映できるよう、フリーで公開されなければならず、その部分について特許などを利用し、ttfmodの自由を阻害するような行為をしてはいけません。ttfmodに変更を加えようとする際は、特に第3者が著作権等を保持している技術、アルゴリズム、ソースコードの使用に注意するようにしてください。
ttfmodは無保証です。構造的な不具合等があるかどうかにかかわらず、ttfmodを使用したことによる直接的、間接的損害に対し、開発に携わった者は一切の責任を負わないものとします。
Copyright(C)2000 Y.Yamakawa
ttfmodへの提案、不具合報告等はメールまたはParallelism裏庭内のゲストブックにお願いします。
提案の実現や不具合の改善はできるかぎり対応していくつもりではありますが、当方の技量や制作方針の違い等の理由により、皆さんの希望にそえない事も多々あるかと思います。その際はご了承ください。
当方としては、パッチを提供していただくのが一番助かります。せっかくのフリーソフトですので、ぜひ皆さんの力を生かしていただけるよう、お願いします。
fontObject::updateImage
が純粋仮想関数になっていなかったのを直した