Glyphs 2.3:Adobe-Japan1-3フォントの作成を試す

2016年11月11日

この例ではGlyphs 2.3を使用してAdobe-Japan1-3に対応した仮名フォントの作成方法を説明しています。仮名フォント程度の文字数であればAdobe-Identity-0を使用すれば良いですが、この例では敢えてAdobe-Japan1-3を選択しています。作成したフォントの中に収録されたグリフをAdobe-Japan1-3で決められた順序に並べるために色々と試した際のメモです。

この例では縦書き表示用の回転済みグリフをAdobe-Japan1-3で定めたれたCID番号に割り当てること、vrt2フィーチャーを使用して縦書き表示を行うアプリケーションに対応したフォントを作成することの2点を目的に説明しています。グリフ数の少ない仮名フォントで確認を行っているため、Adobe-Japan1-3のグリフを全て含んだフォントや、よりグリフ数の多いフォントを作成する場合はここで説明する方法をそのまま利用できない可能性がありますのであらかじめ了承ください。

この方法はGlyphs 2.3 (895)で確認したものであり、他のバージョンでは同様の結果が得られない可能性があります。各の設定については最低限の設定だけを行っています。そのためOSやアプリケーションによっては正しく動作しないなど問題があるかもしれません。また、筆者のGlyphs対する習得度が低いために手順に余計な手間がかかっている可能性もあります。各自の判断で有効と思う場合は自己責任で参考にしてください。

1)新規フォントの作成

説明の前半部分はGlyphsによる一般的な日本語フォントの作成手順と変わりません。この説明では主に設定に関して説明しています。入力項目の制限事項やグリフの作成方法など基本的な使用方法はGlyphsのハンドブックや他の説明を参考にしてください。

1-1)「ファイル」メニューから「新規フォント」を選択して「New Font」ウインドウを開いてください。
















1-2)「ファイル」メニューから「フォント情報...」を選択してフォント情報を開き、「フォント」タブ、「マスター」タブ、「インスタンス」タブの値を設定します。

「フォント」タブに以下の値を設定する





















ファミリー名
フォントファミリー名を英語で入力する

カスタムパラメーター
カスタムパラメーターの「+」を押して以下のプロパティと値を追加する

プロパティ:ROS
    値:Adobe-Japan1-3 を選択する

プロパティ:localizedFamilyName
    値:言語はJapaneseを選択してフォントファミリー名を日本語で入力する

「マスター」タブに以下の値を設定する




















アセンダー
日本語フォントの一般的な値である「880」を入力する

ディセンダー
日本語フォントの一般的な値である「-120」を入力する

「インスタンス」タブの値を設定する
単純に1つのフォントを作成するだけなら「インスタンス」タブにここで説明する値を設定する必要はなく、同じ値を「マスター」タブのカスタムパラメーターに設定すれば良いはずですが、「マスター」タブに設定すると縦書きの行間が入力した値どおりに設定されない問題があったため、ここでは「インスタンス」タブに設定しています。





画面下の「+」を押して「インスタンスを追加」を選択する





インスタンスに「Regular」が追加されたら以下の値を設定する
























カスタムパラメーター
カスタムパラメーターの「+」を押して以下のプロパティと値を追加します

プロパティ:typoAscender
    値:880

プロパティ:typoDescender
    値:-120

プロパティ:typoLineGap
    値:500

プロパティ:hheaAscender
    値:880

プロパティ:hheaDescender
    値:-120

プロパティ:hheaLineGap
    値:500

プロパティ:vheaVertAscender
    値:500

プロパティ:vheaVertDescender
    値:-500

プロパティ:vheaVertLineGap
    値:500

※AscenderとDescenderは一般的な日本語フォントの値を設定しています。LineGapはグリフの下部が切れない程度の値で自由に決めて良いですが、ここではOSXに付属のヒラギノ書体などが採用している値と同じ500を設定しています。

各タブの設定が終わったらフォント情報ウインドウを閉じてください。

1-3)フォントに含めるグリフを追加します。

サイドバーの「カテゴリー」にある「全て」を選択してください。新規フォントを作成した直後はフォントビューにプロポーショナルスペース , A-Z , a-z だけが追加されている状態です。















