Munzir Taha wrote:
> > No: common characters, such as parentheses or double quotes 
> are supported
> > even on my system. So, the mechanism is already in place on 
> many systems.
> 
> Please, execuse me but I need more explanation in this issue. 
> When I need to enter parentheses or double quotes, I find
> two different symbols. Do you mean that these two distinct
> symbols are actually one symbol and its mirror made by the
> font designer? <don't laugh>

There is nothing to laugh about, as the matter is definitely confusing. You
have two characters (say "[" and "]"), and each one of them has two glyphs
(LTR and LTR), and the total number of involved glyphs is... two!

What happens is that each character with the "mirrored" property has two
glyphs. For instance:

- U+005B (OPENING SQUARE BRACKET) is "[" in LTR and "]" in RTL;
- U+005D (CLOSING SQUARE BRACKET) is "]" in LTR and "[" in RTL;
- U+221A (SQUARE ROOT) is "|/¯" in LTR and "¯\|" in RTL.

Although we have 6 glyphs for these 3 characters, 2 pairs of glyphs are
identical, so two glyphs can be used for handling four different cases:

- "[" serves for both LTR U+005B and RTL U+005D;
- "]" serves for both LTR U+005D and RTL U+005B;
- "|/¯" only serves as LTR U+221A;
- "¯\|" only serves as RTL U+221A.

When you write text, you use paired punctuation (parentheses, quotes)
according to their *logical* meaning. So, the first character of a text in
brackets is always U+005B and the last one is always U+005D.

If the text is in English, U+005B will be on the left side and look like
"[", while U+005D will be on the right side and look like "]".

In Arabic, it will be all the opposite: U+005B will be on the right side and
look like "]", while U+005D will be on the right side and look like "[".

But the logical meaning and position of U+005B and U+005D (and U+221A, etc.)
does not change. So, for a program that does non-visual processing (e.g. a
parser), all this is irrelevant: for such an application it is always clear
that U+005B is an open bracket and is at the beginning of text, etc.

(By the way, the matter is made even more confusing by the fact that, at a
certain point, Unicode changed the names "OPENING SQUARE BRACKET" and
"CLOSING SQUARE BRACKET" to "LEFT SQUARE BRACKET" and "RIGHT SQUARE
BRACKET".)

> I thought first that this mirror property means I just insert one
> symbol in any application and by changing the direction dir=rtl
> for example in FrontPage, I get the mirrored one</don't laugh>

That is exactly what it *should* happen. Moreover, if the symbol is in the
middle of Arabic text, I guess that it should not even be necessary to set
dir=rtl, as this should be implicit.

> And how can I differentiate between such a thing
> and other sybmols which are made out of different glyphs. In 
> summary, for me as a user the mirror property means nothing
> whereas for a designer it means a lot, am I right?

Quite right. When properly implemented, all this issue should be:

- extra work for font designers and/or system programmers (they have to
handle it);
- an advantage for application programmers (they can write simpler code);
- totally transparent for end users (they see the right glyph and be happy);

Until it is not properly implemented, it is:

- a pain for end users (who apparently miss some symbols);
- a debate for font designers and/or system programmers (they must decide
*who* does it);
- a risk for application programmers (seeing the wrong glyph may lead them
to write wrong code).

_ Marco

Reply via email to