n8willis / opentype-shaping-documents

Documentation of OpenType shaping behavior
171 stars 14 forks source link

[Khmer] Below-base consonant forms #126

Closed adrianwong closed 2 years ago

adrianwong commented 3 years ago

In the preamble of this section, we mention the following:

  • The first consonant of a syllable is always the base consonant.

...

  • The below-base forms feature is applied to consonants before or after the base consonant.

Is it possible for a consonant to exist before a base consonant, if the first consonant of a syllable is always the base consonant?

adrianwong commented 3 years ago

Oh, there is the pre-base reordering consonant "Ro". But that doesn't appear to take on below-base form.

javiersola commented 3 years ago

In code-point order, you cannot have a consonant before the base. Graphically, the subjoin form of RO (which in code-point order goes after the consonant) is placed before and below the base consonant. Rendering engines will reorder this consonant, as well as many vowels that have a part that is placed graphically before the base consonant.

n8willis commented 3 years ago

In the preamble of this section, we mention the following:

  • The first consonant of a syllable is always the base consonant.

...

  • The below-base forms feature is applied to consonants before or after the base consonant.

Is it possible for a consonant to exist before a base consonant, if the first consonant of a syllable is always the base consonant?

Yeah; all of the resources I have access to agree that the first consonant is definitively base. The BLWF mode may have been a survivor from an old iteration through the HB source, which has undoubtedly seen improvements compared to when I used it.

(Slim chance, alternatively, that there were also some weird-but-widely-distributed fonts expecting some out-of-spec BLWF behavior, but I don't recall that. @javiersola would be in a better position to know that — are you aware of any "exceptional" fonts misusing BLWF? I'll also hunt through the library some, but unless something is found it's probably a simple correction to make here.)

javiersola commented 3 years ago

No, it is not possible. Any consonant (or independent vowel) not preceded by a Coeng character is the base character. This always marks the beginning of a syllable. No consonant can go before the base.

Javier

On 5/31/21 11:28 PM, n8willis wrote:

In the preamble of this
<https://github.com/n8willis/opentype-shaping-documents/blob/master/opentype-shaping-khmer.md#the-khmr-shaping-model>
section, we mention the following:

      * The first consonant of a syllable is always the base
        consonant.

    ...

      * The below-base forms feature is applied to consonants
        before or after the base consonant.

Is it possible for a consonant to exist before a base consonant,
if the first consonant of a syllable is always the base consonant?

Yeah; all of the resources I have access to agree that the first consonant is definitively base. The BLWF mode may have been a survivor from an old iteration through the HB source, which has undoubtedly seen improvements compared to when I used it.

(Slim chance, alternatively, that there were also some weird-but-widely-distributed fonts expecting some out-of-spec BLWF behavior, but I don't recall that. @javiersola https://github.com/javiersola would be in a better position to know that — are you aware of any "exceptional" fonts misusing BLWF? I'll also hunt through the library some, but unless something is found it's probably a simple correction to make here.)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/n8willis/opentype-shaping-documents/issues/126#issuecomment-851587470, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGA7SSZCMAX6AKQNTZS6Q3LTQO2LTANCNFSM45GE2EMQ.

javiersola commented 3 years ago

My comment was about code-point order.

No other forms were allowed in the original Pango, QT and ICU shapers.

Graphically, as you mention, the below form of RO is reordered and placed before and below the base (and below any other subjoin consonant that precedes it). In Khmer language no other subjoin consonant goes after subjoin RO (three consecutive consonants with RO as the middle one cannot be pronounced).

Javier

On 5/31/21 11:28 PM, n8willis wrote:

In the preamble of this
<https://github.com/n8willis/opentype-shaping-documents/blob/master/opentype-shaping-khmer.md#the-khmr-shaping-model>
section, we mention the following:

      * The first consonant of a syllable is always the base
        consonant.

    ...

      * The below-base forms feature is applied to consonants
        before or after the base consonant.

Is it possible for a consonant to exist before a base consonant,
if the first consonant of a syllable is always the base consonant?

Yeah; all of the resources I have access to agree that the first consonant is definitively base. The BLWF mode may have been a survivor from an old iteration through the HB source, which has undoubtedly seen improvements compared to when I used it.

(Slim chance, alternatively, that there were also some weird-but-widely-distributed fonts expecting some out-of-spec BLWF behavior, but I don't recall that. @javiersola https://github.com/javiersola would be in a better position to know that — are you aware of any "exceptional" fonts misusing BLWF? I'll also hunt through the library some, but unless something is found it's probably a simple correction to make here.)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/n8willis/opentype-shaping-documents/issues/126#issuecomment-851587470, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGA7SSZCMAX6AKQNTZS6Q3LTQO2LTANCNFSM45GE2EMQ.

n8willis commented 3 years ago

No, it is not possible. Any consonant (or independent vowel) not preceded by a Coeng character is the base character. This always marks the beginning of a syllable. No consonant can go before the base.

Thanks Javier. I meant more along the lines of "are there widely-deployed fonts misusing features that we ought to be aware of here" (which is certainly the case for other script and language combinations), so that we could note those in errata. Sounds like you're saying there's not, which is good news.

n8willis commented 2 years ago

Got lost on this; fixed in f88b046.

Still feel like there may have been some old version of an external doc that didn't make this distinction, but if I can't relocate it it's not going to be possible to erratacize it anyway. And it's vanishingly less important to do so, unless it can be pinned to some particular Windows (or whatever) version.