Re: Arabic support

Thamer Mahmoud <[email protected]> Mon, 06 Sep 2010 16:45:00 +0300
Newsgroups gmane.emacs.devel,gmane.emacs.bidi
Message-ID <[email protected]>
--=-=-=

>> From: Kenichi Handa <[email protected]>
>> Date: Thu, 26 Aug 2010 10:10:05 +0900
>> 
>> I've just committed changes to trunk for Arabic shaping.  If
>> there're any Arabic users in this list, please check the
>> displaying of Arabic text.  On GNU/Linux system, you must
>> compile Emacs with libotf and m17n-lib (configure script
>> should detect them automatically).
>

Thanks for working on this. Here is my take:

* Attached are two screenshots showing the Arabic line from the HELLO
  file rendered by gedit and Emacs using the same font (Nazli-20 from
  ttf-farsiweb). Notice that in Emacs not all fonts have their LAM and
  ALIF properly replaced by the LAM-ALIF ligature. Also the diacritics
  (SHADDA) appears lower and less legible for the same font.

* The third attachment shows that when highlighting a region of an
  Arabic word, the cursor at the edges of the visible selection "breaks"
  the shaping and reshapes the characters around it into their isolated
  form. This creates a wave-effect of moving characters with some
  visible artifacts and bad indention issues.

* While the cursor is at a composed character (e.g., SEEN+SHADDA),
  pressing C-p moves point unexpectedly to the beginning of the current
  line.

* I do at least see one "trap" with C-p, although it is hard to
  reproduce. You can try moving 4 or 5 lines below the Arabic line in
  the HELLO file, then move upward using 4-5 C-p and get the cursor at
  the SEEN+SHADDA. After which any further C-p jumps between SEEN and
  LAM-ALIF, never going to the previous line.

* For those using Debian (Squeeze), I had to install not just the
  libm17n and libm17n-dev packages, but also m17n-db. It seems that the
  configure script doesn't detect or know about the status of (the
  Debian-specific) m17n-db.

Thanks again,
Thamer


--=-=-=
Content-Type: image/png
Content-Disposition: attachment; filename=arabic-emacs24.png
Content-Transfer-Encoding: base64
Content-Description: Emacs rendering

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
--=-=-=
Content-Type: image/png
Content-Disposition: attachment; filename=arabic-gedit.png
Content-Transfer-Encoding: base64
Content-Description: Gedit rendering

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
X6Vx1xbOhgAAAABJRU5ErkJggg==
--=-=-=
Content-Type: image/png
Content-Disposition: attachment; filename=my_iamge.png
Content-Transfer-Encoding: base64
Content-Description: Select Region

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
TkSuQmCC
--=-=-=--