Fine tuning an index
I'm doing my first mkiv index (it took me a long time to upgrade from mkii!) and I really like the processor feature to format elements differently. But there are a couple of things I would really like to achieve that I'm struggling with: 1. Elided numbers in an index range entry. For example if I have a \startregister - \stopregister pair resulting in an index entry like entry 354--356 I would like to be able to make this read entry 354--6 There are different conventions for number span elision but usually teens aren't elided so entry 314--316 would become entry 314-16. It strikes me that if I could set up a processor specifically for page number ranges I could possibly write a macro to do elision; but I don't think that's currently possible? Maybe it's possible in lua to write code which both identifies range page numbers and carries out the elision. I'm not quite sure where to start. 2. Fine tuning column and page breaking in an index. This is tricky, because there are usually very few "good" places to break an index, and automatic breaking seems to alter slightly depending on whether interactions are set up or not, but is there a way to manually insert a column or page break into the register before or after a certain entry, the way there is for a table of contents? Sorry for no MWE, for obvious reasons. Any pointers to what might be able to be done on these would be much appreciated. Thanks. Duncan
Duncan, have you looked at https://wiki.contextgarden.net/Command/setinjector? https://wiki.contextgarden.net/Command/setinjector You might also need \showinjector. But it should work for indexes (register). Julian On 9/10/20 2:58 am, Duncan Hothersall wrote:
Fine tuning column and page breaking in an index. This is tricky, because there are usually very few "good" places to break an index, and automatic breaking seems to alter slightly depending on whether interactions are set up or not, but is there a way to manually insert a column or page break into the register before or after a certain entry, the way there is for a table of contents?
Brilliant, thanks, I didn't know about that one. Much appreciated.
Duncan
On Thu, 8 Oct 2020 at 21:36, jbf
Duncan, have you looked at https://wiki.contextgarden.net/Command/setinjector? https://wiki.contextgarden.net/Command/setinjector
You might also need \showinjector. But it should work for indexes (register).
Julian On 9/10/20 2:58 am, Duncan Hothersall wrote:
Fine tuning column and page breaking in an index. This is tricky, because there are usually very few "good" places to break an index, and automatic breaking seems to alter slightly depending on whether interactions are set up or not, but is there a way to manually insert a column or page break into the register before or after a certain entry, the way there is for a table of contents?
Just a note to add, that \showinjector doesn't seem to do anything unless
you also have a \setinjector command, which is a bit counterintuitive since
probably the first thing you want to do is see the ID of each line in your
list/register before you know what \setinjector command you need.
I've worked around it by adding
\setinjector[register][1][\relax]
after \showinjector.
On Fri, 9 Oct 2020 at 07:25, Duncan Hothersall
Brilliant, thanks, I didn't know about that one. Much appreciated.
Duncan
On Thu, 8 Oct 2020 at 21:36, jbf
wrote: Duncan, have you looked at https://wiki.contextgarden.net/Command/setinjector? https://wiki.contextgarden.net/Command/setinjector
You might also need \showinjector. But it should work for indexes (register).
Julian On 9/10/20 2:58 am, Duncan Hothersall wrote:
Fine tuning column and page breaking in an index. This is tricky, because there are usually very few "good" places to break an index, and automatic breaking seems to alter slightly depending on whether interactions are set up or not, but is there a way to manually insert a column or page break into the register before or after a certain entry, the way there is for a table of contents?
participants (2)
-
Duncan Hothersall
-
jbf