fontFeatures icon indicating copy to clipboard operation
fontFeatures copied to clipboard

otf2fea: diffenator reports that the new OTF file has 93,671 marks_missing + 6,032 mkmks_missing + 186 glyphs missing + more

Open marekjez86 opened this issue 4 years ago • 5 comments

  1. I took https://github.com/googlefonts/noto-source/tree/master/src/Arimo-Bold and build an OTF file https://github.com/googlefonts/noto-fonts/blob/master/unhinted/otf/Arimo/Arimo-Bold.otf

  2. I ran otf2fea of the OTF file to extract new fea; I also modified the source to use this fea obtaining the sources contained in this zip file Arimo-Bold.zip

  3. I built a new OTF using fontmake

  4. I compared the new OTF with the previous OTF expecting that they would be virtually the same, but they weren't (see the results of various tools below)

  5. the diffenator listed differences as follows (are these differences acceptable in the new font? why would weight change from 700 to 400? is it possible to keep panose?)? :

attribs modified: 3

table attrib value_a value_b
OS/2 usWeightClass 700 400
OS/2 panose 2-11-7-4-2-2-2-2... 0-0-0-0-0-0-0-0-... head modified 2020/05/22 09:31... 2021/02/23 13:16...

glyphs missing: 186

glyph area string
Lcommaaccent.loc... 689586 Ļ
Ncommaaccent.loc... 1159906 Ņ
alefdagesh 816047 אּ
bari.dotless 353574 ɨ́
finalkafqamats 628687 ךָ
finalkafsheva 621006 ךְ
lamedholam 707325 לֹ
lamedholamdagesh... 727096 לֹּ
lcommaaccent.loc... 518567 ļ
ncommaaccent.loc... 777218 ņ
uni02E502E502E6 296854 ˥˥˦
uni02E502E502E7 315529 ˥˥˧
uni02E502E502E8 345234 ˥˥˨
uni02E502E502E9 388092 ˥˥˩
uni02E502E6 260636 ˥˦
uni02E502E602E5 319985 ˥˦˥
uni02E502E602E6 304619 ˥˦˦
uni02E502E602E7 323655 ˥˦˧
uni02E502E602E8 354864 ˥˦˨
uni02E502E602E9 381796 ˥˦˩
uni02E502E7 293688 ˥˧
uni02E502E702E5 381215 ˥˧˥
uni02E502E702E6 357546 ˥˧˦
uni02E502E702E7 334388 ˥˧˧
uni02E502E702E8 360521 ˥˧˨
uni02E502E702E9 384659 ˥˧˩
uni02E502E8 331065 ˥˨
uni02E502E802E5 448845 ˥˨˥
uni02E502E802E6 426022 ˥˨˦
uni02E502E802E7 397327 ˥˨˧
uni02E502E802E8 377464 ˥˨˨
uni02E502E802E9 395905 ˥˨˩
uni02E502E9 357552 ˥˩
uni02E502E902E5 498335 ˥˩˥
uni02E502E902E6 488391 ˥˩˦
uni02E502E902E7 459144 ˥˩˧
uni02E502E902E8 427401 ˥˩˨
uni02E502E902E9 417924 ˥˩˩
uni02E602E5 261342 ˦˥
uni02E602E502E5 304853 ˦˥˥
uni02E602E502E6 320678 ˦˥˦
uni02E602E502E7 351407 ˦˥˧
uni02E602E502E8 383323 ˦˥˨
uni02E602E502E9 404708 ˦˥˩
uni02E602E602E5 295801 ˦˦˥
uni02E602E602E7 300159 ˦˦˧
uni02E602E602E8 330590 ˦˦˨
uni02E602E602E9 364404 ˦˦˩
uni02E602E7 262531 ˦˧
uni02E602E702E5 349853 ˦˧˥

glyphs modified: 42

