BidiMirrored property and ancient scripts

Eli Zaretskii eliz at gnu.org
Mon Jul 27 10:18:09 CDT 2015


I no longer see where this is going.  If there's still some goal,
something you think we should agree or discuss, perhaps you could
spell that out.  Otherwise, I think it' time to quit.

Some random comments:

> Date: Mon, 27 Jul 2015 15:32:01 +0100
> From: Richard Wordingham <richard.wordingham at ntlworld.com>
> Cc: unicode at unicode.org

> > > U+2140 DOUBLE-STRUCK N-ARY SUMMATION gets mirrored, but its glyph is
> > > not replaced by any other character's glyph. Or are you claiming
> > > that left-to-right U+2140 and right-to-left U+2140 are two different
> > > characters?
> > 
> > I'm saying that "providing a mirrored glyph" entails coming up with a
> > character whose glyph can play that role, AFAIU.
> 
> I'll take that as 'No' - the left-to-right and right-to-left forms are
> the same character.  (Unicode has no consistency in this matter.)

I don't know what is meant by "left-to-right and right-to-left forms"
here.  To me, a character has only one form.

> > If you are saying that the "rendering system" here is the shaping
> > engine using the rtlm OTF feature, then you are in fact saying that
> > the mirroring of these characters cannot be implemented with most
> > fonts in wide use today, and with most shaping engines.  That would be
> > a very strange claim, IMO, tantamount to saying that those characters
> > cannot, or don't need to, be mirrored at all in most use cases.
> 
> OpenType can handle it - feature rtlm effectively provides a
> supplementary an RTL cmap, and ltrm an LTR cmap.  It's conceivable that
> DirectWrite and Uniscribe don't support it, but that's unlikely.

Most popular fonts don't, so this support is basically useless, if it
turns out to be a must.

> The decision to mirror is entirely up to the font.

Not at all.  A display engine can make those decisions on its own,
even if it consults the fonts while making those decisions.

> If you still don't believe me, please explain why U+222B INTEGRAL has
> Bidi_Mirrored=Yes but Bidi_Mirroring_Glyph=<none>.

The explanation is in the file: there's no glyph for that.

> > > Because you still seem not to understand the concept of mirroring.
> > 
> > I think you will fare much better, and actually stand a chance of
> > convincing you are right, if you assume your opponents do understand
> > the issues, and just happen to disagree about their interpretation, or
> > misinterpret what you write.
> 
> You won't understand my reasoning unless you accept that Bidi mirroring
> can change a glyph's shape rather than substitute the glyph of another
> character.

Try to convince me in that.

> L4 calls for mandatory 'mirroring'.  Note that mirroring is not exact
> mirroring.  My interpretation works for both Arabic and Hebrew.  The
> UBA Rule L4 calls for some mathematical symbols to take the form
> appropriate for a right-to-left context.  (HL6 allows this set
> to be extended.)  However, from what you say this form depends on the
> language. For example, the basic integral sign flips for Arabic maths,
> but from what you say, I think not for Hebrew maths.

Hebrew always typesets math left to right, so no mirroring of math
symbols, including U+222B INTEGRAL, is ever necessary.

> OpenType can make the mirrored shaped dependent on the language of
> the text.

The language of the text is not always well defined, alas.

> >   L4. A character is depicted by a mirrored glyph if and only if (a)
> >   the resolved directionality of that character is R, and (b) the
> >   Bidi_Mirrored property value of that character is Yes.
> > 
> > That's normative and unequivocal.
> 
> And therefore applies to U+222B INTEGRAL.

Yes, but since there's no glyph, it's a non-issue.

> UBA Section 7 "Mirroring" says:
> 
> "Implementing rule L4 calls for mirrored glyphs. These glyphs may not be
> exact graphical mirror images. For example, clearly an italic
> parenthesis is not an exact mirror image of another— “(” is not the
> mirror image of “)”. Instead, mirror glyphs are those acceptable as
> mirrors within the normal parameters of the font in which they are
> represented."
> 
> This opens up the possibility of the degree of mirroring depending on
> the language being supported.

My reading of that is that there's some freedom in choosing the shape
of the mirrored glyph, but the degree of mirroring is non-negotiable.

> > But that just delineates
> > the difference between boustrophedon and bidirectional text, the
> > latter being subject to the UBA, while the former isn't.
> 
> I didn't say boustrophedon text was subject to the UBA.  I said a
> boustrophedon renderer may modify the text to be rendered so that the
> UBA will layout the text properly.

Given the directional overrides, this is a trivium, I think.

> > > If there is no higher-level protocol in effect, the 'first strong
> > > character' rule (Rules P2 and P3 of the UBA) declares that the
> > > paragraph will be a left-to-right paragraph and will look
> > > like "(a". Had it been declared a right-to-left paragraph by a
> > > higher-level protocol, it would look like "a)". Thus the UBA has a
> > > rôle even for unidirectional left-to-right text.
> 
> > Once the paragraph direction is overridden by a higher-level protocol,
> > the text is no longer unidirectional.  Such overriding is equivalent
> > to enclosing the paragraph in RLE..PDF pair, which makes the text
> > bidirectional by definition.
> 
> And if it isn't overridden, it is the UBA which makes it
> unidirectional.

No, it doesn't.

> The UBA specifies the appearance of an opening parenthesis.

That's bidirectional, not unidirectional.


More information about the Unicode mailing list