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

Vary baseline and UPM #152

Open
davelab6 opened this issue Jul 23, 2024 · 3 comments
Open

Vary baseline and UPM #152

davelab6 opened this issue Jul 23, 2024 · 3 comments

Comments

@davelab6
Copy link
Contributor

davelab6 commented Jul 23, 2024

@dberlow reminded me today that he recalls back in 2016, in the first call with MS Google and Font Bureau, he had suggested needing to vary the baseline and UPM, which he wants to vary in non latin scripts. Is this possible?

The use case for the baseline is: varying a glyph from its center (such as in hanzi, where the center of glyphs is the center of a square glyph) and adjusting the baseline to stick to the bottom of the glyph. Eg, matching Chinese to Arabic.

The use case for the UPM is: When you have varc, the range of the components changes over the resolution spectrum, so say you have a 64 axes atomic component for hanzi, and you target a res below 40 px per em square, there is a limited space for all the strokes, so you may want to cut down on the strokes. With a UPM axis, you can adjust the compositing over the range along with opsz: opsz is going down and the resolution is going down too. The UPM axis would allow for hinting-like design, ranging from say 7 (for sans, 8 for serif) "pixels per em square" up to 128. And allowing different masters to have different UPMs, to match this, the file size can be compacted because the point coordinates don't require unnecessary precision.

There are 'bad nodes' where rounding doesn't work out well, so 12-18 there are say 2 bad nodes in a glyph, and so the outline can be scaled to a pixel grid that works.

@behdad
Copy link
Member

behdad commented Jul 23, 2024

Baseline variation should in theory be possible with BASE table, though we have not updated the spec for it.

Changing UPM was decided as not supported, as it introduces so many issues (for starters, it's assumed currently in APIs that a face has an integer UPM that doesn't change).

@dberlow
Copy link

dberlow commented Jul 23, 2024 via email

@dberlow
Copy link

dberlow commented Jul 24, 2024 via email

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

No branches or pull requests

3 participants