glyph diff string
uniAB38 0.1383 ꬸ
uniA75F 0.1177 ꝟ
uniA75E 0.1085 Ꝟ
uni1DD3 0.0818 ᷓ
uni2C7A 0.0801 ⱺ
uni1DCC 0.0595 ᷌
uni1DCB 0.0574 ᷋
Aringacute 0.0351 Ǻ
Aring 0.032 Å
uni212B 0.032 Å
uni1AB0 0.0144 ᪰
uniFB03 0.0138 ffi
uniFB04 0.0133 ffl
uniA652 0.012 Ꙓ
eogonek 0.009 ę
iogonek 0.007 į
Iogonek 0.0063 Į
uniA691 0.0062 ꚑ
uni01ED 0.0062 ǭ
uni01EB 0.0059 ǫ
Uogonek 0.0058 Ų
uniA653 0.0053 ꙓ
Aogonek 0.0053 Ą
uniA690 0.0045 Ꚑ
uni01EC 0.0044 Ǭ
tcommaaccent 0.0043 ţ
uni01EA 0.0042 Ǫ
uogonek 0.0042 ų
aogonek 0.0038 ą
ccedilla 0.0038 ç
uni0229 0.0037 ȩ
uni1E09 0.0035 ḉ
scedilla 0.0035 ş
Eogonek 0.003 Ę
uni1E1D 0.003 ḝ
Ccedilla 0.003 Ç
uni1E08 0.0027 Ḉ
Scedilla 0.0026 Ş
uni2028 0.0 

uni1ABB 0.0 ᪻
uni25CC 0.0 ◌
uni210B 0.0 ℋ

kerns missing: 906

left right value string
uni0420 period -307 Р.
uni0420 comma -283 Р,
P comma -264 P,
P period -264 P.
Rho comma -262 Ρ,
Rho period -262 Ρ.
uni0403 period -256 Ѓ.
Upsilontonos iotadieresistono... 256 Ύΐ
uni0413 period -256 Г.
uni0423 period -256 У.
Upsilon iotadieresistono... 256 Υΐ
Upsilondieresis iotadieresistono... 256 Ϋΐ
Tau iotadieresistono... 242 Τΐ
uni0413 comma -231 Г,
uni0422 period -231 Т.
uni0403 comma -231 Ѓ,
uni0423 comma -231 У,
Y period -227 Y.
T colon -227 T:
T period -227 T.
F comma -227 F,
F period -227 F.
T semicolon -227 T;
Y comma -227 Y,
T comma -227 T,
Gamma period -225 Γ.
Upsilon period -225 Υ.
Upsilon comma -225 Υ,
Tau period -225 Τ.
Tau semicolon -225 Τ;
Tau colon -225 Τ:
Tau comma -225 Τ,
Gamma comma -225 Γ,
Gamma Alpha -223 ΓΑ
Gamma Delta -223 ΓΔ
Gamma Lambda -223 ΓΛ
uni042C uni0422 -207 ЬТ
quotedblbase uni0427 -207 „Ч
quotedblbase uni040B -205 „Ћ
quotedblbase uni0402 -205 „Ђ
uni0433 period -205 г.
uni0422 comma -205 Т,
uni040A quoteright -205 Њ’
uni0409 quoteright -205 Љ’
uni042A quoteright -205 Ъ’
Y A -188 YA
V period -188 V.
V comma -188 V,
L Y -188 LY
A Y -188 AY

metrics modified: 2

glyph diff_adv
yodyod_patah 1237.0
glyph3280 467.0

marks_missing: 93671

