Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 2 commits into from
Jun 6, 2023
Merged

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

merged 2 commits into from
Jun 6, 2023

Conversation

rsheeter
Copy link
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 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
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
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
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
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
Contributor Author

Choose a reason for hiding this comment

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

Copy link
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
11 checks passed
@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.

None yet

2 participants