1. For \ab you might want
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 

% interface to register -- \locuskey indirectly returns a key in \nextkey
% Def. of \locuskey#1
%    In: #1<-p1[.l2[--l3]] Out: key stored in \nextkey
... (see attached file, if interested)

% interface to register -- expansion in MKIV must be different, because a 
direct approach works:
% Def. of \locuskey
userdata = userdata or { }
function userdata.locuskey(x)
    context(string.gsub(x,"(%d+)",function (s) return 
string.format("%04d",tonumber(s)) end))

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:
[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:
391. \ab{}2 but 391.12 in the entry specification {Author+Text+page.line}

For \ab, I have:



The hitch here is that the font size is not context dependent.


On Tue, May 22, 2012 at 6:39 PM, Alan Bowen 
<bowenala...@gmail.com<mailto: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.



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

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).

Attachment: SortkeyMkII.tex
Description: SortkeyMkII.tex

If your question is of interest to others as well, please add an entry to the 

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