base_glyph base_x base_y mark_glyph mark_x mark_y
uni0285 200 1200 tildecomb -580 1560
uni0269 280 1200 tildecomb -580 1560
j.dotless 280 1200 tildecomb -580 1560
uni1D7B 280 1200 tildecomb -580 1560
uni1D7C 280 1200 tildecomb -580 1560
dotlessi 290 1200 tildecomb -580 1560
uni025F 360 1200 tildecomb -580 1560
uni027F 360 1200 tildecomb -580 1560
uni026A 420 1200 tildecomb -580 1560
uni01BD 458 1200 tildecomb -580 1560
uni1D89 460 1200 tildecomb -580 1560
rcommaaccent 460 1200 tildecomb -580 1560
uni027D 460 1200 tildecomb -580 1560
uni024D 460 1200 tildecomb -580 1560
r 460 1200 tildecomb -580 1560
uni1E5B 460 1200 tildecomb -580 1560
uni0242 460 1200 tildecomb -580 1560
uni027C 460 1200 tildecomb -580 1560
uni1E5F 460 1200 tildecomb -580 1560
uni1D72 460 1200 tildecomb -580 1560
uni1D73 460 1200 tildecomb -580 1560
uni1D93 480 1200 tildecomb -580 1560
uni0240 500 1200 tildecomb -580 1560
uni027B 500 1200 tildecomb -580 1560
uni1E93 500 1200 tildecomb -580 1560
uni0290 500 1200 tildecomb -580 1560
uni01B6 500 1200 tildecomb -580 1560
uni1D8E 500 1200 tildecomb -580 1560
uni0279 500 1200 tildecomb -580 1560
uni0225 500 1200 tildecomb -580 1560
uni214E 500 1200 tildecomb -580 1560
uni025B 500 1200 tildecomb -580 1560
z 500 1200 tildecomb -580 1560
uni1D76 500 1200 tildecomb -580 1560
uni1E95 500 1200 tildecomb -580 1560
uni0291 500 1200 tildecomb -580 1560
uni028B 500 1200 tildecomb -580 1560
uni0285 200 1200 acutecomb -275 1560
uni1D94 520 1200 tildecomb -580 1560
uni021D 520 1200 tildecomb -580 1560
uni029F 520 1200 tildecomb -580 1560
uni0285 200 1200 gravecomb -260 1560
uni025D 520 1200 tildecomb -580 1560
uni025C 520 1200 tildecomb -580 1560
uni024B 530 1200 tildecomb -580 1560
igrave 180 1580 tildecomb -580 1560
uni1D8F 560 1200 tildecomb -580 1560
uni0292 560 1200 tildecomb -580 1560
uni1D90 560 1200 tildecomb -580 1560
uni1D78 360 1400 tildecomb -580 1560

mkmks_missing: 6032

base_glyph base_x base_y mark_glyph mark_x mark_y
uni0364 0 480 tildecomb -560 1940
uni0368 0 480 tildecomb -560 1940
uni0369 0 480 tildecomb -560 1940
uni036D 0 480 tildecomb -560 1940
uni036B 0 480 tildecomb -560 1940
uni036F 0 480 tildecomb -560 1940
uni0367 0 480 tildecomb -560 1940
uni0365 0 480 tildecomb -560 1940
uni036E 0 480 tildecomb -560 1940
uni0363 0 480 tildecomb -560 1940
uni0366 0 480 tildecomb -560 1940
uni036A 0 480 tildecomb -560 1940
uni036C -100 480 tildecomb -560 1940
uni0368 0 480 gravecomb -310 1940
uni036A 0 480 gravecomb -310 1940
uni0369 0 480 gravecomb -310 1940
uni0365 0 480 gravecomb -310 1940
uni0364 0 480 gravecomb -310 1940
uni036F 0 480 gravecomb -310 1940
uni0363 0 480 gravecomb -310 1940
uni0366 0 480 gravecomb -310 1940
uni0367 0 480 gravecomb -310 1940
uni036B 0 480 gravecomb -310 1940
uni036D 0 480 gravecomb -310 1940
uni036E 0 480 gravecomb -310 1940
uni036F 0 480 hookabovecomb -290 1940
uni0365 0 480 hookabovecomb -290 1940
uni036B 0 480 hookabovecomb -290 1940
uni0368 0 480 hookabovecomb -290 1940
uni036E 0 480 hookabovecomb -290 1940
uni0363 0 480 hookabovecomb -290 1940
uni0364 0 480 hookabovecomb -290 1940
uni0366 0 480 hookabovecomb -290 1940
uni036A 0 480 hookabovecomb -290 1940
uni036D 0 480 hookabovecomb -290 1940
uni0369 0 480 hookabovecomb -290 1940
uni0367 0 480 hookabovecomb -290 1940
uni0368 0 480 acutecomb -240 1940
uni0364 0 480 acutecomb -240 1940
uni036F 0 480 acutecomb -240 1940
uni0369 0 480 acutecomb -240 1940
uni0366 0 480 acutecomb -240 1940
uni036B 0 480 acutecomb -240 1940
uni036A 0 480 acutecomb -240 1940
uni0367 0 480 acutecomb -240 1940
uni036E 0 480 acutecomb -240 1940
uni036D 0 480 acutecomb -240 1940
uni0365 0 480 acutecomb -240 1940
uni0363 0 480 acutecomb -240 1940
uni0313 0 820 tildecomb -560 1940

