googlefonts / googlefonts/googlefonts.github.io

CJK vertical metrics suggestion

Open
#45 19 comments 1 reaction 0 assignees View on GitHub
documentation
Dominant language
CSS
Stars
93
Forks
37
PR merge metrics
No merged PRs in 30d

Description

According to https://googlefonts.github.io/gf-guide/metrics.html#cjk-vertical-metrics, it is suggested that the OS/2.sTypoAscender is set to 0.88 * font UPM and the OS/2.sTypoDescender is set to -0.12 * font UPM. The table is attached below:

> | Attrib | Value | Example using 1000upm font |
> |-------------------------------------------|------------------------------------------|----------------------------|
> | OS/2.sTypoAscender | 0.88 \* font upm | 880 |
> | OS/2.sTypoDescender | -0.12 \* font upm | -120 |
> | OS/2.sTypoLineGap | 0 | 0 |
> | hhea.ascender | Set to look comfortable (\~1.16 \* upm) | 1160 |
> | hhea.descender | Set to look comfortable (\~0.288 \* upm) | -288 |
> | hhea.lineGap | 0 | 0 |
> | OS/2.usWinAscent | Same as hhea.ascent | 1160 |
> | OS/2.usWinDescent | abs(value) of hhea.descent | 288 |
> | OS/2.fsSelection bit 7 (Use_Typo_Metrics) | Do not set / disabled | 0 |
>
> Our decision to follow the Adobe schema was based on Dr. Ken Lunde’s comments and his release notes on Source Han Sans:
>
> -
> - [SourceHanSansReadMe.pdf](https://github.com/adobe-fonts/source-han-sans/raw/release/SourceHanSansReadMe.pdf)

However, these metrics are only used in Japanese fonts. In Korean font (such as IBM Plex KR developed by Sandoll Inc), the ratio used is 0.8:0.2, which some Chinese font foundries use too. Another typical Chinese font foundry used is 0.85:0.15, as this allows more descender space compared to 0.88:0.12. There are some other combination of values which is used for individual creators too.

The referenced issue provided to justify these values () only explicitly mention this (quoted from @kenlunde):

> To add to the discussion with regard to the sTypoAscender and sTypoDescender values in the '[OS/2](https://www.microsoft.com/typography/otspec/os2.htm)' table, while I cannot speak with any authority to non-CJK fonts, at least for CJK fonts I feel somewhat strongly that these values 1) add up to equal the UPM and 2) correspond to the top and bottom of the ideographic em-box in which CJK glyphs are optically centered. For the other vertical metrics values, I see little or no disagreement.

Thus, I would like to suggest the guide to change the guidelines to allow any ratio for the OS/2 `sTypo` values as long as:
- OS/2.sTypoAscender - OS/2.sTypoDescender = UPM (In the sample it is 880 - (-120) = 1000)
- OS/2.sTypoAscender and OS/2.sTypoDescender reflects the CJK ideographic bounding box only, not any other values.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.