Hello,
For a few days I have been playing with registers to generate an RTL index. Beside sorting, I ran into the following.
1) How can I get the index section using \subject? In some styles, I do not want to see the section number.
2) How can I get the Persian comma used instead of the English comma in page numbers and also before "see also"? The first one I can fix by a hack but not the second one: defining a custom pagecommand that sets \registerpageseparatorsymbol to the Persian comma! There is a TODO comment in strc-reg.mkiv that the comma customization has been planned.
3) In RTL registers, if an entry starts with an LTR char, the order of index entry and page number will be incorrect. We had similar issues with section headings before. I can "fix" this by setting pagestyle=\zwnj, but is there a more principled way to handle this? See the MWE below.
4) Is there a way to define the style of "see also" different from pagestyle? What if I want to distinguish "see also" from the actual entry this is referring to?
5) Currently I use \setupmixedcolumns[register][direction=reverse] to get the two-column register in the correct order. What if I have two index registers, one for RTL and another for LTR? Is there a way to set the direction key for a specific register?
6) In a two-column Persian index, using almost any (non-mono) font, some letter headings (those extending significantly below the baseline) end up with extra space below. See attached PDF and the MWE. (I could not reproduce this with DejaVuSans or ALM Fixed.)
\definefontfamily [myfamily] [serif] [Scheherazade] [features=arabic]
\setupbodyfont [myfamily]
\setupalign[r2l]
\setupdirections[bidi=global,method=two]
\setupmixedcolumns[register][direction=reverse]
\setupregister[index][
before=,after=,
command=\MyCommand,
alternative=b, color=red,
]
\def\MyCommand#1{#1}
%\def\MyCommand#1{\inframed[frame=no]{#1}} % this fixes the problem
\showboxes
\starttext
\index{آب}
\index{عذر}
\index[تک]{TEX}
testing
\placeindex
\stoptext
Some of the setups are to refute suspected causes. Notice that using \inframed fixes the problem.