How much ccmp do we actually need?

Hi everyone,

this may be a question that has an obvious answer. It came up in a discussion concerning the treatment of existing fonts: when you already have (manually) precomposed (Latin) glyphs in your font and extend the set of combining marks, what do you include in your ccmp feature according to best practice?

If there are precomposed marks for Vietnamese in your font, you will certainly want to include rules that invoke these precomposed marks as substitutes for sequences like /circumflexcomb/gravecomb/. Likewise, you may want to include contextual rules for caps-specific combining marks, if present, and for the glyphs /i/ and /j/ that will have to lose the dot before any diacritic can be added.

But beyond that? More specifically, does it make sense to add rules for precomposed glyphs such as /aacute/? In the sense that possible input sequences like /a/acutecomb/ will always result in the precombined glyph /aacute/ being used? Is that necessary?

Text shaping engines, I guess, are still defaulting to precombined glyphs if these glyphs are available in a font. So I would guess it is not necessary to add ccmp rules for glyphs like /aacute/, or is it?

Thank you for your insights,
Alex

That’s the job of the lay-out engine.

What I put in there a presentation forms and deprecated characters, things like fi fl dz Dz DZ lj Lj LJ, napostrophe and Ldot. It saves drawing smallcaps for those. Repeat the lookup at the beginning of smcp or c2sc, respectively.

Keep in mind that not every lay-out engine supports one-to-many substitutions. Adobe’s classic composer is a famous example.

Thank you very much for your swift answer. :slight_smile:

In other words, there’s no need to be telling the lay-out engine? — Don’t get me wrong, I never really bothered about that question in the past, as I always took it for granted that layout engines would always positively use the precomposed glyphs, if available. But today, when this question came up in a discussion, I noticed that I had never thought about this, or whether it is a tacit design principle on which lay-out engines are based. Adding the presentation forms and deprecated characters is a great idea though. :slight_smile:

You couldn’t tell the layout engine anything through OT features, so don’t bother. It won’t listen.