gdef_base missing: 2999

glyph
uni2E3B
uni2E3A
uni01F1
uni01C4
uni052A
uniA66C
uniA74E
uniA698
uni2031
uni047E
uni0460
uniA64C
uni047C
uni01CA
uniA7FF
uni20A8
uni01C5
uni01F2
uni213B
uni02A5
uniA734
uniA684
uni01C7
uni2047
uni2133
uniA650
uniA736
uni0522
uniA773
uni052B
uni04A6
uniA732
uni0478
uni0520
uni2116
uni01C6
uni01F3
uni0518
uniA696
uni0409
peseta
uni20AF
uni046C
uniA7B6
uni1FAA
uni1F6B
uni1FAB
uni1F6A
uni040A
uni2103

gdef_mark new: 123

glyph
uni05B305BD
uni1AB6
uni2DEC
uni2DE7
uni1AB9
uni2DF1
uni2DE8
uni2DFA
uni1DE7
uni1DE1
uni1DF3
uni0340
uni2DEE
uni2DE4
uni1DD0
uni1DDF
uni2DF5
uniA679
uni2DEF
uni1DFD
uni034F
uni1AB2
uni2DFD
uni1DE8
uni2DF9
uni1AB4
uniA676
uniFE2C
uniFE2B
uni1DE6
uni1DD4
uni2DF2
uni1DE9
uniFE2E
uni1AB8
uni1ABA
uniA67B
uni1DFB
uni1DE2
uni2DF0
uni1DEC
uni2DF3
uni1DE3
uni1DE4
uni1DEF
uniFE2A
yodyod_patah
uni1DDE
uni2DEA
uniA69F

gdef_mark missing: 13

glyph
sofpasuq
uni02DE
uniFE21
lowerdot
sindot
shindot
uni05B205BD
uni05B105BD
uniFE20
uni05B305BD
meteg
qamatsqatan
upper_dot

Arimo-20210223-1634.zip

marekjez86 avatar Feb 24 '21 04:02 marekjez86

the diffenator listed differences as follows (are these differences acceptable in the new font? why would weight change from 700 to 400? is it possible to keep panose?)? :

I think there's something buggy with diffenator, or, your process, outside the otf2fea part.

The diffenator listed differences like weight change from 700 to 400 doesn't seem like something that otf2fea should introduce.

Please could you take https://github.com/googlefonts/noto-source/tree/master/src/Arimo-Bold and build an OTF file https://github.com/googlefonts/noto-fonts/blob/master/unhinted/otf/Arimo/Arimo-Bold.otf using fontmake and do the same comparison, to verify they are the same?

davelab6 avatar Feb 24 '21 15:02 davelab6

I'll follow up on @davelab6 suggestion to recompile all of the OTF files first with the current fontmake (some of the previous files were built about 2-4 months ago, so it's possible that it had fontmake issues still).

marekjez86 avatar Feb 24 '21 18:02 marekjez86

@davelab6 : I followed your and Simon's recommendations but now Arimo-Bold and 24 or other sources do not compile

====== Arimo-Bold
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source
INFO:glyphsLib.classes:Parsing "Arimo-Bold.glyphs" file into <GSFont>
INFO:fontmake.font_project:Building OTF for Arimo-Bold
INFO:ufo2ft:Pre-processing glyphs
INFO:ufo2ft.filters:Running DecomposeComponentsFilter on Arimo-Bold
INFO:ufo2ft:Building OpenType tables
ERROR:ufo2ft.featureCompiler:Compilation failed! Inspect temporary file: '/var/folders/x3/gdcx4vhj6cqcjbc2b4clbwy40000gn/T/tmpc1s7npim'
fontmake: Error: In 'Arimo-Bold.glyphs' -> 'master_ufo/Arimo-Bold.designspace' -> 'master_ufo/Arimo-Bold.ufo': Compiling UFO failed: <features>:4298:5: Glyph commaaccent was assigned to a different class at <features>:4293:5

marekjez86 avatar Feb 25 '21 05:02 marekjez86

Are you saying that current Arimo sources do not compile? Did they ever compile?

davelab6 avatar Feb 27 '21 01:02 davelab6

This is the same multiple GDEF problem.

simoncozens avatar Feb 27 '21 07:02 simoncozens