Norican is a script face that to a certain extent emulates hand written lettering, yet unlike hand written lettering it doesn’t contain contextual variations across it’s characters. However using opentype programming we can add features to Norican for providing character variants for different contexts. The uppercase ‘U’ in Norican webfont can be seen above, the ‘U’ character joins the lowercase ‘h’ in a way that satisfactorilly mirrors hand written forms, however it fails to join to other characters, such as the lowercase ‘n’, in a natural way (see above). Ideally we would want one version of the uppercase ‘U’ that naturally joins characters with tall ascending stems, but another version of the uppercase ‘U’ that naturally joins other characters, like in the example below.
In this example, we need the font to render one uppercase ‘U’ when it is followed by the lowercase ‘h’, and another version of the ‘U’ when followed by the lowercase ‘n’. This is done by using Contextual Chaining Substitutions in the font, supplied by the Opentype feature of the TrueType font. In FontForge these contextual substitutions are implemented in the following way:
1. Create an alternative uppercase ‘U’
2. Create a new GSUB Lookup
From FontForge’s ‘Element’ menu select the ‘Font Info’ dialogue. From there select the ‘Lookups’ Item (see fig. below).
In the ‘GSUB’ tab, click on ‘Add Lookup’. In the resulting ‘Lookup’ dialogue box choose Type ‘Single Substitution’ and give the Lookup a suitable name in the ‘Lookup Name’ box (see below).
You should NOT add a new ‘Feature’ in this lookup, so just click ‘OK’ to close the Lookup dialogue.
3. Create the Lookup’s Subtable
In the resulting ‘Lookup Subtable’ dialogue you are now going to create the basic substitution of ‘U’ with ‘U.alt’ (see above), in this example the uppercase ‘U’ is the Base Name Glyph, and ‘U.alt’ is the name of the glyph we wish to replace the ‘U’ glyph.
4. Create the Contextual Chaining Substitution Lookup
Create a new Lookup table from the ‘Lookups’ dialogue menu (see fig. 1). Choose ‘Contextual Chaining Substitution’ as the Lookup type in the resulting lookup dialogue.
In this Lookup we are going to set the cicrumstances in which the ‘U.alt’ glyph replaces the ‘U’ glyph.
Give the lookup a suitable name in the ‘Lookup Name’ entry box. The Opentype feature ‘dlig’ (discretionary :igatures) is choosen here for the contextual substitutions as the ‘dlig’ feature is well supported by modern web browsers, but is not used by default. It will need to be implemented within the CSS content by web authors wishing to use the alternatives glyphs in Norican font.
5. Create the Contextual Chaining Substitution Subtable
Once the Lookup has been added (abpve), you must add a Subtable to it. You will then be presented with the subtable dialogue where the actual contextual chains can be set (see below).
Choose ‘By Coverage’ as the chaining format, and click ‘NEXT’ to reach the ‘Edit Chaining’ dialogue (see below)
Text chains that run from left to right (in Western languages) run from top to bottom in this dialogue. In this example we are looking at text chains such as ‘Uh’, ‘Un’, ‘Uk’, ‘Uo’, ‘Ua’, etc, so the first glyph we enter is the uppercase ‘U’ and in the second row we enter those glyphs that we wish to be preceeded by the ‘U.alt’ glyph. So we want the ‘U.alt’ glyph to be used whenever the uppercase ‘U’ is followed by the lowercase ‘b’, ‘f’, ‘h’, ‘k’ and ‘l’. In the column next to the ‘U’ that we want substituted, we add the name of the Lookup that we previously set up to run the substitution of ‘U’ with ‘U.alt’, in this case the Lookup we need was called ‘alternate caps’. Click ‘OK’ to close the Lookups dialogues and the process is complete.
Now, when the ‘dlig’ feature is called from the CSS of a webpage both the ‘U’ and the ‘U.alt’ glyphs will be used depending on the context of the textual chaining (see above).
This method can be used to create different sorts of contextual substitutes in Truetype webfonts, for example, alternative glyphs at the end or beginning of words. In the following text there is being rendered alternative lowercase ‘e’, ‘a’, t, and an alternative ‘ff’ ligature, at the end of each word. The ‘ll’ in the middle of ‘Gellat’ is a standard ligature substitution.
The substitution isn’t restricted to single or pairs of substitutions; chains of many characters can be substituted or whole words substituted if necessary. For example, in the following example the chain ‘No.’ is replaced by a separate glyph, but only when ‘No.’ is followed by a figure.