Ordering of ccmp feature

agisaak's picture

I recall reading somewhere but can't for the life of me remember where that the 'ccmp' and 'aalt' features are treated specially by software and are always processed before other features.

§7.b of the OpenType Feature File Specification seems to confirm this is true for 'aalt', but I can't for the life of me find any discussion of 'ccmp' receiving special treatment. Adobe's discussion in their feature list indicates that "[ccmp] should be processed as the first feature processed, and should be processed only when it is called" but it isn't clear from this whether this means applications are expected to process it first, or that font developers are expected to implement it as the first feature in their feature file. (Also, it's unclear to me what the second part of that description means -- I'd assume that this feature should always be processed, and I've never run across an application which allows you to explicitly select it).

Can anyone clarify this issue for me or provide a link to a source which discusses ccmp in more detail?



agisaak's picture

Just to clarify, the reason I'm asking this is that in the past I've always placed 'ccmp' first. However, in the new FLS beta, standalone lookups need to be declared in the bottom pane which means in effect that all standalone lookups end up being placed before any features placed in the left hand feature pane. I'm unsure, therefore, whether I need to declare 'ccmp' (and possible 'aalt') in the bottom pane as well rather than declaring it in the left hand pane along with all other features.


John Hudson's picture

Typical feature ordering, in layout engines that apply features in discreet blocks rather than relying only on the order of lookups in the font, is

[language shaping features, e.g. for complex script processing]
[typographic layout features]

aalt is a bit of an oddity, since it isn't really used in layout but, rather, is used to build glyph palettes.

Khaled Hosny's picture

The order of lookup statements is irrelevant, what matters is the order of feature statements (speaking of feature files syntax), but even for ccmp and locl the engine will always applies them first regardless of their actual order in the font.

agisaak's picture

Thanks, John, for the clarification.

Hosny, I'm quite sure the the order of lookups takes priority over the order of feature declarations, particularly when lookups are declared outside of feature blocks.


Syndicate content Syndicate content