Miki Dovrat wrote:

> The users (at least me) don't know whether the space is RTL or LTR because
> they don't "mark RTL code" since it is annoying to look at when writing a
> document in RTL.

I don't understand what you mean here. When you write a mixed hebrew/english
document you have to explicitly set the language of the foreign part
anyway. The spaces would simply be part of this mechansim, no extra
"marking" required.
Whether this explicit language setting should be replaced by some automatic
algorithm is a different issue that has been discussed. But even if such an
algorithm is implemented the result is still that each character has an
associated language that defines the direction.

> I don't know how difficult it is to code this, but I think the space
> should be "neutral", and that the direction should be decided according to
> whether the curser is currently to the right or to the left of this border
> space.

And how would you output such a neutral space to LaTeX? If you have visually
on screen

RTL LTR

where RTL is in RTL direction and LTR in LTR direction you need to decide
whether to output

\R{ LTR}LTR

or

\R{LTR} LTR}

to LaTeX. How would you decide which variant to use without an explicit LTR
property of the space? At first glance it might look as if both are
equivalent, but this is not the case if other font changes (e.g. size) come
into the play, and even if not your LTR font might have a different size of
the space as your RTL font. This is exactly the reason why spaces are not
handled specially anymore for font changes, and are output exactly as
entered.

> Lets say we have LTR RTL and the space between them.  If the cursor is to
> the left - continue English (you will be able to type another space there
> and continue writing), and if you are to the right of the border space,
> continue writing Hebrew (again, you will be able to enter another RTL
> space there as well). Extra spaces should then be removed, like lyx does
> today.
> 
> The same for RTL LTR.

The non-magic approach could be made to work exactly like that: If the
cursor is at such a boundary with a space, set the current font that will
be used for newly typed stuff either to the font at the left or the font at
the right, according to the rules you gave. Strictly speaking this is a bit
of magic, but I believe that in contrast to the neutral space this magic
could be implemented in a reasonable manner, because it would only affect
editing. A neutral space would require extra code in may different places.

The result would still be that each space has an associated direction, so
you could still create the other two cases of the four Stefan mentioned by
inserting and removing some temporary characters.


Georg

Reply via email to