It does indeed! Excellent! A. On Sat, May 26, 2012 at 9:21 AM, Rogers, Michael K 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— > > 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 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 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 > > ___________________________________________________________________________________ > > > > > ___________________________________________________________________________________ > 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 > > ___________________________________________________________________________________ >