既に追加されているグリフをダブルクリックしてグリフの編集ビューを開いて各グリフを作成してください。

ここに無いグリフは「グリフ」メニューから「グリフを追加...」を選んで追加したり、サイドバーに用意されている「文字体系」などから追加してください。

例として「かな」セットを追加します。

サイドバーにある「文字体系」=>「和文」=>「かな」をcontrol+クリックし、「足りないブリフ」ポップアップが現れたら、command+Aで全ての項目を選択し、生成ボタンを押してください。


以下のように「かな」グリフが追加されるので、それぞれに対してアウトラインの作成を行ってください。グリフ幅はすでに全角を意味する1000が設定されているので変更せずにそのまま作成してください。


未定義グリフと全角スペースを追加します

未定義グリフ
未定義グリフはフォントの中に含まれないグリフを表示しようとしたときに現れる場合があります。現れるかどうかはアプリケーションやOSの仕様に依存します。Glyphsではデフォルトで以下の未定義グリフが用意されており、未定義グリフを追加しないと以下のグリフが使われます。


一般的な日本語フォントの未定義グリフは全角幅であり、上の未定義グリフは全角幅ではないので、以下のようなグリフを未定義グリフとして別に追加します。グリフ名は「.notdef」です。


全角スペース
全角幅のスペースはグリフ幅が1000の空白です。グリフ名は「space-han」です。

上記2つのグリフを追加します。「グリフ」メニューから「グリフを追加...」を選択し、現れた入力画面の中に「.notdef space-han」と入力して生成ボタンを押ます。「.notdef」と「space-han」は半角スペースで区切られていることに注意してください。

以下のように2つのグリフが追加されます。

追加された2つともグリフ幅を1000に変更してください。「space-han」は「space」をコンポーネントとして参照していますが、必要ないので「グリフ」メニューから「コンポーネントを分解」を選択して解除してください。「.notdef」には上に例としてあげたような全角幅に合わせた未定義グリフを作成してください。

この例では最終的に以下のグリフを作成しました。アルファベットの他にプロポーショナル幅の数字、約物、記号等も追加しています。なお、「かな」のうち一部のグリフは作成しなかったので、作成しなかったグリフは「グリフ」メニューの「グリフを削除」で一覧から削除しています。


※「文字体系」の「かな」を生成した時に追加された「voicedcomb-kana」と「semivoicedcomb-kana」はAdobe-Japan1-3の範囲外であるため、この例のようにAdobe-Japan1-3のフォントを作成する場合は必要ありません。フォントビューから削除するか、フォント出力時に含めないようにグリフのプロパティを変更する必要があります。これらのグリフも含めたいなら「ROS」をAdobe-Japan1-5またはAdobe-Japan1-6にすべきです。


全角幅の縦書き用グリフを追加します

日本語フォントの中には縦書き表示の時にグリフの形や位置が変わるものがあります。縦書き表示に対応するために縦書き用のグリフを追加します。縦書き用のグリフ名は、横書き用のグリフ名の後ろに「.vert」を付けます。

例えば横書き用の小さい「ぁ」のグリフ名は「asmall-hira」なので、これに対する縦書き用のグリフ名は「asmall-hira.vert」となります。

「グリフ」メニューから「グリフを追加...」を選択して、縦書き用のグリフ名(asmall-hira.vertのように横書き用のグリフ名に.vertを付けた名前)を入力して生成してください。追加したグリフに縦書き用のグリフを作成してください。この例では全角幅のグリフだけを追加するのでグリフ幅は全て1000で作成します。

この例では縦書き用のグリフとして以下を作成しました。

縦書き用の回転済みのグリフを追加します

Adobe-Japan1-3形式のフォントには縦書き表示用に時計回りに90度回転したグリフが含まれます。このグリフが無いと縦書きが正しく表示できないアプリケーションがあります。対象のグリフはプロポーショナルローマン、半角ローマン、半角ひらがな、半角カタカナなどがあります。縦書き用に回転したグリフの名前は、横書き用の名前の後ろに「.rotat」を付けます。

