googlefonts / opensans

Open Sans font
Other
212 stars 31 forks source link

sources and hinted TTFs ready to go #1

Closed laerm0 closed 6 years ago

laerm0 commented 6 years ago

Sources are ready to go. I have no errors and "fix fonts for Google spec" doesn't do anything else, so I think that's good. I updated the OT and all features have come over except salt, which is deprecated in favor of ss01 etc. Kerning, however, is gone. This will be an ongoing project to fix.

Hinted TTFs look good. There are some fails on check-googlefonts but that's because I've expanded the character set and it doesn't compare well. Also, it complains about an improper number of contours for some reason.

I will go through the list of Open Sans bugs and see which look likely to be fixed by this PR.

The condensed fonts will require design so those aren't part of this phase.

m4rc1e commented 6 years ago

Just did a quick diff on this.

I'm actually pretty impressed with this rebuild so far.

Unfortunately, we have the usual pixel jumping on IE 9 etc. At 28+ billion views per a week, we can't get away with this.

desktop_windows_7_ie_9 0_

I'm very tempted to write some glue to determine ttfautohint settings between font releases

laerm0 commented 6 years ago

Aha, great, thank you. I was waiting for your GIFs to see what adjustments needed to be made. I can fix this. Is this ready for my use yet so I don't have to bug you to run screenshots?

davelab6 commented 6 years ago

Yeah that sounds good, but something to put on the schedule for later.

I agree we can't have the pixel jump, but, Open Sans was hand hinted before so it needs to be again to prevent regressions; if your screenshot system isn't picking that up, its a problem ;)

laerm0 commented 6 years ago

Hand-hinting it again is, of course, no problem, but if I can push ttfautohint a little bit more to get hints that are 95% there, isn't that kind of better yet? I.e. we don't need to do any hand-tweaking as more scripts get added in to Open Sans.

m4rc1e commented 6 years ago

if your screenshot system isn't picking that up, its a problem ;)

Oh, It did :-). Only way I spot things these days.

Tomorrow it will be pip installable. I suggest we get @laerm0 a separate BrowserStack account. I'll help him get setup. He'll then be able to do his own tests on the fly.

davelab6 commented 6 years ago

Sounds great. And yes if you can get closer to the previous release with TTFA that would be fantastic

laerm0 commented 6 years ago

Okay! The weight expansion of Open Sans is done. Woo. I did not mess with any of the metrics in the interpolated instances, as I figured that would take way too long.

Up next, working on the hinted TTFs to make sure they don't regress. @m4rc1e, maybe tomorrow you can show me how to get the diffenator going for myself.

m4rc1e commented 6 years ago

@laerm0 sure!

I just need to push a few things to the repo and get it merged. Its come a long way in the past month. Drop me a line when you're online.

m4rc1e commented 6 years ago

Its getting better.

I just genned off the Regular and compared it against the version on fonts.google.com.

I wouldn't worry about the modified glyphs for the moment. I have to perfect the threshold.

***attribs 18 modified***
table               attrib              value_a             value_b
OS/2                ySubscriptYOffset   287                 153
OS/2                ySuperscriptXSize   1434                1331
head                modified            2017/04/30 17:18:13 2018/04/23 11:17:32
OS/2                ulUnicodeRange2     1073750107          1073741824
OS/2                ulUnicodeRange3     40                  0
OS/2                ulUnicodeRange1     3758097135          536873607
OS/2                ySubscriptYSize     1331                1228
OS/2                ulCodePageRange1    536871327           536871359
head                yMin                -555                -568
OS/2                sFamilyClass        2050                0
OS/2                yStrikeoutPosition  497                 657
gasp                gaspRange           {8: 10, 13: 7, 65535: 15}{65535: 15}
OS/2                usFirstCharIndex    32                  0
OS/2                ySubscriptXSize     1434                1331
OS/2                ySuperscriptYOffset 977                 716
OS/2                panose              2-11-6-6-3-5-4-2-2-40-0-5-0-0-0-0-0-0-0
head                fontRevision        1.101               2.01
OS/2                ySuperscriptYSize   1331                1228

***metrics 5 modified***
glyph               diff_adv            diff_lsb            diff_rsb
brevegravecomb      420                 0                   0
uni0479             96                  0                   0
Tcedilla            -1                  0                   0
napostrophe         -3                  0                   0
uni1F4D             -23                 0                   0

***kern new***
No differences

***kern modified***
No differences

***kern missing***
No differences

***names new***
No differences

