Adobe FDK compareFamily errors

Topy's picture

I ran the widely recommended Adobe FDK's compareFamily with some errors and warnings. I tried to look for some documentation of these errors (how to fix them) but have found nothing or very little. Is there such documentation, or maybe a kind soul who's willing to explain? Quite a lot of points here, but clearing out at least the most critical ones would be a really great help!

I ran the compareFamily to a bunch of bought fonts as well and got similar errors in them too so I'm wondering how relevant/critical these errors are? I understand the script was made for Adobe, so not all of the checks are relevant to others.

I'm working in Fontlab.
---------------
Error: The first 32 chars of the Mac platform name ID 18 Compatible Full Name must be unique within Preferred Family Name group.

Names are unique, but not in the first 31 chars. Is it a problem?
---------------
Warning: Only Italic style bit set, Compatible SubFamily Name with Win Platform is not 'Italic' for Font

All italics have the box checked. All italics are actually named Oblique. Does this mean that I should set "Italic" in the Style Name field even though all other appropriate name fields use "Oblique"?
---------------
Error: font does not have a BASE table. This is necessary for users who are editing in a different script than the font is designed for.

Where is this BASE table defined?
---------------
Error: font has OS/2.ulUnicodeRange1 bit 3 set for Unicode block Latin Extended-B, but the test heuristics say it should not be set.

Lots of similar errors found. Having limited knowledge, I used the Fontlab's green diamond to define the codepages. Should I trust the diamond or what?
---------------
Error: The BlueValues (and OtherBlues) pair have distance greater than the maximum limit.
Font
Pairs: -30 0
Distance (30) is greater than 1/BlueScale (25.24)
BlueValues: [-30, 0, 504, 539, 697, 744]
---------------
Error: More than 4 fonts with the same nameID 1, compatible family name

Is this related to the 31 unique character limit above?
---------------
Family Test 5: Check that style settings for each face is unique within Compatible Family group, in all languages.

Error: These two fonts have the same italic and bold style setting
Font 1: Hairline
Italic Bit: 0 Bold Bit: 0
Font 2: Thin
Italic Bit: 0 Bold Bit: 0

All italics have the box checked, no fonts have the bold checked.
---------------
Error: More than two usWeightClass values in the Group
usWeightClass values: [250, 300, 350, 400, 450, 500, 550]

Each of the weights have their own number, isn't that correct practice?
---------------
Family Test 12: Check that GSUB/GPOS script and language feature lists are the same in all faces, and that DFLT/dflt and latn/dflt are present.
Warning: font does not have script 'DFLT' language 'dflt' in table GPOS.
Warning: font does not have script 'DFLT' language 'dflt' in table GSUB.

GSUB Table - script:tag list.
latn: MOL ROM dflt

lookup group ID to lookup index list:
ID 1: maps to lookups [2].
ID 2: maps to lookups [3].
ID 3: maps to lookups [0, 1].
ID 4: maps to lookups [20].
ID 5: maps to lookups [22].
ID 6: maps to lookups [19].
ID 7: maps to lookups [18].
ID 8: maps to lookups [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16].
ID 9: maps to lookups [42].
ID 10: maps to lookups [44].
ID 11: maps to lookups [17].
ID 12: maps to lookups [43].
ID 13: maps to lookups [47, 48].
ID 14: maps to lookups [49].
ID 15: maps to lookups [41].
ID 16: maps to lookups [21].
ID 17: maps to lookups [23].
ID 18: maps to lookups [24].
ID 19: maps to lookups [25].
ID 20: maps to lookups [26].
ID 21: maps to lookups [27].
ID 22: maps to lookups [28].
ID 23: maps to lookups [29].
ID 24: maps to lookups [30].
ID 25: maps to lookups [31].
ID 26: maps to lookups [32].
ID 27: maps to lookups [33].
ID 28: maps to lookups [34].
ID 29: maps to lookups [35].
ID 30: maps to lookups [36].
ID 31: maps to lookups [37].
ID 32: maps to lookups [38].
ID 33: maps to lookups [39].
ID 34: maps to lookups [40].
ID 35: maps to lookups [46].
ID 36: maps to lookups [45].

GSUB Table - feature lookup groups by script:tag column headers.
(The lookup group ID assigned to each set of lookups is an arbitrary - see list above for map to actual lookup indices.)
latn: MOL ROM dflt
aalt - - 3
c2sc - - 4
case - - 5
dlig - - 6
dnom - - 7
frac - - 8
liga - - 9
lnum - - 10
locl 1 2 -
numr - - 11
onum - - 12
ordn - - 13
ornm - - 14
salt - - 15
smcp - - 16
ss01 - - 17
ss02 - - 18
ss03 - - 19
ss04 - - 20
ss05 - - 21
ss06 - - 22
ss07 - - 23
ss08 - - 24
ss09 - - 25
ss10 - - 26
ss11 - - 27
ss12 - - 28
ss13 - - 29
ss14 - - 30
ss15 - - 31
ss16 - - 32
ss17 - - 33
ss18 - - 34
titl - - 35
tnum - - 36

GPOS Table - script:tag list.
latn: dflt

lookup group ID to lookup index list:
ID 1: maps to lookups [2].
ID 2: maps to lookups [3].
ID 3: maps to lookups [0, 1].
ID 4: maps to lookups [20].
ID 5: maps to lookups [22].
ID 6: maps to lookups [19].
ID 7: maps to lookups [18].
ID 8: maps to lookups [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16].
ID 9: maps to lookups [42].
ID 10: maps to lookups [44].
ID 11: maps to lookups [17].
ID 12: maps to lookups [43].
ID 13: maps to lookups [47, 48].
ID 14: maps to lookups [49].
ID 15: maps to lookups [41].
ID 16: maps to lookups [21].
ID 17: maps to lookups [23].
ID 18: maps to lookups [24].
ID 19: maps to lookups [25].
ID 20: maps to lookups [26].
ID 21: maps to lookups [27].
ID 22: maps to lookups [28].
ID 23: maps to lookups [29].
ID 24: maps to lookups [30].
ID 25: maps to lookups [31].
ID 26: maps to lookups [32].
ID 27: maps to lookups [33].
ID 28: maps to lookups [34].
ID 29: maps to lookups [35].
ID 30: maps to lookups [36].
ID 31: maps to lookups [37].
ID 32: maps to lookups [38].
ID 33: maps to lookups [39].
ID 34: maps to lookups [40].
ID 35: maps to lookups [46].
ID 36: maps to lookups [45].

GPOS Table - feature lookup groups by script:tag column headers.
(The lookup group ID assigned to each set of lookups is an arbitrary - see list above for map to actual lookup indices.)
latn: dflt
kern

Karl Stange's picture

Adam Twardoch's guide to font naming in FontLab should help you work out a naming scheme that is optimized for most platforms and applications.

I always set naming manually using a combination of FontLab, TTX, FontForge and DTL OTMaster, the last two primarily for checking.

Syndicate content Syndicate content