[-- Attachment #1.1: Type: text/plain, Size: 718 bytes --] 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". --Joel [-- Attachment #1.2: Type: text/html, Size: 1407 bytes --] [-- Attachment #2: Type: text/plain, Size: 496 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
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 ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
On 5/15/2023 3:37 AM, Joel via ntg-context wrote: > > 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". \starttexdefinition protected IndexA#1#2 \index{#2} \doloopoverlist {#1} { \index{##1+#2} } \stoptexdefinition \starttexdefinition tolerant protected IndexB[#1]#:#*#2 \index{#2} \doloopoverlist {#1} { \index{##1+#2} } \stoptexdefinition \starttext a\IndexA{animals}{dogs} a\IndexA{animals}{cats} a\IndexA{plants}{flowers} a\IndexA{animals,small}{snails} a\IndexA{plants,huge}{trees} \page b\IndexB[animals] {dogs} b\IndexB[animals] {cats} b\IndexB[plants] {flowers} b\IndexB[animals,small]{snails} b\IndexB[plants,huge] {trees} \page c\IndexB{dogs} c\IndexB{cats} c\IndexB{flowers} c\IndexB{snails} c\IndexB{trees} \page \placeindex \stoptext ----------------------------------------------------------------- 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 / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
On Mon, 15 May 2023 09:40:22 +0200 Hans Hagen via ntg-context <ntg-context@ntg.nl> wrote: > \starttexdefinition tolerant protected IndexB[#1]#:#*#2 > \index{#2} > \doloopoverlist {#1} { > \index{##1+#2} > } > \stoptexdefinition Awesome! However, I think that Joel was looking for a solution closer to what Hraban suggested, creating automatic subcategories. I would do that through a additional macros: \starttexdefinition protected Animals#1 \index{#1} \index{animals+#1} #1 ) \starttexdefinition protected Plants#1 \index{#1} \index{plants+#1} #1 ) \Animals{dogs} \Plants{trees} I use as a general indexing macro: \starttexdefinition tolerant protected Index[#1]#:#*#2 \index[#1]{#2} #2 \stoptexdefinition Alan ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________
On Mon, 15 May 2023 01:37:53 +0000 (UTC) Joel via ntg-context <ntg-context@ntg.nl> wrote: > Such a way would make it so \index{dogs} places an entry for "dog" > under "d" and "animals --> dogs" under "a". Might I suggest that an alternate way of handling this could be: \seeindex{dogs}{animals+dogs} with \index{animals+dogs} It's the author's choice, but this avoids redundant page entries and a very long \placeindex. (Note that we recently extended \seeindex to handle the {...+...} syntax for both arguments.) Alan ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________