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 <bowenalan03@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