Hoi!
I rarely outsource my type design research but I'm hitting a wall and would love to know if I'm the only with this particular problem:
When it comes to creating a locl feature for the Dutch language to substitute /i/j with the digraph /ij, how do you handle exceptions to the rule, e.g. loan words like bijou, Fiji, or even the Dutch word bijectie etc? Do you turn a blind eye to this and let the user figure out how to disable the substitution? Do you make exceptions for the most common words? Did anyone come up with a rule that would take care of all exceptions neatly and efficiently without weighing down my font files?
Thanks in advance for your help!
BB
2
Comments
The common method of manually breaking a ligature is to insert a Zero-Width Joiner between those characters. This will, for instance, typeset the – made up word – zalfindustrie 'ointment industry' as two separate words:
The default use of the ligature in the top encourages reading as "zalfin-dustrie". (I tried to come up with a more funny example on short notice, where the actual meaning depends on the reading. I might come back on that later.)
The second line has a ZWJ, which IMO helps with reading. Of course you get that f/i clash in return, which was pretty much the point of having a ligature in the first place.
The third and fourth lines suggest doing something else: compound hyphen, 1/6th space.
Whatever the method a user prefers, I think this should definitely not be something to try and fix in the font file. The default form of your /ij should be "correct" for most regular cases, but in addition to that also "acceptable" for when it rather should not appear.
It's up to the users – and their software – to prevent its use when inappropriate, but if they don't, you still should have a reasonable /ij.
That suggests implementation in a standard or discretionary ligature feature substitution; whereas when we've been asked to implement /ij/ substitution support by Dutch publishers they've preferred this to be a language system <ccmp> or <locl> substitution, i.e. behaviour linked to tagging of text as Dutch and not something that can be disabled by turning a feature off at the UI level.
So disabling the substitution requires either a) intervention at the text level, whether by tagging a word as something other than Dutch or by inserting ZWNJ between the letters, or b) by trying to define all exception words that might be expected to occur in Dutch text as contextual exceptions in the <ccmp> feature code. Obviously, the latter doesn't address Bianca's 'neatly and efficiently without weighing down my font files', and the set of such words is open ended and liable to change. [I am reminded of efforts to support Urdu newspaper setting with fonts that contained 20,000+ complete word ligatures. The system struggled to accommodate the rapid succession of Soviet leaders in the 1980s whose names needed to be transliterated into nastaliq. There will always be new foreign words and proper nouns being introduced into a language.]
There are a couple of different aspects to the Dutch IJ/ij vowel.
One is as a glyph that can take a distinctive visual form, especially in display typefaces. I suppose this could be considered a 'novelty glyph', although it gives Dutch display typography a distinctive national character.
The other aspect is as a digraph letter with specific textual layout behaviours with regard to letterspacing (tracking), vertical text, and accentuation.
I'm generally making text types for continuous reading, so the form of IJ/ij in my fonts is typically identical to a regularly spaced I+J and i+j combination; indeed, I build the IJ/ij glyphs as composites. But at least some Dutch publishers are concerned with those layout behaviours and have requested glyph level support for these as default for Dutch language processing.
That looks like U+0132 and U+0133 may soon be found in almost all texts written in Dutch.