googlefonts / robotoslab

Roboto Slab Typeface by Google
Apache License 2.0
59 stars 15 forks source link

v2: Regular quick diff #9

Open m4rc1e opened 6 years ago

m4rc1e commented 6 years ago

Here's some diffs against the fonts currently hosted on GF.

Some quick observations

RobotoSlab-Regular.ttf vs RobotoSlab-Regular.ttf

attribs 21 modified

table attrib value_a value_b
OS/2 ySubscriptYOffset 287.0 153.0
OS/2 ySuperscriptXSize 1434.0 1331.0
OS/2 usWinDescent 555.0 618.0
head modified 2013/05/20 05:22:09 2018/08/03 09:29:10
OS/2 ulUnicodeRange2 1342185563 2147500127
OS/2 ulUnicodeRange3 32.0 34.0
head xMax 2562.0 2523.0
OS/2 ulUnicodeRange1 3758097151 1279
OS/2 ySubscriptYSize 1331.0 1228.0
OS/2 ulCodePageRange2 1325465600.0 0.0
head xMin -890.0 -1432.0
head yMin -616.0 -555.0
OS/2 usMaxContex 2 3
OS/2 yStrikeoutPosition 512.0 649.0
OS/2 usMaxContext 2 3
OS/2 ySubscriptXSize 1434.0 1331.0
OS/2 ySuperscriptYOffset 977.0 716.0
OS/2 panose 0-0-0-0-0-0-0-0-0-0 0-0-5-0-0-0-0-0-0-0
head fontRevision 1.0 2.0
OS/2 yStrikeoutSize 102 100
OS/2 ySuperscriptYSize 1331.0 1228.0

mkmks 26 new

base_glyph mark_glyph base_x base_y mark_x mark_y
acutecomb tildecomb -335 1082 -386 1456
acutecomb acutecomb -335 1082 -335 1456
acutecomb gravecomb -335 1082 -161 1456
acutecomb hookabovecomb -335 1082 -238 1561
acutecomb uni030F -335 1082 -320 1560
dotbelowcomb dotbelowcomb -143 0 -143 -398
gravecomb tildecomb -161 1082 -386 1456
gravecomb gravecomb -161 1082 -161 1456
gravecomb acutecomb -161 1082 -335 1456
gravecomb hookabovecomb -161 1082 -238 1561
gravecomb uni030F -161 1082 -320 1560
hookabovecomb hookabovecomb -238 1082 -238 1561
hookabovecomb uni030F -238 1082 -320 1560
hookabovecomb acutecomb -238 1082 -335 1456
hookabovecomb gravecomb -238 1082 -161 1456
hookabovecomb tildecomb -238 1082 -386 1456
tildecomb tildecomb -386 1082 -386 1456
tildecomb hookabovecomb -386 1082 -238 1561
tildecomb uni030F -386 1082 -320 1560
tildecomb acutecomb -386 1082 -335 1456
tildecomb gravecomb -386 1082 -161 1456
uni030F uni030F -320 1082 -320 1560
uni030F hookabovecomb -320 1082 -238 1561
uni030F tildecomb -320 1082 -386 1456
uni030F acutecomb -320 1082 -335 1456
uni030F gravecomb -320 1082 -161 1456

kerns 14077 new

left right value
A uni0450 -30
A uni0408 -20
A uni1EC3 -30
A uni1EBD -30
A uni1EC5 -30
A uni1EDB -30
A uni1EDF -30
A uni0501 -30
A uni0502 -30
A uni0503 -30
A uni050D -30
A uni0481 -30
A uni04A9 -30
A uni04AB -30
A uni04D7 -30
A uni04DB -30
A uni04E9 -30
A uni0451 -30
A uni0454 -30
A uni047D -30
A uni04D9 -30
A alphatonos -30
A sigma -30
A uni03C2 -30
A uni0435 -30
A uni0441 -30
A cacute -30
A ccircumflex -30
A ccaron -30
A dcaron -30
A emacron -30
A ebreve -30
A edotaccent -30
A ecaron -30
A gcircumflex -30
A gbreve -30
A uni0444 -30
A Jcircumflex -20
A ccedilla -30
A eacute -30
A egrave -30
A edieresis -30
A ecircumflex -30
A J -20
A uni0479 -30
A e -30
A d -30
A g -30
A q -30
A alpha -30

