Skip to content

IBM Plex Sans JP: the .ttf and .otf have different line metrics (hhea and OS/2 lineGap) #731

Description

@edragoev1

Hello,

In IBM Plex Sans JP, the TrueType and the OpenType (CFF) editions of the
same release have different vertical metrics, so the same text is set with
different line spacing depending on which file is used. The other CJK
families agree between their two editions, so this looks unintended, but
I may be missing a reason.

Measured in packages/plex-sans-jp/fonts/complete (all files Version
1.004, unitsPerEm 1000):

File hhea ascender hhea descender hhea lineGap OS/2 typoLineGap Line height
ttf/hinted/IBMPlexSansJP-Regular.ttf 1060 -440 0 500 1.5 em
ttf/unhinted/IBMPlexSansJP-Regular.ttf 1060 -440 0 500 1.5 em
otf/hinted/IBMPlexSansJP-Regular.otf 880 -120 1000 1000 2.0 em
otf/unhinted/IBMPlexSansJP-Regular.otf 880 -120 1000 1000 2.0 em

The OS/2 typoAscender and typoDescender (880, -120) and the usWinAscent
and usWinDescent (1060, 440) are the same in both editions; the hhea
values and the typoLineGap differ. Every weight of the .ttf has the
1060 / -440 / 0 values.

For comparison, both editions agree in the other families:

Family hhea (both editions) OS/2 typo (both editions)
Plex Sans SC 880 / -120 / 1000 880 / -120 / 1000
Plex Sans TC 880 / -120 / 1000 880 / -120 / 1000
Plex Sans KR 1085 / -415 / 0 780 / -220 / 500

Applications that take the line height from hhea (most do on macOS and
Linux, and PDF libraries generally do) set Japanese text 1.5 em apart with
the .ttf and 2.0 em apart with the .otf. We noticed it in PDFjet
(https://github.com/edragoev1/pdfjet), a PDF library that embeds IBM Plex:
the same page of Japanese changed its line spacing when we switched files.

Could you confirm which metrics are intended for Plex Sans JP, and align the
other edition in a future release? Either is fine for us; we only want the
two files to agree.

Thank you for IBM Plex.

Evgeni Dragoev
PDFjet Software
https://pdfjet.com

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions