Michael—

Thank you so much for your very helpful response.

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.
>
> If you have received this message in error, please contact
> the sender by reply e-mail message and destroy all copies of the
> original message (including attachments).
>
>
> ___________________________________________________________________________________
> 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  : http://foundry.supelec.fr/projects/contextrev/
> wiki     : http://contextgarden.net
>
> ___________________________________________________________________________________
>
___________________________________________________________________________________
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  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to