kerns 10973 modified

left right diff
Wgrave uni1EA2 -167.0
Wgrave uni1EA0 -167.0
Wgrave uni1EA6 -167.0
Wgrave uni1EA4 -167.0
Wgrave uni1EAA -167.0
Wgrave uni1EA8 -167.0
Wgrave uni1EAE -167.0
Wgrave uni1EAC -167.0
Wgrave uni1EB2 -167.0
Wgrave uni1EB0 -167.0
Wgrave uni1EB6 -167.0
Wgrave uni1EB4 -167.0
Wgrave uni1E00 -167.0
Wdieresis uni1EB6 -167.0
Wgrave Alphatonos -167.0
Wgrave Alpha -167.0
Wgrave Delta -167.0
Wgrave Lambda -167.0
Wgrave Aringacute -167.0
Wgrave Abreve -167.0
Wgrave Amacron -167.0
Wgrave Aogonek -167.0
Wgrave Acircumflex -167.0
Wgrave Atilde -167.0
Wgrave Agrave -167.0
Wgrave Adieresis -167.0
Wgrave A -167.0
Wgrave uni04D0 -167.0
Wgrave uni0410 -167.0
Wgrave uni0466 -167.0
Wcircumflex Agrave -167.0
W uni0466 -167.0
W uni0410 -167.0
W uni04D2 -167.0
W uni04D0 -167.0
W A -167.0
W Aring -167.0
W Adieresis -167.0
W Atilde -167.0
W Aacute -167.0
W Agrave -167.0
W Aogonek -167.0
W Abreve -167.0
W Amacron -167.0
W Aringacute -167.0
W Alphatonos -167.0
W Alpha -167.0
W Lambda -167.0
W uni1EA6 -167.0
W uni1EA4 -167.0

kerns 119 missing

left right value
N Amacron -85
N Abreve -85
N Aogonek -85
N Aringacute -85
N uni0410 -85
N Alphatonos -85
N Lambda -85
N A -85
N Alpha -85
N Delta -85
N uni0466 -85
N uni1EB4 -85
N uni1E00 -85
N Agrave -85
N Aacute -85
N Atilde -85
N Adieresis -85
N Aring -85
N uni04D0 -85
N uni04D2 -85
N uni1EA8 -85
N uni1EAA -85
N uni1EAC -85
N uni1EAE -85
N uni1EA0 -85
N uni1EA2 -85
N uni1EA4 -85
N uni1EA6 -85
N uni1EB0 -85
N uni1EB2 -85
N uni1EB6 -85
N Acircumflex -85
T Tcaron 16
T uni0162 16
T uni04B4 16
T uni04AC 16
T uni04A0 16
T T 16
T uni0422 16
T uni021A 16
T uni0402 16
T uni040B 16
Tau T 16
Tau Tcaron 16
Tau uni0422 16
Tau uni04AC 16
Tau uni0162 16
Tau uni04A0 16
Tau uni04B4 16
Tau uni040B 16

metrics 418 modified

glyph diff_adv diff_lsb diff_rsb
uni0484 1042.0 0 0
uni0483 1007.0 0 0
uni030F 924.0 0 0
tildecomb 922.0 0 0
hook 573.0 0 0
commaaccent 520.0 0 0
gravecomb 511.0 0 0
acutecomb 505.0 0 0
uni0485 496.0 0 0
uni0486 491.0 0 0
dotbelow 387.0 0 0
dieresis 282.0 0 0
dieresistonos 244.0 0 0
dotaccent 241.0 0 0
macron 227.0 0 0
Wdieresis 219.0 0 0
W 219.0 0 0
Wacute 219.0 0 0
Wgrave 219.0 0 0
Wcircumflex 219.0 0 0
ldot 212.0 0 0
ring 194.0 0 0
tilde 175.0 0 0
dcaron 161.0 0 0
Upsilontonos 155.0 0 0
lcaron 142.0 0 0
Ohorn 135.0 0 0
uni1EDA 135.0 0 0
circumflex 135.0 0 0
uni1EDE 135.0 0 0
uni1EDC 135.0 0 0
uni1EE2 135.0 0 0
uni1EE0 135.0 0 0
Iotatonos 134.0 0 0
breve 134.0 0 0
wdieresis 130.0 0 0
wacute 130.0 0 0
w 130.0 0 0
wcircumflex 130.0 0 0
wgrave 130.0 0 0
ohorn 125.0 0 0
uni1EDF 125.0 0 0
uni04FE 125.0 0 0
uni1EE3 125.0 0 0
uni0425 125.0 0 0
X 125.0 0 0
uni1EDD 125.0 0 0
uni1EDB 125.0 0 0
uni04FC 125.0 0 0
uni1EE1 125.0 0 0

