Skip to content

Instantly share code, notes, and snippets.

@monokano
Last active November 20, 2020 23:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monokano/edff98aabdee6c99c54f1107c62cd2ef to your computer and use it in GitHub Desktop.
Save monokano/edff98aabdee6c99c54f1107c62cd2ef to your computer and use it in GitHub Desktop.
GlyphsのAJ1の問題と対処 1. GSUB編

GlyphsのAJ1の問題と対処 1. GSUB編

GlyphsはAdobe-Japan1フォントを書き出せるものの、その実装にはいくつか問題を抱えています。ここではGSUBの問題と対処方法を説明します。

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

問題:CMapとGSUBが一致していない

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ファイルに差し替える必要があります。

    1. Adobe-Japan1 からダウンロードします。

    2. 解凍し、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. リネームした3つのファイルを上記の場所にあるGSUBファイルと差し替えます。これでOK。

  • 注意:Glyphs.appをアップデートすると、GSUBファイルはJIS90用に戻ってしまいます。アップデートの度に差し替えが必要です。

@kenlunde
Copy link

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.

@monokano
Copy link
Author

Thank you. If users can get them in some way, that would be very good.

@kenlunde
Copy link

そうします!

@kenlunde
Copy link

こちらを見て下さい。

@monokano
Copy link
Author

ケンさん、ありがとうございます!
ずっとこうしてくれるといいなーと思っていました。
夢が叶いました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment