all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "\"Martin J. Dürst\"" <duerst@it.aoyama.ac.jp>
To: Eli Zaretskii <eliz@gnu.org>
Cc: eli.osherovich@gmail.com, md5i@md5i.com,
	oshima@sw.it.aoyama.ac.jp, emacs-bidi@gnu.org,
	emacs-devel@gnu.org
Subject: Re: [emacs-bidi] Re: improving bidi documents display
Date: Fri, 04 Mar 2011 19:34:39 +0900	[thread overview]
Message-ID: <4D70C03F.8090106@it.aoyama.ac.jp> (raw)
In-Reply-To: <83lj0yxj85.fsf@gnu.org>

Hello Eli,

On 2011/03/02 13:02, Eli Zaretskii wrote:
>> Date: Wed, 02 Mar 2011 10:50:19 +0900
>> From: "Martin J. Dürst"
>>   <duerst@it.aoyama.ac.jp>
>> CC: md5i@md5i.com, eli.osherovich@gmail.com, emacs-bidi@gnu.org,
>>          emacs-devel@gnu.org, oshima@sw.it.aoyama.ac.jp
>>
>> Okay, we'll wait. But please note that we are interested not in the
>> reordering of the text inside each property, but in the text inside the
>> properties participating in the overall bidi algorithm and reordering of
>> the underlying text.
>
> For that, the display strings don't need to have text in them.  You
> can just have an overlay with a special property, no?

That would be possible. It would essentially mean simulating Bidi 
control characters/structure with overlays. As an example, to simulate 
embeddings and override (I'll call these bidi ranges from now on), we 
would need an overlay that covers the bidi range, with a new property 
(let's name it bidi-range just for the moment) that takes four different 
values corresponding to LRE, RLE, LRO, and RLO. Because the overlay 
indicates the extent of the bidi range, there is no need for something 
like the PDF character.

As an equivalent for LRM and RLM, the most straightforward way to 
implement them would be a property (maybe the same as above) that can 
take the values LRM-before, LRM-after, RLM-before, and RLM-after.

The above is a very direct simulation; I don't know how much easier it 
would be to implement than just Bidi processing the before and after 
text in an overlay.

There are some issues with the proposal above. First, if two overlays 
indicating bidi ranges overlap without one of them completely being 
contained in the other, then it has to be defined exactly what that 
means. (It's not possible to have such a case when using bidi control 
characters.) Second, there may be a case where one wants a Bidi mark 
(LRM or RLM) both before and after a character (or range of characters). 
Actually, that's quite a frequent case. That could be addressed by 
having bidi-mark-before and bidi-mark-after properties (or two separate 
overlays).

It may also be possible to have some more elaborate bidi properties on 
overlays. One example would be to have a property to set the bidi class 
of a character. Strong LTR and strong RTL in particular would be quite 
helpful. Currently, we simulate them by having LRMs or RLMs before and 
after a character. Another idea is to have something equivalent to bidi 
insulation as currently being discussed for HTML5/CSS3. See
http://www.w3.org/International/docs/html-bidi-requirements/#bidi-isolation 
for a problem description, 
http://dev.w3.org/html5/spec/Overview.html#the-bdi-element for the HTML5 
solution, and
http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi for the 
corresponding piece of technology in CSS. Bidi isolation can be 
simulated with the existing bidi control characters, but it's necessary 
to look at the bidi classes of surrounding characters.

Regards,    Martin.

-- 
#-# Martin J. Dürst, Professor, Aoyama Gakuin University
#-# http://www.sw.it.aoyama.ac.jp   mailto:duerst@it.aoyama.ac.jp



  reply	other threads:[~2011-03-04 10:34 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-24 12:32 improving bidi documents display Eli Osherovich
2011-02-24 19:54 ` Eli Zaretskii
2011-02-27 10:01   ` Michael Welsh Duggan
2011-02-27 10:34     ` "Martin J. Dürst"
2011-02-27 21:19       ` Eli Zaretskii
2011-03-02  1:50         ` "Martin J. Dürst"
2011-03-02  4:02           ` Eli Zaretskii
2011-03-04 10:34             ` "Martin J. Dürst" [this message]
2011-02-27 21:15     ` Eli Zaretskii
2011-02-28  1:10       ` Miles Bader
2011-02-28  4:02         ` Eli Zaretskii
2011-03-02  0:58       ` James Cloos
2011-03-02 18:59         ` Eli Zaretskii
2011-03-02  2:09       ` [emacs-bidi] " "Martin J. Dürst"
2011-03-02  2:39         ` Miles Bader
2011-03-02  4:03           ` Eli Zaretskii
2011-03-02  7:06             ` Miles Bader
2011-03-02 18:39               ` Eli Zaretskii
2011-03-03  1:32                 ` Miles Bader
2011-03-03  4:07                   ` Eli Zaretskii
2011-03-03  6:11                     ` "Martin J. Dürst"
2011-03-03 10:40                       ` [emacs-bidi] " Eli Zaretskii
2011-03-04 10:34                         ` "Martin J. Dürst"
2011-03-04  3:58                 ` Stefan Monnier
2011-03-04  8:04                   ` Eli Zaretskii
2011-03-04  4:25                 ` Miles Bader
2011-03-04  9:52                   ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D70C03F.8090106@it.aoyama.ac.jp \
    --to=duerst@it.aoyama.ac.jp \
    --cc=eli.osherovich@gmail.com \
    --cc=eliz@gnu.org \
    --cc=emacs-bidi@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=md5i@md5i.com \
    --cc=oshima@sw.it.aoyama.ac.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.