names 5 modified

id string_a string_b
(0, 1, 0, 0) Font data copyright Google 2013 Copyright 2018 Google Inc. All Rights Reserved.
(0, 3, 1, 1033) Font data copyright Google 2013 Copyright 2018 Google Inc. All Rights Reserved.
(3, 3, 1, 1033) Google:Roboto Slab:2013 Google:Roboto Slab:2018
(5, 1, 0, 0) Version 1.100263; 2013; ttfautohint (v0.94.20-1c74) -l 8 -r 12 -G 200 -x 14 -w "" -W Version 2.000
(5, 3, 1, 1033) Version 1.100263; 2013; ttfautohint (v0.94.20-1c74) -l 8 -r 12 -G 200 -x 14 -w "" -W Version 2.000

names 7 missing

id string
(3, 1, 0, 0) Google:Roboto Slab:2013
(16, 1, 0, 0) Roboto Slab
(16, 3, 1, 1033) Roboto Slab
(17, 1, 0, 0) Regular
(17, 3, 1, 1033) Regular
(18, 1, 0, 0) Roboto Slab Regular
(18, 3, 1, 1033) Roboto Slab Regular

marks 3450 new

base_glyph mark_glyph base_x base_y mark_x mark_y
A acutecomb 770 1376 -335 1082
A gravecomb 770 1376 -161 1082
A tildecomb 770 1376 -386 1082
A hookabovecomb 770 1376 -238 1082
A uni030F 770 1376 -320 1082
A dotbelowcomb 767 0 -143 0
AE gravecomb 1158 1376 -161 1082
AE acutecomb 1158 1376 -335 1082
AE tildecomb 1158 1376 -386 1082
AE hookabovecomb 1158 1376 -238 1082
AE uni030F 1158 1376 -320 1082
AE dotbelowcomb 1088 0 -143 0
AEacute dotbelowcomb 1088 0 -143 0
AEacute tildecomb 1158 1750 -386 1082
AEacute gravecomb 1158 1750 -161 1082
AEacute acutecomb 1158 1750 -335 1082
AEacute uni030F 1158 1750 -320 1082
AEacute hookabovecomb 1158 1750 -238 1082
Aacute acutecomb 770 1750 -335 1082
Aacute gravecomb 770 1750 -161 1082
Aacute tildecomb 770 1750 -386 1082
Aacute hookabovecomb 770 1750 -238 1082
Aacute uni030F 770 1750 -320 1082
Aacute dotbelowcomb 767 0 -143 0
Abreve gravecomb 770 1750 -161 1082
Abreve acutecomb 770 1750 -335 1082
Abreve tildecomb 770 1750 -386 1082
Abreve uni030F 770 1750 -320 1082
Abreve hookabovecomb 770 1750 -238 1082
Abreve dotbelowcomb 767 0 -143 0
Acircumflex gravecomb 770 1750 -161 1082
Acircumflex acutecomb 770 1750 -335 1082
Acircumflex tildecomb 770 1750 -386 1082
Acircumflex uni030F 770 1750 -320 1082
Acircumflex hookabovecomb 770 1750 -238 1082
Acircumflex dotbelowcomb 767 0 -143 0
Adieresis uni030F 770 1750 -320 1082
Adieresis hookabovecomb 770 1750 -238 1082
Adieresis tildecomb 770 1750 -386 1082
Adieresis gravecomb 770 1750 -161 1082
Adieresis acutecomb 770 1750 -335 1082
Adieresis dotbelowcomb 767 0 -143 0
Agrave tildecomb 770 1750 -386 1082
Agrave gravecomb 770 1750 -161 1082
Agrave acutecomb 770 1750 -335 1082
Agrave hookabovecomb 770 1750 -238 1082
Agrave uni030F 770 1750 -320 1082
Agrave dotbelowcomb 767 0 -143 0
Alpha dotbelowcomb 767 0 -143 0
Alpha acutecomb 770 1376 -335 1082

