Am 15.05.23 um 03:37 schrieb Joel via ntg-context:
I have a document like this:
\starttext \index{dogs}
\index{cats}
\index{flowers}
\index{snails}
\index{trees}
\placeindex
\stoptext
As I understand, if you use \index{animals+dogs}, it will place dogs as a sub-category of dogs.
Is there any way to control this centrally, for instance:
\addtosub[animals]{dogs, cats, snails} \addtosub[plants]{flowers, trees}
Such a way would make it so \index{dogs} places an entry for "dog" under "d" and "animals --> dogs" under "a".
I’d suggest to cook your own macro, e.g. for a book with a lot of person index entries, I used a lookup table to unify different spellings or name changes (married, titles etc.) like this: """% environment: \loadluafile[lookups] % Index lookups \defineregister[Person][] \defineprocessor[italics][style=italicface] \define[1]\Passim{\emph{passim}} \defineprocessor[passim][command=\Passim] \define[1]\nPerson{% \expanded{\Person{\ctxlua{userdata.Lookup("#1")}}}% } \define[1]\TPerson{% \expanded{\Person[kursiv->]{\ctxlua{userdata.Lookup("#1")}}}% }#1} \define[1]\nCPerson{\expanded{\Person[italics->]{\ctxlua{userdata.Lookup("#1")}}}}% \define[1]\TCPerson{\expanded{\Person[italics->]{\ctxlua{userdata.Lookup("#1")}}}#1}% """ """lookups.lua: userdata = userdata or { } userdata.Lookups = { … ["Pauline, geb. Fichtner Erdmannsdörfer"] = "Erdmannsdörfer, Pauline, geb. Fichtner", ["Pauline Erdmannsdörfer"] = "Erdmannsdörfer, Pauline, geb. Fichtner", ["Pauline Erdmannsdörfer-Fichtner"] = "Erdmannsdörfer, Pauline, geb. Fichtner", … } function userdata.Lookup(name) context(userdata.Lookups[name] or name) end """ In a similar way you could setup an \Animal macro to use a lookup table how the entry should get indexed. Hraban