[NTG-context] two buglets

Hans Hagen pragma at wxs.nl
Sun Oct 3 12:29:17 CEST 2010


On 3-10-2010 10:24, Thomas A. Schmitz wrote:
> Hi all, Hans,
>
>
> On Feb 11, 2010, at 6:17 PM, Hans Hagen wrote:
>
>>> 1. index sorts uppercase letters after lowercase letters. Minimal example:
>>>
>>> \starttext
>>>
>>> \index{Aardvark}Aardvark
>>>
>>> \index{azygous}azygous
>>>
>>> \page
>>>
>>> \setupregister[index][n=1]
>>> \placeregister[index]
>>>
>>> \stoptext
>>>
>>> I would expect azygous to follow Aardvark, but it is sorted before.
>>
>>
>> are you sure that that's the convention for english? it's easy to change it ...
>>
>> \startluacode
>> sorters.mappings['en'] = {
>>     ["a"] =  2, ["b"] =  4, ["c"] =  6, ["d"] =  8, ["e"] = 10,
>>     ["f"] = 12, ["g"] = 14, ["h"] = 16, ["i"] = 18, ["j"] = 20,
>>     ["k"] = 22, ["l"] = 24, ["m"] = 26, ["n"] = 28, ["o"] = 30,
>>     ["p"] = 32, ["q"] = 34, ["r"] = 36, ["s"] = 38, ["t"] = 40,
>>     ["u"] = 42, ["v"] = 44, ["w"] = 46, ["x"] = 48, ["y"] = 50,
>>     ["z"] = 52,
>>     ["A"] =  1, ["B"] =  3, ["C"] =  5, ["D"] =  7, ["E"] =  9,
>>     ["F"] = 11, ["G"] = 13, ["H"] = 15, ["I"] = 17, ["J"] = 19,
>>     ["K"] = 21, ["L"] = 23, ["M"] = 25, ["N"] = 27, ["O"] = 29,
>>     ["P"] = 31, ["Q"] = 33, ["R"] = 35, ["S"] = 37, ["T"] = 39,
>>     ["U"] = 41, ["V"] = 43, ["W"] = 45, ["X"] = 47, ["Y"] = 49,
>>     ["Z"] = 51,
>> }
>> \stopluacode
>>
>> \starttext
>>     \index{Aardvark}Aardvark \par
>>     \index{azygous}azygous
>>     \placeregister[index][n=1]
>> \stoptext
>>
>
> we had this pretty old thread about sorting in indexes. AFAICS, the latest beta defaults to cases-sensitive sorting. Two quick questions:
>
> 1. Is there a setup command that will make index sorting case-insensitive? The code above doesn't work anymore, so maybe you made it user-configurable now?

indeed, and in a nice obscure way ...

\setuplayout[topspace=1cm,height=middle]

\setupbodyfont[11pt]

\starttext

\def\Test#1%
 
{\vbox{{\bf#1}\blank\placeregister[index][language=cz,n=1,method={#1}]}\blank}

wanted result: oá öb Oč Öď Oo Öo oo öo Öq öř Oš oů \blank

\startcolumns[n=3]
     \Test{mc,mm,uc} \Test{mc,zm,uc} \Test{mc,pm,uc}
     \Test{zc,mm,uc} \Test{zc,zm,uc} \Test{zc,pm,uc}
     \Test{pc,mm,uc} \Test{pc,zm,uc} \Test{pc,pm,uc}
\stopcolumns

\page

wanted result: oá öb Oč Öď Oo Öo oo öo Öq öř Oš oů \blank

\startcolumns[n=3]
     \Test{mm,mc,uc} \Test{zm,mc,uc} \Test{pm,mc,uc}
     \Test{mm,zc,uc} \Test{zm,zc,uc} \Test{pm,zc,uc}
     \Test{mm,pc,uc} \Test{zm,pc,uc} \Test{pm,pc,uc}
\stopcolumns

\page

\dorecurse {2} {
    \page \recurselevel:
         \index{oá}  \index{öb}  \index{Oč}  \index{Öď}
         \index{oo}  \index{öo}  \index{Oo}  \index{Öo}
         \index{Öq}  \index{öř}  \index{Oš}  \index{oů}
    done
}

\stoptext

> 2. Is it really a good idea to make case-sensitive sorting the default in English? I can't remember seeing a single academic book in English that has this sort of index sorting.

Currently Jano and I are figuring out some details (as Jano does the 
testing with more complex multilingual indices).

I have no preferece ... we can configure each language independently 
using the method key in the entries in sort-lan.lua As I seldom consult 
an index I have no clue what to expect or default to so feel free to 
tell me what the defaults should be. We now have predefined:

local predefinedmethods = {
     [variables.before] = "mm,mc,uc",
     [variables.after]  = "pm,mc,uc",
     [variables.first]  = "pc,mm,uc",
     [variables.last]   = "mc,mm,uc",
}

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list