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

2016年11月14日

前回は「Adobe-Japan1-3フォントの作成を試す」と題して仮名フォントを作成する方法を説明しました。そして説明の最後に作成したフォントはOffice Word for Mac 2011で問題があることを伝えました。今回はその問題を調査した結果を記載します。

なお、ここに記載した内容はGlyphs 2.3 (895)で確認したものであり、他のバージョンでは同様の結果が得られない可能性もありますので、あらかじめそのことを了承してください。

前回発生していた問題は以下の2点です。

  • Office Word for Mac 2011で選択中フォント の名前が日本語で表示されない。
  • Office Word for Mac 2011で全角文字の文字送りが広くなり正しく文字送りが行われない。

確認に使用しているWordのバージョンは14.6.9(160926)です。

どちらの問題もOffice Word for Mac 2011の内部仕様に起因するものと思われるので、的確に原因と対策を提示するためにはOffice Word for Mac 2011の内部仕様を知らなければそれらを導き出すことができません。

個人がOffice Word for Mac 2011の内部仕様を知ることは難しいので、以下に解説する方法が最善の解決策であるかどうか筆者は判断できません。以下に説明する方法とは違う解決方法があるかもしれません。個人が独自に検証した結果であるということをあらかじめ了承してください。

1)Office Word for Mac 2011で選択中フォントの名前が日本語で表示されない。

以下のようにWordで選択中フォント名が日本語で表示されない


この問題はGlyphs 2.3に用意されている機能で解決できます。

この問題を解決するにはフォント情報にある「フォント」タブのカスタムパラメーターに以下の項目を追加してください。


プロパティ:Name Table Entry
    値:18 1 1 11;<日本語のフォント名>

<日本語のフォント名>の部分は自身が付けた日本語のフォント名を入力してください。ここに設定した名前がWordでフォントを選択している際の選択中フォント として表示されます。

※この例では複数のウエイト(BoldやHeavyなど)を作成することを想定していないため<日本語のフォント名>にウエイトを含んでいませんが、複数のウエイトからなるファミリーを作成する場合は、<日本語のフォント名>にウエイトを含んだ名前を入れます。なお、ファミリーを作成する場合はこれ以外の設定も必要になりますが、この問題と分けたほうが良いためここでは説明しません。

※このプロパティはGlyphs 2.3の「compatibleFullName」プロパティに相当するものです。このプロパティも「localizedFamilyName」と同様に、英語と日本語(英語以外の言語)を設定できるようにすべきですが、Glyphs 2.3ではそのようなプロパティは標準で用意されいようです。そのためこれを補う別の方法として「Name Table Entry」プロパティを使用して日本語の「compatibleFullName」を設定しています。

※「18 1 1 11」の部分は「18」が「compatibleFullName」を示しており「1 1 11」がMacintosh 用の日本語ShiftJIS向けの名前情報であることを示しています。各数字は半角スペースで区切ります。

この設定を追加することで以下のように設定した日本語のフォント名が表示されるようになります。


追記:2016年11月25
この問題は「インスタンス」タブのスタイル名に「Regular」が使われていると発生することがわかりました。スタイル名が「Regular」の場合は出力したフォントに日本語のフルネーム情報が含まれません。日本語のフルネーム情報が存在しないため英語表示になっているようです。例えばスタイル名を「R」に変更すれば「Name Table Entry」を追加する必要がありません。この場合のフォント名は「Glyphsテストかな R」になります。設定例は「メモ」欄にある「Glyphs 2.4:フォントファミリーの作成を試す」を参考にしてください。


2)Office Word for Mac 2011で全角文字の文字送りが広くなり正しく文字送りが行われない。

前回作成したフォントはWordに入力した全角文字の送り幅が広くなります。


確認したところ以下のことがわかりました。

