Hans, thanks for your ingenious solution but there is still a way to go I suspect!

I implemented (copy-paste) precisely the solution offered and I get an index but with some strange results ! Notice that in my previous own solution (but only as far as 26 books!) I at least got an index in the order of the biblical books, but using the luacode you offered, I get a seemingly random result (see below).

I extended your example by a few books. so:

\startluacode
sorters.definitions["biblical"] = {
    method  = interfaces.variables.before,
    replacements = {
        { "Gen",  string.char(1) },
        { "Ex",   string.char(2) },
        { "Lev",  string.char(3) },
        { "Deut", string.char(4) },
        { "Lam",  string.char(5) },
        { "Dan",  string.char(6) },
        { "Joel",  string.char(7) },
        { "Ps",  string.char(8) },
        { "Prov",  string.char(9) },
        { "Sir",  string.char(10) },
        { "Mt",  string.char(11) },
        { "Mk",  string.char(12) },

    },
}
\stopluacode

But the result I get (just showing you a dozen or so, and you will see that Gen doesn't even turn up in this list ... it does, but much later!):

Mk 2:19-20 with parallels (PES) 146
Mt 3:8-10 (PES) 135
Prov 3:11-12 (PES) 139, 172
Sir 4:17-18 (PES) 139
Mt 5:5 (PES) 146
Mt 5:6 (MAC) 123
Mt 5:16 (MAC) 121
Mt 6:1-6, 16-18 (MAC) 121
Mt 6:1-6, 16-18 (PES) 145
Mt 7:13-14 (PES) 146
Sir 10:9 (PES) 142
Mt 11:12 (PRO) 160
Mt 12:34 (MAC) 124, 137
Mt 12:36 (PES) 134
Mk 12:41-44 (MAC) 122
Sir 17:27 (PES) 142

I have no idea why this is happening. I changed nothing of what you gave me and removed anything I had previously. If you need an example of how \bibcit is being used in the text, just in case it helps (but I doubt it), here is one:

The widow’s mite pleased God because of her good intention, rather than the heap of money that the pharisees, urged on by self-love, threw into the treasury box (cf.  \bibcit{Mk 12:41-44 (MAC)}Mk 12:41-44).

So, not sure where to go from here. Could I perhaps return to my earlier question, which indicated that by using the keyword approach [a] [b] and so on, as far as [z] I was at least getting a passable result, but how could I continue past [z]? Could I have used [1], [2] etc which would allows me to get as far as 66 (if I were to need every biblical book)?

Julian

On 16/4/21 5:24 pm, Hans Hagen wrote:

On 4/15/2021 11:28 AM, jbf wrote:
My simple MWE:

\defineregister[bibcit]
\setupregister[bibcit][%
indicator=no,
before=]

text... \bibcit[a]{Gen 3:6 (MAC) }Gen 3:6....

(and so one for each Genesis reference, then moving on to Leviticus with [b] etc.)


In other words, I have used the key option [] using the alphabet to change the order, with Genesis as [a], Exodus [b], Leviticus [c], and so on.

Problem 1: there are 26 letters in the English alphabet. There are many more biblical books (OT and NT) than 26, so what do I do when I reach z?

Problem 2: the (MAC) would not normally be required in any biblical citation, but in my case it is, as well as (PER), (PRO) and several other references. In other words, these indicate where, in  a set of documents, the particular citations are to be found. But I think they may affect the order of citations, so, for example, I get the following results for the first four books of the Bible:

Gen 3:6 (MAC)            120
Gen 4:2-8 (MAC)         123
Gen 39:6-20 (MAG)     127
Gen 17:1 (PES)           137
Gen 18:27 (PES)         140
Gen 28:10-12 (PES)    141
Ex 20:12 (MAG)          129
Lev 6:5-6 (PES)           136
Deut 6:5 (PES)            145
Lam 3:27 (MAG)          129

Notice that Gen 39:6-20 is out of order in terms of chapters and verses. It should come after Gen 28:10-12 (PES) but I do not know how to control that order. It may be that (MAG), which comes after (MAC) in alphabetical terms, is controlling the order, rather than chapter and verse which I really want to control the order.

I realise this is complicated, but I'm sure ConTeXt is up to it. I've got the basics right for getting at least 26 books in some sort of order, but after that??
cheat (crossed fingers that you have enough entries) :

\startluacode
sorters.definitions["biblical"] = {
    method  = interfaces.variables.before,
    replacements = {
        { "Gen",  string.char(1) },
        { "Ex",   string.char(2) },
        { "Lev",  string.char(3) },
        { "Deut", string.char(4) },
        { "Lam",  string.char(5) },
    },
}
\stopluacode

\defineregister[bibcit] \setupregister[bibcit][language=biblical,before=]

\starttext

test ... \bibcit{Gen 3:6}
test ... \bibcit{Gen 4:2-8}
test ... \bibcit{Gen 39:6-20}
test ... \bibcit{Gen 17:1}
test ... \bibcit{Gen 18:27}
test ... \bibcit{Gen 28:10-12}
test ... \bibcit{Ex 20:12}
test ... \bibcit{Lev 6:5-6}
test ... \bibcit{Deut 6:5}
test ... \bibcit{Lam 3:27}

\blank[3*big] \placeregister[bibcit]

\stoptext

but is shows that it's not impossible to come up with a solution

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to