Feed on
Posts
Comments

月2回のような、そうでもないようなペースで更新しているさわらびゴシックですが、約ひと月ぶりに更新しました。まぁ本人は月2回でやっていこうと思っていたりはするのですが、いい加減なのでそうもいかないのです。

残りの教育漢字の数は68です。

今回は縦書き用のグリフも少し追加したのですが、うまく機能しているのかしてないのか。どうも、機能しない環境もあるようです。そもそも縦書きがどうやって実現されているのか、あまりよく分かっていないんですよ。(昔の?)Windows なんかだと、なんでも「@」がアタマに付いたフォントファイルが縦書き用、とかいうウワサを聞いた記憶がありますが、Linux 向け界隈のフリーフォントで同じことをやっている人もいないみたいなので、どうなんでしょうね。

よく分かってないのですが、私は FontForge を使って、だいたい次のような感じの操作で縦書きグリフを設定しました。

[1] スロットの追加 まず、縦書き用グリフを格納するために「スロット」というのを適当に用意します。スロットって何?と思った人も、実際にやってみればわかると思います。操作は「エンコーディング」メニューから「エンコーディングスロットを追加」。追加するスロットの数を指定すると、指定した数だけ「スロット」が末尾に増えます。(増えたでしょ?)ちなみに、追加したスロットを削除したい場合は「エンコーディング」メニューから「未使用のスロットを削除」を選べば OK。

[2] グリフ名の変更 追加されたスロットには、適当なグリフ名がついています。グリフ名を確認するには、スロットを選択して、「エレメント」メニューから「グリフ情報」(Glyph Info)を選択。グリフ情報のパネルが現れますから、左側のメニューから一番上の「Unicode」を選択し、右側の「グリフ名」の欄を確認します。

この欄に直接入力してグリフ名を変更します。グリフ名の命名の仕方自体に特別な意味があるのかないのかよくわかりませんが、一般的に(ということなのか?)横書き用のグリフ名に「.vert」を追加したのが縦書き用のグリフ名です。たとえば、小書きの「あ」(つまり「ぁ」)の場合、横書き用グリフの名前が「uni3041」でしょうから、縦書き用は「uni3041.vert」となります。

[3] グリフの作成 スロットの準備ができたので、グリフを作成します。小書きの「あ」のように、グリフの位置を移動させるだけの場合、「参照」を使うと便利かもしれません。横書き用のスロットを開いて全体を選択して「編集」メニューから「参照をコピー」。縦書き用のスロットにペーストして、貼り付いたイメージを移動させます。ただし、パスには正しい方向というのがあります。正しい方向と言っているのは、基本的にパスは時計回りに描かれなければいけないというルールのことを言っています。このルールがあるので、ペーストした参照を回転させるなどの操作を加えた場合、パスの方向が正しいかどうか気をつけなければいけません。

[4] グリフ置換スクリプトの追加 OpenType フォントには、GSUB テーブルというのがあります。GSUB というのは「グリフ置換(Glyph SUBstitution)」のことで、その名のとおりグリフの置き換えをしてくれるというものです。

GSUB のスクリプトには、いくつか種類があるので、まず使うスクリプトを登録(?)します。「エレメント」メニューから「フォント情報」を選択し、フォント情報のパネルを表示させます。左側のメニューから「lookups」を選択し、GSUB のタブを選択します。そして、右側のボタンから「Add Lookup」ボタンを押します。すると、Lookup を設定するダイアログが出てきます。

今回追加する置換は「単純置換(Single Substitution)」なので、「種類」のコンボボックスは「Single Substitution」を選択します。で、その下にある表は、「機能」欄の「<New>」をクリックして「縦書き字形【廃止】」を選択します(vert ってヤツです)。っていうか、「廃止」って書いてあるけど、ホントにこれでいいんですか? よくわかりませんが、みんなそうしているみたいなので、とりあえず右に倣えということで……。

なお、この GSUB スクリプトの追加は、フォント自体に行う操作なので、一度やれば OK です。

[5] グリフ置換を設定 具体的なグリフを指定して、グリフの置換設定を行います。横書き用のグリフのスロットを選択し、「エレメント」メニューから「グリフ情報」(Glyph Info)を選択し、現れたグリフ情報パネルの左側のメニューから「置換」(Substitution)を選択します。右側のテーブルの「<新しい置換>」をクリックして、「’vert’ 縦書き字形【廃止】…」を選び(初回はダイアログが出てくるのでOKする)、右隣のセル(「Replacement Glyph Name」の欄)に縦書き用のグリフ名を指定します。

……というような要領で、必要なだけグリフを作って置換設定すれば、それで完了……なんじゃないかと思うんですが、違っているかも。何かご存知の方、いらっしゃいましたら、情報ください。

ちなみに、GSUB テーブルは OpenType の機能なので、出力するフォントは TrueType ではダメなんじゃないかと思います。拡張子を ttf にするにせよ、OpenType の仕様でフォントを出力することになるのではないか、と思います。OpenType の仕様で出力するには、「ファイル」メニューから「フォントを出力」を選択した際に出てくるダイアログで、「オプション」ボタンをクリックします。そこに「OpenType の仕様」というのがあるので、それにチェックを加えます。

Leave a Reply