Replies: 1 comment 14 replies
-
For the first problem, it seems like GPOS tables are supported, if you use the right feature. Certainly harfbuzz will always support them, and other applications seem to as well. |
Beta Was this translation helpful? Give feedback.
14 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
(background context)
I and many others have been working on a proposal for an ideographic script called Sitelen Pona in Unicode. Part of this work has been defining an encoding for two of Sitelen Pona’s most distinguishing features from other logographies: extended glyphs and cartouches. Extended glyphs are glyphs that are extended to “reach below” other glyphs, usually helping to disambiguate grammatical groupings of words.
The following is an example of long pi, the most common word to write extended in Sitelen Pona. (It is the L-shaped glyph going below the others.)
jan pi toki pona li jan pi pona mute
(“a toki pona person is a very good person”)
Cartouches surround names transcribed in Sitelen Pona.
ma [ kasi alasa nasin awen telo a ] li suli
Cartouches and other extended glyphs can be nested within extended glyphs. (The proposed encoding technically allows for nesting cartouches, but this isn't attested in usage.)
jan pi ma [ o suli uta ]
(“person of the land of Osu”)
jan pi ma pona pi toki pona
(“person of the good place of toki pona”)
This is pretty straightforward from an encoding perspective, effectively being nothing more than nestable start/end markers.
(the problem)
Problems arise from actually implementing these features in fonts. Most current fonts use a simple approach: hardcoded permutations for different scenarios. For example, the glyph “pona” may have the following variations in a font: base, base with pi underline, base with cartouche, base with reverse ala underline, base with forward ala underline, etc. The main technical issue with permutations is a lack of flexibility to accommodate all of the attested usages of Sitelen Pona, as writers combine extended glyphs and cartouches in uncountably many ways, and even a finite subset can push up against OpenType’s glyph limit, if not completely exceed it.
(the requirements of a solution)
From what I understand, what’s necessary for “100% accurate” Sitelen Pona is:
the ability to reposition glyphs with respect to other glyphs (we have multiple GPOS tables to potentially use for this, but I understand that application compatibility regarding whether or not to apply these is iffy)
This would be used to build extended glyphs/cartouches by e.g. having a “pi.line” glyph that glyphs are positioned on top of, and that can be stacked to build glyphs as deeply nested as desired:
something to deal with variable heights that depend on what exactly is enclosed by an extended glyph or cartouche
My assessment is that whilst implementing positioning of glyphs within nested extensions/cartouches is doable with current OpenType capabilities, implementing variable-height glyphs that are sized with respect to adjacent glyphs is not currently possible and would need something like Beyond Emulation’s
Wasm
table or Graphite in order to implement correctly.(the inquiry)
So, my inquiry is less of a question (because I'm not even sure what questions to ask) and more of a request for a sanity check from people that know this stuff way better than any of us Sitelen Pona users. Does this assessment of what is and isn’t possible and how make sense, or am I missing something/reading something incorrectly?
Beta Was this translation helpful? Give feedback.
All reactions