From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/49076 Path: news.gmane.org!not-for-mail From: Khaled Hosny Newsgroups: gmane.comp.tex.context Subject: Re: Arabic shaping Date: Sun, 5 Apr 2009 16:48:28 +0200 Message-ID: <20090405144828.GA7277@khaled-laptop> References: <20090404162034.GA19564@khaled-laptop> <49D87707.7040405@wxs.nl> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1759055833==" X-Trace: ger.gmane.org 1238942979 4582 80.91.229.12 (5 Apr 2009 14:49:39 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 5 Apr 2009 14:49:39 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sun Apr 05 16:50:57 2009 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by lo.gmane.org with esmtp (Exim 4.50) id 1LqTgU-0002Zo-VR for gctc-ntg-context-518@m.gmane.org; Sun, 05 Apr 2009 16:50:55 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 329171FB39; Sun, 5 Apr 2009 16:49:25 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 15560-08-7; Sun, 5 Apr 2009 16:48:52 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id 92DF71FAD7; Sun, 5 Apr 2009 16:48:52 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id BEA3A1FAD7 for ; Sun, 5 Apr 2009 16:48:50 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (smtp.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 15560-08-6 for ; Sun, 5 Apr 2009 16:48:41 +0200 (CEST) Original-Received: from filter2-ams.mf.surf.net (filter2-ams.mf.surf.net [192.87.102.70]) by ronja.ntg.nl (Postfix) with ESMTP id B00E21FA4C for ; Sun, 5 Apr 2009 16:48:41 +0200 (CEST) Original-Received: from wf-out-1314.google.com (wf-out-1314.google.com [209.85.200.169]) by filter2-ams.mf.surf.net (8.13.8/8.13.8/Debian-3) with ESMTP id n35Emdfc008478 for ; Sun, 5 Apr 2009 16:48:39 +0200 Original-Received: by wf-out-1314.google.com with SMTP id 25so1821409wfc.5 for ; Sun, 05 Apr 2009 07:48:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:date:from:to:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=wcht+UuA43GrSx8XS1ZfAk6I1QFR1+AgjFYVWgA5+w4=; b=l024q6VfIE9fL86Njpdr6fixC3GHxnG1hNv2T0itkPYWEs0WOC4ULpmUuWQv6ukj/O JYzx22ACl70e6DpfJ9nJ6MsnC0hOoKJ/Ez/gRcCAE6p0wRMyWg429lRBIpTYF8mHrB0K xf6+doC+DvI6x9SlsgEK1WFOpp0ftHpHpk7B0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:date:from:to:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=hAABNB/lxqeY7mLNciI0kwlIEYmQeagrZBsmuNCOPHhlv7+wEQnaegPwPKAaH3ZhF3 vrcYQ73gEEWy8vCD6davQTZTtgfaIlUSjRoY1nh059+rvbubZ56yjfL1qk8Fn5JMJRRl sITR+kT9WPeCM3K45ZaEuemrm46HQD8gdLveg= Original-Received: by 10.142.156.2 with SMTP id d2mr979395wfe.179.1238942918111; Sun, 05 Apr 2009 07:48:38 -0700 (PDT) Original-Received: from localhost ([41.237.40.66]) by mx.google.com with ESMTPS id 30sm6068788wfd.15.2009.04.05.07.48.34 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 05 Apr 2009 07:48:36 -0700 (PDT) In-Reply-To: <49D87707.7040405@wxs.nl> User-Agent: Mutt/1.5.18 (2008-05-17) X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=209.85.200.169; country=US; region=CA; city=Mountain View; postalcode=94043; latitude=37.4192; longitude=-122.0574; metrocode=807; areacode=650; http://maps.google.com/maps?q=37.4192,-122.0574&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 204106759 - eac98612cdc3 - 20090405 X-Scanned-By: CanIt (www . roaringpenguin . com) on 192.87.102.70 X-Virus-Scanned: amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.11 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl X-Virus-Scanned: amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:49076 Archived-At: --===============1759055833== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7iMSBzlTiPOCCT2k" Content-Disposition: inline --7iMSBzlTiPOCCT2k Content-Type: multipart/mixed; boundary="FCuugMFkClbJLl1L" Content-Disposition: inline --FCuugMFkClbJLl1L Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Apr 05, 2009 at 11:16:55AM +0200, Hans Hagen wrote: > Khaled Hosny wrote: >> Currently 'font-ota.lua' hard codes the Arabic shaping properties,and it >> doesn't seem to be complete (e.g. the =DA=A4 as in =D8=A3=DA=A4=D8=A7= =D8=B3=D8=AA is not joined), I >> think such information belong to 'char-def.lua' and should be derived >> from UCD, which provide 'ArabicShaping.txt[1]', covering Arabic, Syriac >> and N'Ko scripts which all need the same shaping as Arabic. > > indeed this info will be moved to char def at some point (same for some = =20 > cjk properties) but for the moment this is easier to hack; if you have = =20 > patches, just let us know (remider for idris: you also had some, these = =20 > symbols showing up in black in tre tracer ..) OK, the attached patch should added all Arabic entries from ArabicShaping.txt, I tested some Arabic, Persian and Urdu samples and all seem to be OK. This also fixes a small bug, 0629 (TEH MARBUTA) were marked as dual joining while is is right joining only. Regards, Khaled --=20 Khaled Hosny Arabic localiser and member of Arabeyes.org team Free font developer --FCuugMFkClbJLl1L Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="font-ota.lua.diff" Content-Transfer-Encoding: quoted-printable --- font-ota.lua.old 2009-04-05 16:37:45.000000000 +0200 +++ font-ota.lua 2009-04-05 16:41:07.000000000 +0200 @@ -111,23 +111,65 @@ local zwj =3D 0x200D =20 local isol =3D { - [0x0621] =3D true, [zwnj] =3D true, + [0x0600] =3D true, [0x0601] =3D true, [0x0602] =3D true, [0x0603] =3D = true, + [0x0608] =3D true, [0x060B] =3D true, [0x0621] =3D true, [0x0674] =3D = true, + [0x06DD] =3D true, [zwnj] =3D true, } =20 local isol_fina =3D { - [0x0622] =3D true, [0x0623] =3D true, [0x0624] =3D true, [0x0625] =3D = true, [0x0627] =3D true, [0x062F] =3D true, - [0x0630] =3D true, [0x0631] =3D true, [0x0632] =3D true, - [0x0648] =3D true, [0x0671] =3D true, [0x0698] =3D true, - [0xFEF5] =3D true, [0xFEF7] =3D true, [0xFEF9] =3D true, [0xFEFB] =3D = true, + [0x0622] =3D true, [0x0623] =3D true, [0x0624] =3D true, [0x0625] =3D = true, + [0x0627] =3D true, [0x0629] =3D true, [0x062F] =3D true, [0x0630] =3D = true, + [0x0631] =3D true, [0x0632] =3D true, [0x0648] =3D true, [0x0671] =3D = true, + [0x0672] =3D true, [0x0673] =3D true, [0x0675] =3D true, [0x0676] =3D = true, + [0x0677] =3D true, [0x0688] =3D true, [0x0689] =3D true, [0x068A] =3D = true, + [0x068B] =3D true, [0x068C] =3D true, [0x068D] =3D true, [0x068E] =3D = true, + [0x068F] =3D true, [0x0690] =3D true, [0x0691] =3D true, [0x0692] =3D = true, + [0x0693] =3D true, [0x0694] =3D true, [0x0695] =3D true, [0x0696] =3D = true, + [0x0697] =3D true, [0x0698] =3D true, [0x0699] =3D true, [0x06C0] =3D = true, + [0x06C3] =3D true, [0x06C4] =3D true, [0x06C5] =3D true, [0x06C6] =3D = true, + [0x06C7] =3D true, [0x06C8] =3D true, [0x06C9] =3D true, [0x06CA] =3D = true, + [0x06CB] =3D true, [0x06CD] =3D true, [0x06CF] =3D true, [0x06D2] =3D = true, + [0x06D3] =3D true, [0x06D5] =3D true, [0x06EE] =3D true, [0x06EF] =3D = true, + [0x0759] =3D true, [0x075A] =3D true, [0x075B] =3D true, [0x076B] =3D = true, + [0x076C] =3D true, [0x0771] =3D true, [0x0773] =3D true, [0x0774] =3D = true, + [0x0778] =3D true, [0x0779] =3D true, } =20 local isol_fina_medi_init =3D { - [0x0626] =3D true, [0x0628] =3D true, [0x0629] =3D true, [0x062A] =3D = true, [0x062B] =3D true, [0x062C] =3D true, [0x062D] =3D true, [0x062E] =3D= true, - [0x0633] =3D true, [0x0634] =3D true, [0x0635] =3D true, [0x0636] =3D = true, [0x0637] =3D true, [0x0638] =3D true, [0x0639] =3D true, [0x063A] =3D= true, - [0x0640] =3D true, -- tadwil - [0x0641] =3D true, [0x0642] =3D true, [0x0643] =3D true, [0x0644] =3D = true, [0x0645] =3D true, [0x0646] =3D true, [0x0647] =3D true, [0x0649] =3D= true, [0x064A] =3D true, - [0x067E] =3D true, [0x0686] =3D true, [0x06AF] =3D true, [0x06A9] =3D = true, [0x06CC] =3D true, - [zwj] =3D true, + [0x0626] =3D true, [0x0628] =3D true, [0x062A] =3D true, [0x062B] =3D = true, + [0x062C] =3D true, [0x062D] =3D true, [0x062E] =3D true, [0x0633] =3D = true, + [0x0634] =3D true, [0x0635] =3D true, [0x0636] =3D true, [0x0637] =3D = true, + [0x0638] =3D true, [0x0639] =3D true, [0x063A] =3D true, [0x063B] =3D = true, + [0x063C] =3D true, [0x063D] =3D true, [0x063E] =3D true, [0x063F] =3D = true, + [0x0640] =3D true, [0x0641] =3D true, [0x0642] =3D true, [0x0643] =3D = true, + [0x0644] =3D true, [0x0645] =3D true, [0x0646] =3D true, [0x0647] =3D = true, + [0x0649] =3D true, [0x064A] =3D true, [0x066E] =3D true, [0x066F] =3D = true, + [0x0678] =3D true, [0x0679] =3D true, [0x067A] =3D true, [0x067B] =3D = true, + [0x067C] =3D true, [0x067D] =3D true, [0x067E] =3D true, [0x067F] =3D = true, + [0x0680] =3D true, [0x0681] =3D true, [0x0682] =3D true, [0x0683] =3D = true, + [0x0684] =3D true, [0x0685] =3D true, [0x0686] =3D true, [0x0687] =3D = true, + [0x069A] =3D true, [0x069B] =3D true, [0x069C] =3D true, [0x069D] =3D = true, + [0x069E] =3D true, [0x069F] =3D true, [0x06A0] =3D true, [0x06A1] =3D = true, + [0x06A2] =3D true, [0x06A3] =3D true, [0x06A4] =3D true, [0x06A5] =3D = true, + [0x06A6] =3D true, [0x06A7] =3D true, [0x06A8] =3D true, [0x06A9] =3D = true, + [0x06AA] =3D true, [0x06AB] =3D true, [0x06AC] =3D true, [0x06AD] =3D = true, + [0x06AE] =3D true, [0x06AF] =3D true, [0x06B0] =3D true, [0x06B1] =3D = true, + [0x06B2] =3D true, [0x06B3] =3D true, [0x06B4] =3D true, [0x06B5] =3D = true, + [0x06B6] =3D true, [0x06B7] =3D true, [0x06B8] =3D true, [0x06B9] =3D = true, + [0x06BA] =3D true, [0x06BB] =3D true, [0x06BC] =3D true, [0x06BD] =3D = true, + [0x06BE] =3D true, [0x06BF] =3D true, [0x06C1] =3D true, [0x06C2] =3D = true, + [0x06CC] =3D true, [0x06CE] =3D true, [0x06D0] =3D true, [0x06D1] =3D = true, + [0x06FA] =3D true, [0x06FB] =3D true, [0x06FC] =3D true, [0x06FF] =3D = true, + [0x0750] =3D true, [0x0751] =3D true, [0x0752] =3D true, [0x0753] =3D = true, + [0x0754] =3D true, [0x0755] =3D true, [0x0756] =3D true, [0x0757] =3D = true, + [0x0758] =3D true, [0x075C] =3D true, [0x075D] =3D true, [0x075E] =3D = true, + [0x075F] =3D true, [0x0760] =3D true, [0x0761] =3D true, [0x0762] =3D = true, + [0x0763] =3D true, [0x0764] =3D true, [0x0765] =3D true, [0x0766] =3D = true, + [0x0767] =3D true, [0x0768] =3D true, [0x0769] =3D true, [0x076A] =3D = true, + [0x076D] =3D true, [0x076E] =3D true, [0x076F] =3D true, [0x0770] =3D = true, + [0x0772] =3D true, [0x0775] =3D true, [0x0776] =3D true, [0x0777] =3D = true, + [0x077A] =3D true, [0x077B] =3D true, [0x077C] =3D true, [0x077D] =3D = true, + [0x077E] =3D true, [0x077F] =3D true, [zwj] =3D true, } =20 local arab_warned =3D { } --FCuugMFkClbJLl1L-- --7iMSBzlTiPOCCT2k Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAknYxLwACgkQRoqITGOuyPLAIACggWRXvnXsGXuBSWE6pMZ11B3U qDYAoJMX0Vb1/qb9yH9cwJCh7cKmxIsb =iGoj -----END PGP SIGNATURE----- --7iMSBzlTiPOCCT2k-- --===============1759055833== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : https://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --===============1759055833==--