owned this note
owned this note
Published
Linked with GitHub
# The issues with Adobe-Japan-1 in Glyphs 3
* Tested in Glyphs 3.0.4 (3098) [Test file](https://app.box.com/s/c3ax1amm6b61bmb72s3ydjwp2ogrie6n)
* The "Resources" folder in discussion is this one: Glyphs 3.app/Contents/Frameworks/GlyphsCore.framework/Versions/A/Resources
* CMap and GSUB files necessary for start can be found [here](https://github.com/adobe-type-tools/Adobe-Japan1).
## 1. GSUB table fault
If there is no OT features in Font Info (expected when making AJ1*), Glyphs needs to use the GSUB file present in Resources.
gsubAdobe-Japan1-3.txt
gsubAdobe-Japan1-3+.txt
gsubAdobe-Japan1-4.txt
gsubAdobe-Japan1-5.txt
gsubAdobe-Japan1-6.txt
At present, Glyphs ignores them and the resulting OTF has no features.
\* fail-safe idea: if the AJ1 ROS is set, it may be better for Glyphs to not generate any features at all in Font Info. If the user wants a custom GSUB, they can embed their own in the Resources file, or use other means (the kind of people who want custom is usually a foundry with their own engineer).
### GSUB file inconsistency
CMap file present in the Resources folder is based on the JIS2004 standard, and the GSUB file needs to follow that too.
At present, the GSUB file in the Resources folder contains the GSUB file for the older JIS1990 standard. It needs to be replaced by the JIS2004 version.
### Fault in the Adobe-Japan1-3 GSUB
Glyphs 3 lets you choose *Adobe-Japan1-3* and *Adobe-Japan1-3+*. The difference is JIS1990 or 2004 (*+* seemingly the latter). However, the CMap file in the Resource folder is for JIS2004. There is no need for + and 1990 support can be dropped altogether.
### How to distinguish JIS1990 and JIS2004 GSUBs
* If the aalt feature lists "jp04" feature, the GSUB is for the old one, JIS1990.
* If the aalt feature lists "jp09" feature, the GSUB is for the new one, JIS2004.
## 2. cmap table fault
Glyphs needs to use the CMap file present in the Resources folder:
cmapAdobe-Japan1.txt
At present, Glyphs 3 ignores the CMap and only uses the app's default encoding for cmap table.
### AJ1 glyph name differences in Glyphs 2 and 3
Between Glyphs v2.6.7 and v3.0.4, the following glyph names have changed and need to be reflected in the CMap file.
| v2.6.7-1357 | v3.0.4-3098|
| - | - |
| circumflex | circumflexcomb |
| macron | macroncomb |
| ring | ringcomb |
| cedilla | cedillacomb |
| dieresis.full | dieresis |
| Iu-cy | Yu-cy |
| Ia-cy | Ya-cy |
| iu-cy | yu-cy |
| ia-cy | ya-cy |
| meizieraSquare | meiziEra |
| taisyoueraSquare | taisyouEra |
| syouwaeraSquare | syouwaEra |
| heiseieraSquare | heiseiEra |
| meizieraSquare.vert | meiziEra.vert |
| taisyoueraSquare.vert | taisyouEra.vert |
| syouwaeraSquare.vert | syouwaEra.vert |
| heiseieraSquare.vert | heiseiEra.vert |
| quotedblsharpright | quotedoubleprime |
| cid12233 | whiteDiamondInSquare |
| cid12244 | diamondTarget |
| mediumCircle | mediumWhiteCircle |
| beta.RomanSupp | beta-latin |
| chi.RomanSupp | chi-latin |
| reiwaeraSquare | reiwaEra |
| reiwaeraSquare.vert | reiwaEra.vert |
# 3. Should Glyphs prescribe width and spacing setting?
There are glyphs that should be of certain width (for example: 0, 333, 500, 1000), and some double-coded diacritics, and the most ideal behaviour is for Glyphs to make sure of that when AJ1 is selected (Given that some foundries draw in higher UPM, the values shouldn't be baked based on 1000).
This G2 didn't force this either as I understand, and not super-critical. It's probably not hard to solve in other ways, like template or script.