※「.vert」ではなく「.rotat」 であることに注意してください。Glyphsのハンドブックに記載されている「.vertical」「.vert」「Vertical」では「ROS」にAdobe-Japan1-3を指定しても回転済みのグリフが規定のCID番号に割り当てられないことを確認しています。

例えばプロポーショナルローマンの「A」の回転済みグリフの名前は「A.rotat」となります。

回転済みグリフを作成するには、例えば「A」の場合、グリフの追加で「A.rotat」を追加し、その中にコンポーネントとして「A」を追加、コンポーネントを-90度回転、X方向に120移動、Y方向に880移動すると一般的な回転済みグリフの位置となります。グリフ幅は1000に変更してください。高さには横書き用グリフのグルフ幅と同じ値を設定します。なお、後で説明するvrt2フィーチャーの設定が行われていれば、フォント出力時に高さを適切な値に設定してくれるようなので、高さが1000のままでも最終結果に影響しないようです。

以下は「A.rotat」に「A」をコンポーネントとして追加し、回転、位置、グリフ幅、高さを変更した状態です。

全ての対象グリフに対して同様の作業を行って回転済みクリフを作成してください。(グリフが多いので筆者はPythonマクロを作成して自動生成しています)

この例では縦書き用の回転済みグリフとして以下を作成しました。

1-4)フィーチャーを設定します

フォント情報の「フィーチャー」タブで字体切り替え等の情報を設定します。このフォントの場合は最低限縦書き表示のためのフィーチャーが必要なのでそれを設定します。

この作業では「フィーチャー」を自動生成した後で、vrt2に対して「.rotat」と「.vert」の情報を追加します。また、自動生成された「vkna」はこのフォントに不要なので無効にしています。

「ファイル」メニューから「フォント情報」を選択、「フィーチャー」タブを選択してください

ウインドウ下の「自動」ボタンを押してフィーチャーを自動生成してください。

ウインドウ下の「自動」ボタンを押して自動生成する

vknaの情報はこのフォントには不要なのでvknaを選択して「無効」のチェックを入れてください。

vknaの「無効」をチェックする

aaltを選択して更新ボタンを押しaaltから「feature vkna;」の一行が削除されたことを確認してください。

自動ボタンを押しただけではvrt2に必要な情報が入らないため、vrt2を選択して「OpenTypeフィーチャーを自動生成」のチェックをOFFにして編集を行います。

vrt2の「OpenTypeフィーチャーを自動生成」をOFFにする


※フォントビューに追加されているグリフにvrt2の対象グリフが存在しないと「自動」ボタンを押してもvrt2が作成されません。この例ではフォントビューに対象グリフが存在しているため自動でvrt2が作成されています。vrt2が自動で作成されない場合はウインドウ下の「+」をクリックして「フィーチャー」を選択し、追加された「xxxx」を「vrt2」に変更してから以降の手順を行ってください。

vertを選択し右側の内容を全てコピーしてvrt2にペーストして内容を全て上書きしてください。

vertの内容を全て選択してコピーする

コピーした内容をvrt2の内容に上書きペーストする

回転済みグリフ「.rotat」の情報もvrt2に入れるべきですが自動で入らないため以下の方法で情報を収集して追加します。

ウインドウ下の「+」をクリックして「フィーチャー」を選択、追加された「xxxx」をダブルクリックして名前を「rotat」に変更します。

「+」をクリックして「フィーチャー」選択して

追加された「xxxx」を「rotat」に変更します

rotatを選択し「OpenTypeフィーチャーを自動生成」のチェックをONにして自動生成してください。

rotatの「OpenTypeフィーチャーを自動生成」をチェックする

rotatに自動生成された内容を全てコピーしvrt2の先頭にペーストして挿入してください。

rotatの内容を全てコピーして

vrt2の先頭にペーストで挿入してください


※これによりvrt2は「.rotat」と「.vert」両方の内容を含むことになります

rotatは作業用に追加した項目であり最終的なフォントには必要ないのでrotatを選択して「無効」をチェックしてください。

rotatの「無効」をチェック


※フィーチャータグは4文字でなければならないので、5文字のrotatが有効のままフォントを出力するとエラーになります。必ずrotatを無効にしてからフォントを出力してください。

