Giter VIP home page Giter VIP logo

Comments (4)

kenlunde avatar kenlunde commented on September 1, 2024

There is no bloat in the actual binary data, because what appear to be separate instances of the same feature are pointing to the same binary data. For the particular font you referenced, the 12 apparent duplicate instances correspond to the 12 script+language declarations. Properly declaring scripts and languages is a necessary part of fonts, especially Pan-CJK ones.

from source-han-sans.

behdad avatar behdad commented on September 1, 2024

Thanks Ken. I understand that these collapse in the binary. And I understand that separate language systems are useful. But there's no reason I'm aware of for not sharing features amongst multiple language systems.

As I said, it just makes reading the font tables harder. The font has over a hundred features when in reality a dozen will do.

No action needed. Just wanted to bring it up to your attention.

from source-han-sans.

moyogo avatar moyogo commented on September 1, 2024

@behdad this is common to many fonts and is pretty much standard practice. From what I understand both AFDKO and VOLT do this. But I agree, it would make more sense if feature records weren't repeated for no reason.

from source-han-sans.

kenlunde avatar kenlunde commented on September 1, 2024

Some background is that different clients expect different degrees of script+language declaration. For single-language fonts, such as all of the OpenType CJK fonts we have developed to date, we declare the appropriate scripts, which is about a half-dozen (DFLT, hani, kana, hang, latn, grek, cyrl), but only the 'dflt' language. Pan-CJK fonts such as Source Han Sans and Noto Sans CJK require that non-default languages also be declared for the appropriate scripts. This is especially important for the 'locl' GSUB feature, but non-default languages are also declared elsewhere, such as in the 'vert' GSUB feature to handle language-specific vertical forms.

from source-han-sans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.