GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではGSUBの問題と対処方法を説明します。
ROSをAJ1にして、OpenTypeフィーチャーになにも設定しないと、Glyphsはフォント書き出し時にAdobe製GSUBファイルを読み込み、そのフォントのGSUBフィーチャーにします。読み込まれるGSUBファイルは以下のResourcesフォルダの中にあります。
- v2まで Glyphs.app/Contents/PlugIns/OTF.glyphsFileFormat/Contents/Resources/
- v3 Glyphs 3.app/Contents/Frameworks/GlyphsCore.framework/Versions/A/Resources
GSUBファイルは5つあります。
- gsubAdobe-Japan1-3.txt
- gsubAdobe-Japan1-3+.txt
- gsubAdobe-Japan1-4.txt
- gsubAdobe-Japan1-5.txt
- gsubAdobe-Japan1-6.txt
AJ1そのものの前提として、AJ1のCMapはJIS90用とJIS04用の2種類が別々に用意されています。Adobe製GSUBもそれに合わせて、JIS90用とJIS04用の2種類が別々に用意されています。CMapがJIS04用なら、GSUBも同じくJIS04用にしなければいけません。単純な話です。
それではGlyphsはどうなっているのか。Glyphsが使用するAJ1用CMapファイルは1つだけであり、以下の場所にあります。Glyphsが書き出すAJ1フォントのすべてのCMapがこのファイルから生成されます。
- v2まで Glyphs.app/Contents/PlugIns/OTF.glyphsFileFormat/Contents/Resources/cmapAdobe-Japan1.txt
- v3 Glyphs 3.app/Contents/Frameworks/GlyphsCore.framework/Versions/A/Resources/cmapAdobe-Japan1.txt
このCMapはJIS04用です。したがってGSUBもJIS04用にしなければいけません。しかし上記のGSUBファイルのうち、JIS04用は「gsubAdobe-Japan1-3+.txt」のみであり、他はすべてJIS90用です。GSUBファイルが間違っています。
1-3のGSUBファイルがJIS90用とJIS04用の2種類あることも間違っています。CMapがJIS04用のみなので、GSUBファイルはJIS04用だけあればいい。JIS90用は不要です。カスタムパラメータでROSを設定する際、ポップアップメニューに「Adobe-Japan1-3」と「Adobe-Japan1-3+」が並んで表示されるのは間違った実装です。
-
1-3は、ROSのポップアップメニューから「Adobe-Japan1-3+」を選びます。
-
1-4以降は、正しいGSUBファイルに差し替える必要があります。
-
Adobe-Japan1 からダウンロードします。
-
解凍し、GSUBフォルダの中にある3つのファイルをリネームします。
リネーム前 リネーム後 aj14-gsub-jp04+81.fea gsubAdobe-Japan1-4.txt aj15-gsub-jp04+10.fea gsubAdobe-Japan1-5.txt aj16-gsub-jp04.fea gsubAdobe-Japan1-6.txt -
リネームした3つのファイルを上記の場所にあるGSUBファイルと差し替えます。これでOK。
-
-
注意:Glyphs.appをアップデートすると、GSUBファイルはJIS90用に戻ってしまいます。アップデートの度に差し替えが必要です。
I need to update the GSUB feature templates in gsub-012012.tar, which are dated 2012, and host them in a new project on GitHub, or distribute them to their respective ROS specifications, such as Adobe-Japan1 for the Adobe-Japan1 GSUB feature templates. The latter would be my preference.