Skip to content

Add example .glyphs kern and ability to read it#330

Merged
rsheeter merged 2 commits intomainfrom
kern
Jun 6, 2023
Merged

Add example .glyphs kern and ability to read it#330
rsheeter merged 2 commits intomainfrom
kern

Conversation

@rsheeter
Copy link
Copy Markdown
Contributor

@rsheeter rsheeter commented Jun 5, 2023

Tiptoing toward #308

The existing test to confirm reading glyphs2 wghtvar == read glyphs3 wghtvar verifies the field rename works as intended.

@rsheeter rsheeter changed the title Add simple example .glyphs kern Add simple .glyphs kern and ability to read it Jun 5, 2023
@rsheeter rsheeter changed the title Add simple .glyphs kern and ability to read it Add example .glyphs kern and ability to read it Jun 6, 2023
Comment thread glyphs-reader/src/font.rs
Comment on lines +974 to +976
fn v2_to_v3_kerning(&mut self) -> Result<(), Error> {
if let Some(kerning) = self.other_stuff.remove("kerning") {
self.other_stuff.insert("kerningLTR".to_string(), kerning);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

amusingly in glyphsLib we ended up actually doing the opposite i.e. down-convert the kerningLTR/kerningRTL split dictionaries into a single kerning dict, like in was in glyphs v2 and in UFO.. the history of this is complicated as everything in font-land..
You may start from googlefonts/glyphsLib#865

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in any case, assuming like you do here that all v2 "kerning" is equivalent to v3 "kerningLTR" is incorrect, only holds for with LTR-only fonts such as Oswald which you're working with.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

assuming like you do here that all v2 "kerning" is equivalent to v3 "kerningLTR" is incorrect

sorry, correction: the naive approach here (v2 kerning ==> v3 kerningLTR, no swapping) is the correct one, if we want to match fontmake's single kerning dict approach; it's only when starting from a v3 source which has both kerningLTR and kerningRTL that we need to take care of reversing the order of first/second.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I explicitly didn't handle the kerningRTL set yet. My intent wasthat this is valid for both v2 and v3 LTR kerning. I think you are saying it is? Perhaps I should file a bug for kerningRTL.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Member

@anthrotype anthrotype left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@rsheeter rsheeter merged commit db5eca1 into main Jun 6, 2023
@rsheeter rsheeter deleted the kern branch June 6, 2023 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants