RE: Question about the directionality of "Old Hungarian" (document N3531)

From: Kent Karlsson (
Date: Tue Nov 04 2008 - 01:54:57 CST

  • Next message: Kent Karlsson: "RE: Question about the directionality of "Old Hungarian" (document N3531)"

    John Hudson wrote:
    > Kent Karlsson wrote:
    > > It does NOT cover the RTL case, as I wrote. There is not
    > > even a loophole (which I think is a bad approach anyway) in
    > > the bidi algorithm that would cover Old Hungarian as RTL
    > > overridden as LTR to even sometimes produce mirrored glyphs.
    > POI: there is an OpenType working group who are spec'ing new layout
    > features for LTR/RTL *glyph* mirroring, for inclusion in the
    > v1.6 of the
    > OT spec. Unicode provides for some mirroring at the character level,
    > while other mirroring must happen at the glyph level, which
    > implies font
    > features; and of course the result of glyph mirroring must not reverse
    > the result of character mirroring.

    I'm not sure what you mean by "character level mirroring" vs. "glyph
    mirroring" here.

    Even so, this is my take:

    The bidi algorithm sometimes specifies to mirror something, this
    something is on the way from character to glyph, but the bidi algorithm
    is specified on characters.

    While Unicode does not make this explicit, there is an expectation that
    "truly" paired symmetric-ish punctuation (parentheses, brackets, similar,
    but NOT quote marks) need to be mirrored by using the opposite character
    in the pair. Otherwise italics will look funny.

    Other characters to be mirrored, when the bidi algorithm says so, are
    expected to be glyph mirrored (there need not be a character that has
    an appropriate mirror glyph). Except for the loophole I mentioned before,
    and except for the parentheses/brackets/... mentioned above, these are
    for characters that have (or should have) "upright" glyphs even when
    surrounding text is italic.

    Note that the data file BidiMirroring.txt is for applications that
    cannot do glyph based mirroring (and for parentheses/brackets/...
    also when glyph based mirroring is available).

    When the bidi algorithm says not to mirror, the font is *not* to do
    mirroring (based on any bidi results). Otherwise there is something
    wrong. That is why I was talking about what the bidi algorithm says
    to mirror, and not to mirror, as well as the (ugly) loophole for
    LTR overridden to RTL (but, currently, no such loophole for RTL
    overridden as LTR).

    This would be something handled by the font handling system (mirror
    the given glyph), NOT something that involves font features or GSUB
    at all. It's not clear how to handle italics for "loophole mirrored
    characters", but if it is just obliquing, maybe the angle of obliquing
    should be adjusted (or logically be done after mirroring).

    > I believe this approach will resolve the kind of glyph mirroring issues
    > Kent describes. Indeed, Old Hungarian came up in our discussions as an
    > example of a default RTL script that might require an <ltra> variant
    > GSUB feature.

    I would disagree. See above and messages I sent yesterday. Note that
    there is still no loophole (nor anything better), as yet, in the bidi
    algorithm that allows for mirroring of an RTL character's glyph when
    overridden to LTR.

    Graphically mirroring (or turning, which seems to occur as well) of lines,
    or line segments, would apply to everything in a line (segment), and thus
    be entirely independent of any font data (features, GSUB, ...) as well.

            /kent k

    > John Hudson
    > --
    > Tiro Typeworks
    > Gulf Islands, BC
    > You can't build a healthy democracy with people
    > who believe in little green men from Venus.
    > -- Arthur C. Clark

    This archive was generated by hypermail 2.1.5 : Tue Nov 04 2008 - 01:57:51 CST