Which Opentype Feature for contextual substitutions?

georg's picture

We are having a discussion about which OT features are best suited for some substitutions for the Unifraktur blackletter fonts. Three of them are contextual: longs-replacement, r-rotunda replacement and an etc.-ligature (et represented by r-rotunda, as it is common with blackletter fonts). The fourth one shall replace Ä, Ö, Ü by Ae, Oe, Ue.

The ligature is quite easily done with [clig].
The long-s replacement shall not be on by default (personally, I don’t recommend automatic replacement on font level, but it can be useful on the web, where a fallback layout shouldn’t look too uncommon to the reader). It’s a quite simple replacement of s before lc-letters and ZWJ by ſ, so the writer has to know the orthographic rules, they can inhibit it using ZWNJ. Now I have seen such replacement implemented as [hist] or [ssXX], but both are recommended to be used with single substitution. I find [hist] is semantically wrong because the long s is not historic in blackletter but mandatory. As for [ssXX], there have been various threads where the argument goes, that for single character replacement [cvXX] should be used, which again is not contextual. Which problems might one face when using a contextual substitution with a non-contextual feature?

The r-rotunda replacement (after letters with a curved stroke on their right) is about the same problem as the long-s one. Just this one actually is historic.

The Umlaut replacement is a single substitution, that would go in [ssXX] or perhaps in [cvXX], probably both adequate?

John Hudson's picture

You don't have to limit the use of contextual lookups to features that are defined as 'contextual'. You can freely use contextual lookups in any feature if it makes sense to do so. Some of my Stylistic Set features in the MS Gabriola font include both non-contextual and contextual lookups, because there are some contextual substitutions that are normative to the particular stylistic variation.

georg's picture

You can freely use contextual lookups in any feature if it makes sense to do so.

I suppose this is equally valid for multiple substitution lookups (Ä → Ae)? If so, what’s the reason for recommending the tags to be used with one certain lookup type in the Open Type Layout Tag Registry?

twardoch's picture

> what’s the reason

Historical (the early OpenType specs assumed that certain lookup types would be tied to certain features). The implementational policy of the major text engine vendors proved that this was an unnecessary limitation. Currently, the implementational suggestions in the OpenType spec for certain features can be treated as "use this if you don't want to think too much".

Syndicate content Syndicate content