***names 10 modified***
id                  string_a            string_b
(0, 1, 0, 0)        Digitized data c... Digitized data c...
(0, 3, 1, 1033)     Digitized data c... Digitized data c...
(3, 1, 0, 0)        1.10;1ASC;OpenSa... 2.010;1ASC;OpenS...
(3, 3, 1, 1033)     1.10;1ASC;OpenSa... 2.010;1ASC;OpenS...
(5, 1, 0, 0)        Version 1.10        Version 2.010; t...
(5, 3, 1, 1033)     Version 1.10        Version 2.010; t...
(13, 1, 0, 0)       Licensed under t... This Font Softwa...
(13, 3, 1, 1033)    Licensed under t... This Font Softwa...
(14, 1, 0, 0)       http://www.apach... http://scripts.s...
(14, 3, 1, 1033)    http://www.apach... http://scripts.s...

***names 2 missing***
id                  string
(7, 1, 0, 0)        Open Sans is a trademark of Google and may be registered in certain jurisdictions.
(7, 3, 1, 1033)     Open Sans is a trademark of Google and may be registered in certain jurisdictions.

***marks new***
No differences

***marks modified***
No differences

***marks missing***
No differences

***glyphs 125 new***
glyph
.null
I.ss01
IJ.ss01
Iacute.ss01
Ibreve.ss01
Icircumflex.ss01
Idieresis.ss01
Idotaccent.ss01
Igrave.ss01
Imacron.ss01
Iogonek.ss01
Iota.ss01
Iotadieresis.ss01
Iotatonos.ss01
Itilde.ss01
acutecomb
dotbelowcomb
f_f
f_f_i
f_f_l
g.ss02
gbreve.ss02
gcircumflex.ss02
gcommaaccent.ss02
gdotaccent.ss02
nonmarkingreturn
one.lf
uni0302
uni0304
uni0306
uni0307
uni0308
uni030A
uni030B
uni030C
uni0312
uni0326
uni0327
uni0328
uni0406.ss01
uni0407.ss01
uni0483
uni0484
uni0485
uni0486
uni04C0.ss01
uni04CF.ss01
uni05B0
uni05B1
uni05B2

***glyphs 723 modified***
glyph               diff
brevegravecomb      41303.5833333
uni0478             1718.125
afii10048           1330.20833333
uni047E             1229.20833333
uni04E8             1227.45833333
uni0472             1227.45833333
uni04EA             1218.29166667
Theta               1198.875
afii10096           1158.70833333
uni1EE2             1142.41666667
uni1F4D             1137.08333333
uni047A             1132.66666667
copyright           1123.83333333
uni1EDA             1109.41666667
uni0473             1103.75
uni04E9             1103.75
uni1EE0             1099.625
uni1EDE             1096.5
uni04EB             1094.58333333
Ohorn               1091.58333333
uni1ED6             1087.45833333
uni047C             1074.29166667
otilde              1034.04166667
uni1ED7             1031.0
uni1ECC             1027.375
uni0479             1006.5
uni1ED8             997.291666667
Oacute              994.375
Omicrontonos        985.791666667
Otilde              984.583333334
uni1ECE             981.458333333
Omacron             976.541666667
afii10032           976.541666667
Omicron             976.541666667
O                   976.541666667
uni1ECD             970.916666667
Obreve              970.041666666
uni1EDC             970.0
Odieresis           967.375
uni04E6             967.375
uni1ED2             966.541666667
ocircumflex         957.833333334
Ocircumflex         946.458333333
uni1ED9             940.833333333
oacute              937.916666667
omicrontonos        929.333333333
uni1ECF             925.0
afii10080           920.083333334
omicron             920.083333334
o                   920.083333334

***glyphs 35 missing***
glyph
I.alt
IJ.alt
Iacute.alt
Ibreve.alt
Icircumflex.alt
Idieresis.alt
Idotaccent.alt
Igrave.alt
Imacron.alt
Iogonek.alt
Iota.alt
Iotadieresis.alt
Iotatonos.alt
Itilde.alt
afii10055.alt
afii10056.alt
dotbelow
ff
g.alt
gbreve.alt
gcircumflex.alt
gcommaaccent.alt
gdot.alt
one.pnum
uni0301
uni0483
uni0484
uni0485
uni0486
uni04C0.alt
uni04CF.alt
uni1EC8.alt
uni1ECA.alt
uniFB03
uniFB04
m4rc1e commented 6 years ago

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

Ignoring the pixel jumps, I can see we need to reimplement those ff ligs and some marks are shifted. We'll do a more thorough review in Seville.

laerm0 commented 6 years ago

Cool, yeah, let's look at it later this week. Thanks.

davelab6 commented 6 years ago

@laerm0 what is needed to get this merged? :)

laerm0 commented 6 years ago

Hints as good as the original, pretty much.

davelab6 commented 6 years ago

