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
___________________________________________________________________________________