glyphs 246 new

glyph --- | D.ss05 Dcroat.ss05 K.ss05 OE.ss05 R.ss05 a.sc aacute.sc abreve.sc acircumflex.sc adieresis.sc ae.sc ae.ss03 aeacute.sc agrave.sc alpha.ss02 amacron.sc aogonek.sc aring.sc aringacute.sc atilde.sc b.sc c.sc c.sc.ss05 cacute.sc ccaron.sc ccedilla.sc ccircumflex.sc cdotaccent.sc d.sc d.sc.ss05 dcaron.sc dcroat.sc e.sc eacute.sc ebreve.sc ecaron.sc ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc eight.sc emacron.sc eng.sc eogonek.sc eth.sc f.sc five.sc four.sc g.sc g.sc.ss05

glyphs 168 modified

glyph diff
uniFFFC 662473.958333
uni2105 384219.833333
uni047F 224439.0
uni047E 223790.916667
uni1EB3 176989.333333
uni1EA9 175176.333333
uni1EB2 167071.833333
uni1EA8 165258.833333
uni1EC3 164471.541667
uni1ED5 164460.041667
uni1ED4 163677.958333
uni1EC2 144601.833333
uni1EB5 51689.7916667
uni1E01 44844.7916667
uni1EB4 41772.2916667
uni1EAF 41026.0
uni1EAB 40704.4583333
aringacute 38431.5
wacute 35051.0
uni1E00 34927.2916667
wdieresis 34068.0
w 33914.0
wcircumflex 33914.0
wgrave 33385.0
uni1EAE 31108.5
uni1EAA 30786.9583333
uni1EC5 29999.6666667
uni1ED7 29988.1666667
uni1ED6 29206.0833333
gbreve 26419.9583333
Gbreve 25098.4166667
K 21715.5
Kappa 21715.5
nu 19011.0
v 19011.0
uni0121 18344.5416667
g 18284.5416667
gcircumflex 18284.5416667
uni1EB7 18153.9166667
uni04D1 18076.9166667
abreve 18076.9166667
uni0120 17023.0
G 16963.0
Gcircumflex 16963.0
Aringacute 16711.5833333
Cacute 15442.3333333
k 15275.5
uni010A 14365.3333333
Ccircumflex 14305.3333333
C 14305.3333333

glyphs 114 missing

glyph --- | A.smcp Aacute.smcp Abreve.smcp Acircumflex.smcp Adieresis.smcp Agrave.smcp Amacron.smcp Aogonek.smcp Aring.smcp Aringacute.smcp Atilde.smcp B.smcp C.smcp Cacute.smcp Ccaron.smcp Ccedilla.smcp Ccircumflex.smcp D.smcp Dcaron.smcp Dcroat.smcp E.smcp Eacute.smcp Ebreve.smcp Ecaron.smcp Ecircumflex.smcp Edieresis.smcp Edotaccent.smcp Egrave.smcp Emacron.smcp Eogonek.smcp Eth.smcp F.smcp G.smcp Gbreve.smcp Gcircumflex.smcp Gcommaaccent.smcp H.smcp Hcircumflex.smcp I.smcp Iacute.smcp Ibreve.smcp Icircumflex.smcp Idieresis.smcp Idotaccent.smcp Igrave.smcp Imacron.smcp Iogonek.smcp Itilde.smcp J.smcp Jcircumflex.smcp

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

desktop_windows_7_ie_9 0_

mjlagattuta commented 6 years ago
mjlagattuta commented 6 years ago

@davelab6 After chatting with @m4rc1e on a private chat, I wanted to get confirmation on what levels of tolerance/matching the original we are shooting for, especially given Roboto Slab had a set updates made that never got pushed.

A couple of notes on the setup and why there may be a number of differences:

Additionally, we had discussed doing the hinting for these projects in VTT. @m4rc1e informed me that the current static Roboto Slab fonts served use ttfautohint so I am not sure if I should hold off until ttfautohint can handle VFs, or if you want to move forward with VTT

davelab6 commented 6 years ago

