ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: bug with numeral conversion function
Date: Tue, 02 Sep 2008 20:25:38 +0200	[thread overview]
Message-ID: <48BD8522.2060404@wxs.nl> (raw)
In-Reply-To: <20080901172643.GA32000@khaled-laptop>

Khaled Hosny wrote:
> On Sat, Aug 23, 2008 at 12:46:47AM +0300, Khaled Hosny wrote:
>> It seems that there is a bug in converters.alphabetic function,
>> converters.alphabetic(0,"arabic") returns the western 0 (no matter what
>> is the selected language) while converters.alphabetic(1,"arabic") gives
>> the Arabic 0 not 1 and so one i.e. it looks like as if it starts
>> counting from zero.
> 
> I finally got myself to understand some lua code.
> 
> I think the problem is that lua tables start counting from 1 not 0,
> getting the value of key 0 from code table will give nil while 1 will
> give the value of 0 (first key), so the solution would be incrementing n
> by 1 in:
> 
> local function do_alphabetic(n,max,chr)
>     n = n + 1 -- to get the correct key
>     if n > max then
>         do_alphabetic(floor((n-1)/max),max,chr)
>         n = (n-1)%max+1
>     end
>     characters.flush(chr(n))
> end
> 
> This does work for the case of Arabic, but I don't know about others
> (especially greek and slovenian which look different)

we cannot change that function without breaking other things

there are several ways to convert, one is using the languages.counters 
table and i don't know if the arabic entries in it are right (i just 
found out that the greek vector is uppercase while it should be 
lowercase but i'll make a fix for that)


 >rgrep arabicn *.tex

core-con.tex 671: \defineconversion [arabicnumerals]   [\arabicnumerals]
core-con.tex 672: \defineconversion [persiannumerals]  [\arabicnumerals]
 >rgrep arabicn *.mkiv

core-con.mkiv 20: \def\abjadnumerals 
#1{\ctxlua{converters.arabicnumerals(\number#1)}}
core-con.mkiv 21: \def\abjadnodotnumerals 
#1{\ctxlua{converters.arabicnodotnumerals(\number#1)}}
core-con.mkiv 22: \def\abjadnaivenumerals 
#1{\ctxlua{converters.arabicnaivenumerals(\number#1)}}
core-con.mkiv 87: \def\arabicnumerals 
#1{\ctxlua{converters.alphabetic(\number#1,"arabic")}}
core-con.mkiv 99: \defineconversion [arabicnumerals]     [\arabicnumerals]
 >

the abjad number converters are definied differently (based on specs by 
idris)

so, if the 0/1 offset is a problem then we need to fix the tables, not 
the function (unless arabic follows a different logic, as chinese does)

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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
___________________________________________________________________________________


  parent reply	other threads:[~2008-09-02 18:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-22 21:46 Khaled Hosny
2008-09-01 17:26 ` Khaled Hosny
2008-09-02 10:33   ` Khaled Hosny
2008-09-02 18:25   ` Hans Hagen [this message]
2008-09-02 19:42     ` Khaled Hosny

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=48BD8522.2060404@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).