So all the ligatures and mark-shifting diffs are fixed? Only hinting remains (and that is being pushed behind VF hinting)?

That being the case, let's merge :)

m4rc1e commented 6 years ago

Not yet,

OpenSans-Regular.ttf vs OpenSans-Regular.ttf

attribs 19 modified

table attrib value_a value_b
OS/2 ySubscriptYOffset 287.0 153.0
OS/2 ySuperscriptXSize 1434.0 1331.0
head modified 2017/04/30 17:18:13 2018/05/18 07:13:19
OS/2 ulUnicodeRange2 1073750107 1073741824
OS/2 ulUnicodeRange3 40.0 0.0
head xMax 2466.0 2454.0
OS/2 ulUnicodeRange1 3758097135 536873607
OS/2 ySubscriptYSize 1331.0 1228.0
OS/2 ulCodePageRange1 536871327 536871359
head yMin -555.0 -568.0
OS/2 sFamilyClass 2050.0 0.0
OS/2 yStrikeoutPosition 497.0 657.0
gasp gaspRange {8: 10, 13: 7, 65535: 15} {65535: 15}
OS/2 usFirstCharIndex 32.0 13.0
OS/2 ySubscriptXSize 1434.0 1331.0
OS/2 ySuperscriptYOffset 977.0 716.0
OS/2 panose 2-11-6-6-3-5-4-2-2-4 0-0-5-0-0-0-0-0-0-0
head fontRevision 1.101 2.01
OS/2 ySuperscriptYSize 1331.0 1228.0

metrics 12 modified

glyph diff_adv diff_lsb diff_rsb
uni0484 1182.0 0 0
uni0485 1182.0 0 0
uni0486 1182.0 0 0
uni0483 1141.0 0 0
brevegravecomb 420.0 0 0

mkmks 98 new

mark1_glyph mark2_glyph mark1_x mark1_y mark2_x mark2_y
acutecomb acutecomb -559 1096 -559 1569
acutecomb macron -559 1096 512 1378
acutecomb gravecomb -559 1096 -745 1569
acutecomb tildecomb -559 1096 -627 1501
acutecomb hookabovecomb -559 1096 -579 1679

kern 7771 missing

left right value
A quoteright -143
A quotedblright -143
A Wgrave -82
A Wacute -82
A Wdieresis -82

names 10 modified

id string_a string_b
(0, 1, 0, 0) Digitized data copyright © 2010-2011, Google Corporation. Digitized data copyright (C) 2010-2011, Google Corporation.
(0, 3, 1, 1033) Digitized data copyright © 2010-2011, Google Corporation. Digitized data copyright (C) 2010-2011, Google Corporation.
(3, 1, 0, 0) 1.10;1ASC;OpenSans-Regular 2.010;1ASC;OpenSans-Regular
(3, 3, 1, 1033) 1.10;1ASC;OpenSans-Regular 2.010;1ASC;OpenSans-Regular
(5, 1, 0, 0) Version 1.10 Version 2.010

names 2 missing

id string
(7, 1, 0, 0) Open Sans is a trademark of Google and may be registered in certain jurisdictions.
(7, 3, 1, 1033) Open Sans is a trademark of Google and may be registered in certain jurisdictions.

marks 3451 new

mark1_glyph mark2_glyph mark1_x mark1_y mark2_x mark2_y
A uni05BC.small 0 0 0 0
A acutecomb 648 1462 -559 1096
A gravecomb 648 1462 -745 1096
A tildecomb 648 1462 -627 1096
A hookabovecomb 648 1462 -579 1096

glyphs 121 new

glyph --- | I.ss01 IJ.ss01 Iacute.ss01 Ibreve.ss01 Icircumflex.ss01

glyphs 3 modified

glyph diff
uni0499 13647.75
aringacute 8112.625
uni04BE 1321.83333333

We need the following resolved:

laerm0 commented 6 years ago

@m4rc1e Want to set up a chat for next week to go over the diffs? I'll figure out the kerning this weekend.

laerm0 commented 6 years ago

I commented on the other issue regarding kerning, @m4rc1e. #4

laerm0 commented 6 years ago

Also, only Cond Light, Cond Bold, and Cond Bold Ital existed beforehand so those are the only ones that had kern data. I can see how well Glyphs did at interpolating out the kern data, but... 🤷‍♂️ On the condensed italics, it's probably garbage. Probably should schedule some time for me to kern it...

...or we just consider the static font no longer under development and then the variable font will have new and better data in it. I vote in favor of this.

laerm0 commented 6 years ago

Kerning is done! I think that's it (except for autohinting out of Glyphs). If the diffenator output is good, then let's merge.

laerm0 commented 6 years ago

Okay, the italic and variable italic source files are ready. The VGX italic font works.