From: Alan Bowen <bowenalan03@gmail.com>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Subject: Re: indexing puzzle
Date: Sat, 26 May 2012 08:41:29 -0400 [thread overview]
Message-ID: <CAFMOkGU2zwjQEOVqq6s=FDPxYU-0iPXDBBV8NTeApK5GyrY+8A@mail.gmail.com> (raw)
In-Reply-To: <C4686755-9A5C-41CE-A091-BD4BCBDB9EDF@emory.edu>
[-- Attachment #1.1: Type: text/plain, Size: 6402 bytes --]
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 <mroge02@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 <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
>
>
>
> ------------------------------
>
> 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
>
> ___________________________________________________________________________________
>
[-- Attachment #1.2: Type: text/html, Size: 9528 bytes --]
[-- Attachment #2: Type: text/plain, Size: 485 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
next prev parent reply other threads:[~2012-05-26 12:41 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-22 22:39 Alan Bowen
2012-05-24 11:06 ` Alan Bowen
2012-05-24 21:14 ` Rogers, Michael K
2012-05-26 12:41 ` Alan Bowen [this message]
2012-05-26 13:21 ` Rogers, Michael K
2012-05-26 14:12 ` Alan Bowen
2012-05-26 14:54 ` Hans Hagen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAFMOkGU2zwjQEOVqq6s=FDPxYU-0iPXDBBV8NTeApK5GyrY+8A@mail.gmail.com' \
--to=bowenalan03@gmail.com \
--cc=ntg-context@ntg.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).