From: Kent Karlsson (firstname.lastname@example.org)
Date: Tue Nov 04 2008 - 01:54:57 CST
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
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.
> John Hudson
> Tiro Typeworks www.tiro.com
> Gulf Islands, BC email@example.com
> 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