更新:2013/05/19←往復ハガキに印刷を合成フォントを作ろう!アルファベットフォントは数も多く気に入ったフォントがあるのに、漢字フォントに含まれるアルファベット部分がどうも気にくわない、あるいは、バランスが悪い、種類がすくないと思ったことはありませんか?FontPatchin'等を使えば漢字とアルファベットに別々のフォントを割り当てることができますが、ソフトに頼りたくない(コンフリクトが心配、処理が重い)とか、アルファベットと漢字に違うポイント数のフォントを割り当てたいということもあります。実は、ここを見ていただければフォントの作り方がほとんど分かってしまいます。おしまい......ってやってしまうと身も蓋もありません(^_^;)ので、ここではもう少し具体的に合成フォントの作り方に絞ってちょっと説明したいと思います。ここで扱うのはbitmapフォントのみで、truetypeフォントは含みませんのでご了承ください。ベースにするアルファベットフォントをコピーします。私の場合、NewYorkフォントが好きなので、NewYorkフォントで話をします。Plus"とか適当な名前にします。そのコピーを例によってResEditで開きたいわけですが、コピー元のフォントがFontsフォルダに入ったままだと修正中に画面が乱れてハングしたりしますし、日本語が有効な環境で日本語フォントを弄ったりすると、これまたシステムがおかしくなることがあります。外す等)立ち上げ直します。#まぁ、日本語環境を切ってしまうとこの文章も読めなくなってしまいますが、プリントするなりなんなりしておいてください(^_^;さて、いよいよ修正にはいるわけですが、まずResEditで不要なTrueTypeフォントであるsfntリソースを削除します。Info"を使ってIDとNameを変更します。FONDリソースのIDとNameは非常に重要ですから良く考えてつけてください。IDは日本語bitmapフォントの場合、16384〜16639でなければなりません。他の日本語フォントのIDとぶつからないことが理想ですが、万一ぶつかった場合は立ち上げ時にシステムが調停してつけ直してくれるはずですから、まぁ、大丈夫ではあると思います。ID16384は大阪フォントに割り当てられて、システムフォントとして使われていますから、避けておいてください。ここでは16622とします。次に、Nameですが、これは他のフォント名と絶対ぶつからない名前にしてください。ぶつかった場合どのような事態になるかは分かりません(^_^;。このNameはフォントファイル名と違っていても構いませんが、合わせておいたほうが分かりやすくて良いと思います。ここで設定されたNameがエディタなどのフォント設定で一覧表示される名前になります。今度はFONDリソースの中身の変更です。IDと同じ値(16622)に設定します。entries"の中からいらないサイズの設定を削除します。多くのフォントサイズを残しておいても修正が大変ですから、例えば、9,10,12,14ポイント以外の項目を削除することにします。*****"等の表示をクリックしておいてCutすればできます。フォントサイズが0のものはTrueTypeフォントの指定ですから必ず削除してください。IDを覚えておいてください。IDは31216,8047,26369,14074になっていると思いますから、31217,8048,26370,14075とでも変更しますいよいよ、フォントそのものの変更です。IDに対応するIDを持つ項目以外の項目を削除します。9,10,12,14ポイントのものを残したとすると31216,8047,26369,14074が残ることになります。IDと同じIDにします。IDも他のフォントのものとぶつかっていても大丈夫なはずですが、念のため変更しておいてください。ここからはフォントそのものを弄りますから、慎重に行ってください。システムが壊れることはないとおもいますが、下手をすると今までの修正の苦労が水の泡になるかもしれません(^_^;。ここらでいったんsaveしておいたほうがよいでしょう。他のサイズの修正方法もほとんど同じですから、9ポイントフォントを変更するとします。ID31216を開こうとすると警告が2回表示されますが、かまわずOKで開きます(^_^;。129(左下のASCIIが129)に移動します。移動方法で一番簡単なのは右側の中段に表示されているアルファベットをクリックしそれを左右にドラッグする方法です。129に移動したら、左の枠に表示されているビットマップデータを消します。消し方は色々ありますが、一番簡単なのは、右下段の点線枠ツールを使って文字データを囲み、Cutで切り取ることだと思います。文字データ下段に表示されている黒三角(▲)をドラッグして、Width(左下に表示されている数字の3つめ)を1にします。このとき(以降も同じですが)、左側に表示されている黒三角(ascent,descentを決めるもの)は絶対に動かさないでください。これを動かすと文字がまともに表示されない可能性が高いです。ここを長さが0〜15の横棒に変更します。131のLocationが16の倍数になるように設定すると表示が速いということですが定かではないです。Yorkフォントの9ポイント文字の場合は長さを2にするといいようです。ここからが本当に大事な変更です。ここを漢字フォントと同一サイズの黒四角(フォントストライク)に変更します。...といった、形になります(一部見えない人はごめんなさい)。Widthは黒四角の幅以上(今の例では8以上)にしてください。大きくすると間延びした変な感じ(漢字^_^;)になりますが..."漢字フォントのサイズなんてわからない!"という人のために、調べ方を後ほどお教えします。132〜159は131と同じ黒四角に変更します。131を点線枠で囲ってコピーし、132〜159にペーストするのが一番楽だと思います。224〜252はWidthが131と同じ空白に変更します。空白でなくても(黒四角でも)いいのではないかと思いますが、やったことがないので念のため...以上のように、フォントを変更するわけですが、言葉だけでは良く分からない人は、他の日本語フォントのスーツケースのNFNTリソースを開いて見て、比較しながらやって見てください。ResEditを終了し、作ったフォントをFontsフォルダに入れて再起動してください...えっ!「いったい漢字フォントはどこにあるんだ!」と御思いでしょうか?実は、丸漢ファイルの中には、"どの1byteフォントに対応しているか"を決めるためにFONDリソースのリソースIDを保持しています。ところが、新しく作った1byteフォントには、当然対応する丸漢ファイルは存在しません。この場合、Osakaフォントが使われることになっています。いうわけで、上の例でも漢字としては、Osakaフォントが使われることになります。IDを変更してやれば良いわけです。どこに書かれているのか?その前に、ちょっと丸漢ファイルのことについてちょっと書いておきたいと思います。System7.5(漢字Talk7.5)以降(だったと思う)の丸漢ファイルと、それより前の丸漢ファイルでは構造が違っています。7.5以前では丸漢ファイルの中に漢字ビットマップフォントそのものを持っていましたが、7.5以降では、漢字ビットマップフォントは対応するフォントスーツケースのsfntリソース(本来はTrueTypeフォントのリソース)に持っていて、丸漢ファイルの中には漢字フォントに関するいくつかの情報しか持っていません。このことは、丸漢ファイルのサイズを見れば、良く分かります。7.5以降の丸漢ファイルのサイズは数KBしかないのに、7.5以前では、数百KB〜数MBもあります。ID等を変更することができません。Appleからはfbitリソースのヘッダ部分の構造が公表されているので、これをもとにResEdit用fbitテンプレートを作ってみました。以下に置いておきます。(fbit_template.bin)です。ところが、このテンプレートはリソースが比較的小さい場合(64KB以下?)にしか使えません。7.5以前の丸漢ファイルにはほとんど使えないわけです。現在、7.5以前のシステムを使っている人は少ないでしょうから、許してください(^_^;。IDに書き換えれば、変更した丸漢ファイルに対応した漢字フォントを使うようになると思います。ちなみに、このテンプレートを使って表示されるHeightとWidthを見れば、対応する漢字フォントの大きさが分かります。Codeに変換して)そこを変更すれば良いと思います。1A(hex)になります。