※グリフ名に「.vert」と「.rotat」が付くグリフを追加または削除した場合はvrt2を再度設定しなければなりません。

※rotatを作業用に作成して情報を収集する方法は適切な方法でないかもしれません。Glyphs 2.3 (895)で使える方法として紹介していますが、将来Glyphsがアップデートすることで使用できなくなるかもしれません。その時にはもっと簡単に、例えば自動生成で済むようになるかもしれません。

※この例では回転済みクリフをAdobe-Japan1-3のCID番号に割り当てるために「.rotat」を使っており、そのために上のような設定が必要になりますが、「ROS」にAdobe-Identity-0を指定しているなら回転済みグリフに対して「.vert」を使っても構いません。ただし、vrt2の「OpenTypeフィーチャーを自動生成」では縦書き用の「かな」などの値が自動で入らないようなので、手作業による修正は必要になります。

以上で設定は終了です。

1-5)フォントを出力します

フォント情報ウインドウを閉じてファイルを保存してください。その後「ファイル」メニューから「出力...」を選択してください。以下の画面が現れたら「OTF」アイコンを選択、出力先を選択して「次...」ボタンを押してフォントを出力してください。

以上でOpenTypeフォントの出力は終了です。この例では指定した出力先に「GlyphsTestKana-Regular.otf」が生成されます。

2)グリフの並びを確認します

出力したフォントの中に収録されているグリフに対して正しいCID番号が割り当てられていることを確認します。確認の方法はいくつかあると思いますが、ここではGlyphsで確認する方法を説明します。

Glyphsで出力したフォントを開きフォントビューをリスト表示にすると「メモ」列でCID番号を確認できます。

出力したフォント(この例ではGlyphsTestKana-Regular.otf)をGlyphsで開き、フォントビューをリスト表示に切り替えます。


リスト表示のヘッダ部分をcontrol+クリックして現れたコンテクストメニューから「メモ」を選択してチェックします。


リストに「メモ」列が追加され各グリフに対するCID番号が表示されます。


各グリフに対するCID番号がAdobe-Japan1-3で定められた番号と一致していることを確認してください。また、Adobe-Japan1-3の範囲外のCIDが割り当てられているグリフが存在していないかも確認してください。範囲外のグリフが存在しているようならそのグリフを出力時に含めないようにするか「ROS」を変更するなどの対処が必要です。

※Adobe-Japan1-xではグリフ幅が全角(1000)のグリフ、半角(500)のグリフ、プロポーショナル幅のグリフなど、それぞれグリフ幅の違いでCID番号が決まっているものがありますので、CID番号の他に「グリフ幅」の値についても確認したほうが良いでしょう。

※作業をしていると「メモ」列が追加できなくなることがありました。そのような場合Glyphsを一旦終了して再度試すか、仮に新規フォントを作成したうえで新規フォントで「メモ」列を追加してから実際に確認したいフォントを開くと「メモ」列が追加できました。

3)縦書きが正しく表示できることを確認します

縦書きが正しく表示できることを確認します。例えばOS X(筆者が確認した環境は10.10.5)に付属の「テキストエディット」ではvrt2に縦書きのための情報(この例では「.vert」と「.rotat」)が含まれていないと正しく縦書き表示できません。「GlyphsTestKana-Regular.otf」をシステムにインストールして「テキストエディット」で縦書きがが正しく表示できていることを確認してください。


以上でAdobe-Japan1-3に対応した仮名フォントの作成は終了ですが、作成したフォントは以下の問題が残っていることを確認しています。
  • Office Word for Mac 2011で選択中フォントの名前が日本語で表示されない。
  • Office Word for Mac 2011で全角文字の文字送りが広くなり正しい幅で文字送りが行われない。
これらの問題はこの例で説明した設定だけではフォントの情報が不十分であるため発生しているものと思われます。

不足する情報についてはGlyphsの設定画面上で確実に設定できる手順がわかっていないので、方法がわかったらまた記載したいと思います。

以上です。

更新履歴:
2016年11月11日:公開

0 件のコメント:

コメントを投稿