Git Product home page Git Product logo

Comments (7)

jenskutilek avatar jenskutilek commented on May 12, 2024

This:

Thus, interpreting TrueType instructions (or CFF hints) is required when activating ppem axis.

combined wit this:

Pixel alignment may be crucial in some cases, and the form of such mechanism (TrueType instructions) are very hard to understand, for designers. Therefore, a variation axis could be a easier way to encode pixel alignment data into fonts.

seems to be a contradiction, since hinting seems still required even when the adjustments are made by the ppem variations.

from opentypedesignvariationaxistags.

jenskutilek avatar jenskutilek commented on May 12, 2024

What about ppem-related changes in the sidebearings? ‘The ppem axis is used to encode deltas that shift points to the place closer to the pixel grid’ seems to include the phantom points. But this may lead to significant differences in text length if e.g. the same text is rendered in a preview on screen and then printed with high resolution.

It is like the issues around the hdmx table and ClearType’s compatible/natural widths.

from opentypedesignvariationaxistags.

lemzwerg avatar lemzwerg commented on May 12, 2024

[Taken from the OpenType mailing list]

Interesting! I'm not sure how this will behave size-wise, since adjustments to the grid are certainly not linear; this might lead to quite large gvar tables – essentially, there would be one 'master' per a single ppem value. I would like to see a prototype implemention of, say, a single, simple CJK glyph that demonstrates this proposal.

Another issue would be the behaviour for different scaling values along the x and y axis – perhaps also registering XPEM and YPEM?

from opentypedesignvariationaxistags.

behdad avatar behdad commented on May 12, 2024

I can imagine how this axis can be used with FeatureVariations to, eg, switch to simpler forms of CJK ideographs at small sizes. But I don't see how it can be used to perform hinting using glyph deltas, since we have to and do support fractional pixel sizes. So, deltas cannot be used to align stems to grid the way hinting does.

from opentypedesignvariationaxistags.

robmck-ms avatar robmck-ms commented on May 12, 2024

@behdad: are you talking about fractional PPEM (after scaling), or fractional UPM, or something else?

from opentypedesignvariationaxistags.

behdad avatar behdad commented on May 12, 2024

Fractional PPEM

from opentypedesignvariationaxistags.

dberlow avatar dberlow commented on May 12, 2024

*lemzwerg “...this might lead to quite large gvar tables”

I think this is minimal, if reduced by interpolation of untouched points, to only a few deltas per glyph. Besides the fact that people do make big fonts anyway, I think that quality, as a choice, is sometimes to be made over the quantity it may cause. In this case, something a standard could not be blamed for allowing.

I like Rob’s idea of separate x and y a lot, and it got me thinking about some kind of super-efficient additional way to shift all the grid-fit glyph positions at once, in x and y sub pixel space, to provide a sort of fine-tuning that could be offered at a number of possible levels, keeping in mind that this proposed axis would be operating in variable space potentially with other axes, beside via a variety of devices, sizing, scaling and rendering methods .

from opentypedesignvariationaxistags.

Related Issues (16)

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.