Mark-Jan Nederhof
2016-06-06 18:51:29 UTC
I'm trying to develop an OpenType font for Ancient Egyptian hieroglyphic text,
with actual formatting of groups of hieroglyphs that are next to or above
one another. So far with FontForge, it is working like a charm, that is,
it isn't easy, and OpenType was clearly not designed for something this
complicated, but at least the behaviour of the substitution rules is
consistent.
The problem is that some other tools seem to interpret the features differently.
Based on the OpenType documentation alone, I find it impossible to
determine what
is the 'correct' interpretation. Concretely, if I add one of the following three
feature file in FontForge, generate a font, and view the results in FireFox,
I get the behaviour as in the commented lines:
# ABCDE -> CECCECCECEDDE
feature liga {
sub A by B B B;
sub B by E;
} liga;
feature liga {
sub B by C E C;
sub C by D;
} liga;
or:
# ABCDE -> EEEEDDE
feature liga {
sub A by B B B;
} liga;
feature liga {
sub B by E;
} liga;
feature liga {
sub B by C E C;
} liga;
feature liga {
sub C by D;
} liga;
or:
# ABCDE -> BBBCECEDDE
feature liga {
sub A by B B B;
sub B by E;
sub B by C E C;
sub C by D;
} liga;
What this suggests is the following behaviour: If a rule within one
block matches
at some input position, the next rules within the same block are not
applied to the
output of that rule. However, I tried the same thing in TruFont and
all three cases
above give the same result EEEEDDE. A colleague using RoboFont even
claims the first and
the second case above give compiler errors, suggesting that only one block per
feature (here 'liga') is allowed.
I would much appreciate if anyone could shed any light on this, e.g.:
* Is the difference between FontForge and TruFont and RoboFont due to mistaken
interpretations of the OpenType specs?
* Or are there several different but valid interpretations of the
OpenType specs?
* Once I export an OTF font (e.g. using FontForge), can I at least expect that
rendered text looks the same on all platforms regardless of the differences in
interpretation of OpenType features?
Thanks in advance,
Mark-Jan
with actual formatting of groups of hieroglyphs that are next to or above
one another. So far with FontForge, it is working like a charm, that is,
it isn't easy, and OpenType was clearly not designed for something this
complicated, but at least the behaviour of the substitution rules is
consistent.
The problem is that some other tools seem to interpret the features differently.
Based on the OpenType documentation alone, I find it impossible to
determine what
is the 'correct' interpretation. Concretely, if I add one of the following three
feature file in FontForge, generate a font, and view the results in FireFox,
I get the behaviour as in the commented lines:
# ABCDE -> CECCECCECEDDE
feature liga {
sub A by B B B;
sub B by E;
} liga;
feature liga {
sub B by C E C;
sub C by D;
} liga;
or:
# ABCDE -> EEEEDDE
feature liga {
sub A by B B B;
} liga;
feature liga {
sub B by E;
} liga;
feature liga {
sub B by C E C;
} liga;
feature liga {
sub C by D;
} liga;
or:
# ABCDE -> BBBCECEDDE
feature liga {
sub A by B B B;
sub B by E;
sub B by C E C;
sub C by D;
} liga;
What this suggests is the following behaviour: If a rule within one
block matches
at some input position, the next rules within the same block are not
applied to the
output of that rule. However, I tried the same thing in TruFont and
all three cases
above give the same result EEEEDDE. A colleague using RoboFont even
claims the first and
the second case above give compiler errors, suggesting that only one block per
feature (here 'liga') is allowed.
I would much appreciate if anyone could shed any light on this, e.g.:
* Is the difference between FontForge and TruFont and RoboFont due to mistaken
interpretations of the OpenType specs?
* Or are there several different but valid interpretations of the
OpenType specs?
* Once I export an OTF font (e.g. using FontForge), can I at least expect that
rendered text looks the same on all platforms regardless of the differences in
interpretation of OpenType features?
Thanks in advance,
Mark-Jan