On Mon, Aug 6, 2018, 7:48 AM Mike LaGattuta notifications@github.com wrote:

@davelab6 https://github.com/davelab6 After chatting with @m4rc1e https://github.com/m4rc1e on a private chat, I wanted to get confirmation on what levels of tolerance/matching the original we are shooting for, especially given Roboto Slab had a set updates made that never got pushed.

I believe we should be making stuff better quality, and anything that deviates from the current version but is better is fine. Even if it's very disruptive; the future is longer than the past.

The fontdifferenator and diffbrowsers tools give us insight into what changed, and confidence that what changed is better, and didn't unintentionally change anything.

A few families we want to be much more careful about changes because they are system fonts, but even Roboto was radically changed in 2014/15 and there was less outrage than Montserrat last year.

Roboto Slab is pretty popular, but it isn't set in stone.

A couple of notes on the setup and why there may be a number of differences:

  • The ufos up on github were updates that had never been pushed, and I used those as the starting point for the VF remastering

Yes, good

  • Given the addition of a black weight (extrapolated and corrected) we had discussed the potential for a 3-master setup (see #7 https://github.com/googlefonts/robotoslab/issues/7). The file in the repo uses Thin, Regular, and Black as masters (effectively making Bold an instance)

Sure, should be good

  • In working on the file, I performed some cleanup where possible. With kerning, I removed unused classes and merged identical values into classes. I also believe some metrics and kerns were modified in the ufos I started with (see #8 https://github.com/googlefonts/robotoslab/issues/8)

Yep I think they were, and moving to classes is great

  • Additionally I set all relevant glyphs and marks up with anchors and added components where possible. While doing this I replaced some glyphs with those used in a typical glyphs setup (replaced /crossbar with /strokeshortcomb, /tail with /tail-cy, etc.)

Great

  • One area I am concerned with are changes that were made in the ufos that are less visible

If less visible, why more concerned? :)

Additionally, we had discussed doing the hinting for these projects in VTT. @m4rc1e https://github.com/m4rc1e informed me that the current static Roboto Slab fonts served use ttfautohint so I am not sure if I should hold off until ttfautohint can handle VFs, or if you want to move forward with VTT

It seems VF support in ttfautohint is coming along so I'm ok to have Roboto Slab 99% Ready To Go except for hinting and then circle back to it when we get to publication time and decide if ttfautohint is acceptable. Of course I prefer it as a libre solution.

mjlagattuta commented 6 years ago

If less visible, why more concerned? :)

In converting from ufo to .glyphs there was a portion of user data that as far as I know goes unused by Glyphs, as well as extra custom parameters such as "OS2strikeoutPosition" and "OS2strikeoutSize" which I believe are also ignored by glyphs.

I was unsure how important such information was and if there was a way I should be implementing it into the glyphs source properly

davelab6 commented 6 years ago

Ah yes, right. I guess that stuff is in the current TTFs too, and there are font level Glyphsapp Custom Parameters you can use to set those values if you want to set them manually. I wonder if the Glyphsapp defaults for them are even different from what's in the TTFs

mjlagattuta commented 6 years ago

The original file I started with imported those values for the first ufo I opened in Glyphs (Roboto Slab Thin) but much of them were greyed out:

screen shot 2018-08-06 at 11 23 46 am

When cleaning up the file I removed the ones that were greyed out. I believe Glyphs generates these values and they seem to be different as shown in first diff above comparing attribute numbers

davelab6 commented 6 years ago

much of them were greyed out

Not sure what that means. Have asked (https://forum.glyphsapp.com/t/greyed-out-custom-parameters/9525)

Basically I think its fine to forget about that stuff.

mjlagattuta commented 6 years ago

Thanks

I was thinking the same, based on the assumption that it being grayed out meant that Glyphs was just storing that information but it was not actually going be used in the creation of the ttf.

However, since the font is generated with fontmake I'm not sure how that deals with the greyed out custom parameters

davelab6 commented 6 years ago

Have asked (forum.glyphsapp.com/t/greyed-out-custom-parameters/9525)

Have answer: greyed out CPs are inactive, their key's string is not used by GlyphsApp, but because you can have such "private" CPs, they are kept in the file

davelab6 commented 6 years ago

since the font is generated with fontmake I'm not sure how that deals with the greyed out custom parameters

Right; also not sure.