Re: [NTG-context] indexing puzzle

It does indeed! Excellent!

A.

On Sat, May 26, 2012 at 9:21 AM, Rogers, Michael K <mrog...@emory.edu>wrote:

>  Thanks, Alan.  Actually, I now think MKIV works without any trickery.  I
> was perhaps too eager to try a Lua solution.  \Passage{Author+Text+Locus}
> seems to work fine in the beta today.
>
>  Cheers,  Michael
>
>
>
>  On May 26, 2012, at 8:41 AM, Alan Bowen wrote:
>
> Michael—
>
>
>  1. \unskip works well.
>
>  2. What I currently have is admittedly an ad hoc system for encoding my
> indices. As you note, the system works for  page numbers > 99 where line
> numbers < 99. When line numbers > 99, I adapt the sort key differently:
> thus, for Cleomedes, *Cael*. I have [CleomCael105001] for 1.5.1. This
> works (in MKII) but only because the number of entries is very small.
>
>  3. I like your MKII solution—it is much more general, works well on what
> I have, and is certainly less taxing to encode. Many thanks!
>
>  The book that I trying to index right now is the last of my MKII
> projects. So I am also interested in, and very grateful, for  your MKIV
> solution.
>
>  All best, Alan
>
>
> On Thu, May 24, 2012 at 5:14 PM, Rogers, Michael K <mrog...@emory.edu>wrote:
>
>>  1. For \ab you might want
>>     \def\ab{\unskip}
>> since the space is not the same as the width of a digit.
>>
>>  2. Does your solution work with line numbers greater than 99?  I tried
>> to implement your idea and I got the order 25.7, 25.117, 25.37.  Probably
>> more than 99 lines never occurs on a page, so it's a non-issue.  But Homer,
>> for instance, is often referred to by Book.Line, and the lines go past 100.
>>  Again, perhaps a non-issue for you.
>>
>>  3.  My own attempts:  At first I though what a nice opportunity for me
>> to learn a little more Lua, which it was.  After, I read you wanted a MKII
>> solution.  Well, I'm embarrassed at how long I took to do the MKII, but I'm
>> not good at controlling expansion.  Anyway, it automatically generates sort
>> keys for the pages by converting digits to letters and padding with initial
>> a's, so that each page or line number is a fixed length (4 in this case, up
>> to 10000 pages/lines).  For instance,
>>     123.4--56 is mapped to  abcdaaaeaafg
>> MKII does not seem to sort digit-based keys reliably; MKIV does, and you
>> can just pad out the digits with zeros.  The complete sort key that worked
>> was the catenation of the author, text, and locus key, which is similar to
>> what you have.
>>
>>  MKII:
>>  \defineregister[Passage][Passages]
>> ...
>> % interface to register -- \locuskey indirectly returns a key in \nextkey
>>
>> \def\MyPassage#1#2#3{\locuskey{#3}\expandoneargafter\doMyPassage{\nextkey}{#1}{#2}{#3}}
>> \def\doMyPassage#1#2#3#4{\Passage[#2#3#1]{{#2}+{#3}+{#4}}}
>> % Def. of \locuskey#1
>> %    In: #1<-p1[.l2[--l3]] Out: key stored in \nextkey
>> ... (see attached file, if interested)
>>
>>  MKIV:
>>  % interface to register -- expansion in MKIV must be different, because
>> a direct approach works:
>>  \def\MyPassage#1#2#3{\Passage[#1#2\locuskey{#3}]{#1+#2+#3}}
>>  % Def. of \locuskey
>>  \startluacode
>> userdata = userdata or { }
>>  function userdata.locuskey(x)
>>     context(string.gsub(x,"(%d+)",function (s) return
>> string.format("%04d",tonumber(s)) end))
>> end
>> \stopluacode
>> \def\locuskey#1{\ctxlua{userdata.locuskey("#1")}}
>>
>>  The Mark IV/Luatex one was much nicer, less frustrating to figure out.
>>
>>
>>  On May 24, 2012, at 7:06 AM, Alan Bowen wrote:
>>
>> For anyone interested in producing classical indices locorum, I have
>> devised a way that seems to work, although it is not that elegant.
>>
>>  The first step is to modify the sort keys by counting the number of
>> digits in the page number:
>> thus,
>> [AuthorText01] for pages 1–9,
>> [AuthorText02] for pages 10–99, and so on
>>
>>  The next is to insert the command “ \ab” (note the space) when the line
>> number is a single digit:
>> thus
>> 391. \ab{}2 but 391.12 in the entry specification {Author+Text+page.line}
>>
>>  For \ab, I have:
>>
>>  \newdimen\digitwidth
>> \setbox0=\hbox{\tfx\char32}
>> \digitwidth=\wd0
>>
>>  \def\ab{\tfx\kern-\digitwidth}
>>
>>  The hitch here is that the font size is not context dependent.
>>
>>  Alan
>>
>> On Tue, May 22, 2012 at 6:39 PM, Alan Bowen <bowenala...@gmail.com>wrote:
>>
>> I have been trying to index the passages cited in a book and would be
>> grateful for some tactical advice.
>>
>>  There are several works by a single author, and it is customary to cite
>> each text by page and line number, as in 1253.12 (page 1253, line12), for
>> example.
>>
>>  I have a sort key for each work. But now I need a way to get the entry
>>
>>  1253.7 (page 1253, line 7) before the entry
>> 1253.12 (page 1253, line 12).
>>
>>  \[Passage[AuthorText]{Author+Text+1253.07}1253.7 or
>> \[Passage[AuthorText]{Author+Text+1253.07}1253. 7
>> would work, but it is really better to have the index entry as “1253.7”
>> rather than as “1253.07” or “1253. 7”
>>
>>  I have experimented with different sort keys—e.g., AuthorText125307—and
>> can generate an index with the 1235.7 and so on in the proper place and
>> form, say, before 1253.12.
>>
>>  But then the problem is that I also get entire sequences of entries out
>> of order (485.19, 485.21 before 477.31, and so on). Very puzzling.
>> (Restoring the sort key AuthorText removes the latter problems but then
>> leaves 1253.7 in the wrong place.)
>>
>>  If anyone has experience with this or just some ideas for a solution,
>> their suggestions will be most welcome.
>>
>>  I am using the MKII in the latest ConTeXt standalone.
>>
>>  Alan
>>
>>
>>
>> ------------------------------
>>
>> This e-mail message (including any attachments) is for the sole use of
>> the intended recipient(s) and may contain confidential and privileged
>> information. If the reader of this message is not the intended
>> recipient, you are hereby notified that any dissemination, distribution
>> or copying of this message (including any attachments) is strictly
>> prohibited.
>>
>> the sender by reply e-mail message and destroy all copies of the
>> original message (including attachments).
>>
>>
>> ___________________________________________________________________________________
>> 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  : http://foundry.supelec.fr/projects/contextrev/
>> wiki     : http://contextgarden.net
>>
>> ___________________________________________________________________________________
>>
>
>
> ___________________________________________________________________________________
> 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  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>
>
>
>
> ___________________________________________________________________________________
> 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  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>

___________________________________________________________________________________
___________________________________________________________________________________