metadata "med": float32as(0.000000, 0x0) metadata "cond": float32as(-0.200000, 0xbe4ccccd) metadata "ext": float32as(0.200000, 0x3e4ccccd) registered "Extra Compressed": float32as(-0.700000, 0xbf333333) registered "Ultra Compressed": float32as(-0.700000, 0xbf333333) registered "Ultra Condensed": float32as(-0.700000, 0xbf333333) registered "Extra Condensed": float32as(-0.500000, 0xbf000000) registered "Extra Extended": float32as(0.400000, 0x3ecccccd) registered "Ext Compressed": float32as(-0.700000, 0xbf333333) registered "Ultra Expanded": float32as(0.800000, 0x3f4ccccd) registered "Ultra Extended": float32as(0.800000, 0x3f4ccccd) registered "Extra Expanded": float32as(0.400000, 0x3ecccccd) registered "Semi Condensed": float32as(-0.700000, 0xbf333333) registered "Semi Condensed": float32as(-0.100000, 0xbdcccccd) registered "Ext Condensed": float32as(-0.500000, 0xbf000000) registered "SemiCondensed": float32as(-0.100000, 0xbdcccccd) registered "ExtraExpanded": float32as(0.400000, 0x3ecccccd) registered "Semi Expanded": float32as(0.100000, 0x3dcccccd) registered "Semi Extended": float32as(0.100000, 0x3dcccccd) registered "Ext Expanded": float32as(0.400000, 0x3ecccccd) registered "Ext Extended": float32as(0.400000, 0x3ecccccd) registered "SemiExpanded": float32as(0.100000, 0x3dcccccd) registered "Extra Narrow": float32as(-0.500000, 0xbf000000) registered "ExtraNarrow": float32as(-0.500000, 0xbf000000) registered "Extra Wide": float32as(0.800000, 0x3f4ccccd) registered "Ultra Cond": float32as(-0.700000, 0xbf333333) registered "Compressed": float32as(-0.500000, 0xbf000000) registered "Extra Cond": float32as(-0.500000, 0xbf000000) registered "Semi Cond": float32as(-0.100000, 0xbdcccccd) registered "Condensed": float32as(-0.200000, 0xbe4ccccd) registered "ExtraWide": float32as(0.800000, 0x3f4ccccd) registered "Extended": float32as(0.200000, 0x3e4ccccd) registered "Expanded": float32as(0.200000, 0x3e4ccccd) registered "Ext Cond": float32as(-0.500000, 0xbf000000) registered "Narrow": float32as(-0.400000 , 0xbecccccd) registered "Compact": float32as(-0.400000, 0xbecccccd) registered "Cond": float32as(-0.200000, 0xbe4ccccd) registered "Wide": float32as(0.600000, 0x3f19999a) registered "Thin": float32as(-0.700000, 0xbf333333) panose 2, 3, 4: float32as(0.000000, 0x0) panose 5: float32as(0.200000, 0x3e4ccccd) panose 6: float32as(-0.200000, 0xbe4ccccd) panose 7: float32as(0.400000, 0x3ecccccd) panose 8: float32as(-0.400000, 0xbecccccd) registered OS2 1: float32as(-0.700000, 0xbf333333) registered OS2 2: float32as(-0.500000, 0xbf000000) registered OS2 3: float32as(-0.200000, 0xbe4ccccd) registered OS2 4: float32as(-0.100000, 0xbdcccccd) registered OS2 5: float32as(0.000000, 0x0) registered OS2 6: float32as(0.100000, 0x3dcccccd) registered OS2 7: float32as(0.400000, 0x3ecccccd) registered OS2 8: float32as(0.600000, 0x3f19999a) registered OS2 9: float32as(0.800000, 0x3f4ccccd) head[0x2d] & 0x20: float32as(-0.200000, 0xbe4ccccd) head[0x2d] & 0x40: float32as(0.200000, 0x3e4ccccd) registered default: float32as(0.000000, 0x0) func (f *CTFont) Width() float64 { if f.IsRegistered() { return f.RegistryWidth() } width := 0.0 hasWidth := false if there is an OS2 table { var usWidthClass uint16 valid := false if it's 78 bytes or more { usWidthClass = uint16be(table[6:8]) if usWeightClass <= 10 { valid = true } else { valid = false } } else { usWidthClass = 0 valid = true } if valid { ten := float64as(10.000000, 0x4024000000000000) negPointFive := float64as(-0.500000, 0xbfe0000000000000) width = (float64(usWidthClass) div ten) + negPointFive hasWidth = true } } then there's the style glossary strings comparison: unregistered "semi condensed": float32as(-0.100000, 0xbdcccccd) unregistered "extra expanded": float32as(0.400000, 0x3ecccccd) unregistered "semicondensed": float32as(-0.100000, 0xbdcccccd) unregistered "extraexpanded": float32as(0.400000, 0x3ecccccd) unregistered "semi expanded": float32as(0.100000, 0x3dcccccd) unregistered "semiexpanded": float32as(0.100000, 0x3dcccccd) unregistered "extra narrow": float32as(-0.500000, 0xbf000000) unregistered "extranarrow": float32as(-0.500000, 0xbf000000) unregistered "extra wide": float32as(0.800000, 0x3f4ccccd) unregistered "condensed": float32as(-0.200000, 0xbe4ccccd) unregistered "extrawide": float32as(0.800000, 0x3f4ccccd) unregistered "extended": float32as(0.200000, 0x3e4ccccd) unregistered "expanded": float32as(0.200000, 0x3e4ccccd) unregistered "narrow": float32as(-0.400000, 0xbecccccd) unregistered "wide": float32as(0.600000, 0x3f19999a) unregistered "thin": float32as(-0.700000, 0xbf333333) default: float64as(0.000000, 0x0)