Glyphs 2.3が出力するフォントに含まれるMacintosh Japanese用の文字割り当て情報(cmap)が一般的なAdobe-Japan1-x形式のフォントに含まれるcmapと異なっています。出力されたフォントのcmapには文字コード00〜FFまでの情報しか含まれておらず、その全ての文字コードに対して未定義グリフが割り当てられています。そのためこのcmapを参照するアプリケーションは文字コードから正しいクリフを導き出せません。

また、全角文字の文字送りが広くなる問題は、未定義グリフ(.notdef)のグリフ幅が1000でない場合は発生しないこともわかりました。

前回の説明で未定義グリフ(.notdef)のグリフ幅を1000にするように説明しました。これは自体は誤りではありません。しかし、Office Word for Mac 2011はMacintosh Japanese用のcmapを参照しているようなので、そのcmapが適切でないため正しいクリフを導き出せずこの問題が発生していると推測します。

この問題を解決するには以下の2つの方法が考えられます。

  1. Macintosh Japanese用のcmapを一般的な日本語OpenTypeフォントと同様に適切なcmapに変更する
  2. 未定義グリフ(.notdef)のグリフ幅を全角幅1000でない値にする

Adobe-Japan1-x形式のフォントに対する適切な対処方法としては「1. Macintosh Japanese用のcmapを一般的な日本語OpenTypeフォントと同様に適切なcmapに変更する」方法ですが、筆者はGlyphs 2.3の画面上でこれを実現する方法を見つけることができませんでした。

そのためGlyphs 2.3上で「2. 未定義グリフ(.notdef)のグリフ幅を全角幅1000でない値にする」方法で対処します。

例として以下のように未定義グリフ(.notdef)のグリフ幅を500に変更してフォントを出力します。


出力したフォントをシステムにインストールしてWord上で問題が解決していることを確認します。


未定義グリフ(.notdef)のグリフ幅を1000ではない値に変更することで問題は解決しますが、Glyphs 2.3が出力するフォントに含まれるMacintosh Japanese用の文字割り当て情報(cmap)が一般的なAdobe-Japan1-x形式のフォントに含まれるcmapと異なっている点は変わりません。あくまでもWord上の特定の問題が発生しなくなったというだけです。

もし、Macintosh Japanese用の文字割り当て情報(cmap)にアクセスするアプリケーションがあるとしたら、そのアプリケーションは未定義グリフ(.notdef)にしかアクセスできないことになるので、そのようなアプリケーションでなんらかの問題が発生する可能性は残ります。

また、上記の方法でWord上の問題は解決しましたが、多くの日本語フォントが未定義グリフの幅を全角幅にしているので、それと違うグリフ幅にするのは過去のアプリケーションで何か問題が発生するかもしれないという懸念が残ります。

筆者はGlyphs 2.3上の設定でWordに関する上記2つの懸念事項を同時に解決する方法を見つけることができませんでした。Glyphs側のアップデートによりユーザーが特別な意識をすることなくこの懸念事項を解消できるように対応するのが望ましいと思います。

なお、未定義グリフのグリフ幅が1000のときにOffice Word for Mac 2011で全角文字の文字幅が広くなる問題は、筆者が確認したところ「ROS」がAdobe-Identity-0でも同様に発生しています。Glyphsのデフォルト未定義グリフは全角幅ではないので、この問題に遭遇するユーザーは少ないかもしれませんが、気に留めておいたほうが良いと思います。

最後に、Wordで全角文字の文字幅が広くなる問題はGlyphs 2.3がフォントを出力する際に生成する作業用一時ファイルの一部を修正してターミナルアプリからコマンドを実行してフォントを生成したり、Glyphs 2.3が出力したフォントから別のアプリケーションを使って問題のcmapの削除することでも解決できますが、Glyphs 2.3上だけで作業を完結したいと考えているためここでは説明しません。

以上です。

更新履歴:
2016年11月25日:「選択中フォントの名前が日本語で表示されない」に追記
2016年11月14日:公開

0 件のコメント:

コメントを投稿