Hi,

I’ll be happy to play around with extending the register code, assuming that is 
ok with Hans and that not someone else is also working on this?

Taco

> Begin forwarded message:
> 
> From: Rik Kabel via ntg-context <ntg-cont...@ntg.nl>
> Subject: Re: [NTG-context] Indexing redux
> Date: 26 August 2021 at 22:46:23 CEST
> To: mailing list for ConTeXt users <ntg-cont...@ntg.nl>
> Cc: Rik Kabel <cont...@rik.users.panix.com>
> Reply-To: mailing list for ConTeXt users <ntg-cont...@ntg.nl>
> 
> 
> 
> On 8/26/2021 03:26, Taco Hoekwater wrote:
>> Hi Rik,
>> 
>>> On 26 Aug 2021, at 03:14, Rik Kabel via ntg-context <ntg-cont...@ntg.nl> 
>>> <mailto:ntg-cont...@ntg.nl> wrote:
>>> 
>>> List,
>>> 
>>> I am trying to create an index with both "see" and "see also" 
>>> cross-reference entries.[1] At this point, ConTeXt provides basic support 
>>> for "see" entries via the \seeREGISTER command (it does not properly 
>>> support references to sub-entries) and it provides no support at all for 
>>> "see also" entries.
>>> 
>>> Can somebody suggest a way to generate these entries? Perhaps a way of 
>>> inserting entries into the index before it is formatted, in the     manner 
>>> of \writetolist or \writebetweenlist? (MkII has \writetoregister, but that 
>>> did not carry forward and I do not know if it would have helped here.)
>> 
>> Since strc-reg.mkiv starts with a number of ’todo’ comments, I think your 
>> best bet is to create an
>> actual functional example along with an explanation of what you want the 
>> typeset result to look 
>> like in the cases where it is not doing what you want.
>> 
>> Generally, explicit examples / test files are the best way to get replies to 
>> questions 
>> (either by Hans or anyone else).
> The following produces what I am looking for, and a bit more. Page 3 of the 
> output shows what I would like to see, page 4 is the generated index. I don't 
> really need the "see under" and "see also under" variants, but they would be 
> nice to have. I am indifferent to having stops before "see also"s. I would 
> like to be able to turn checking on or off, so that generic directives (in 
> the example, see also specific breeds) will not generate an error, while the 
> Ford Prefect example will generate an error.
> 
> 
>    \defineprocessor[also][color=blue]
>    \defineprocessor[under][color=green]
>    \defineprocessor[alsounder][color=orange]
>    \define\seealsoindex\seeindex
>    \define\seealsounderindex\seeindex
>    \define\seeunderindex\seeindex
>    \setupinteraction [state=start]
>    \setupregister    [index][balance=no,check=no]
> 
> %% seeindex entries may start on the same line as their head entry
>    \seeindex         {dog breeds+Wiener dog}{dog breeds+Dachshund}
> %%  The next example should not work,
> %%    since there is no main entry /Adams, Douglas/
>    \seeindex         {Prefect, Ford}{Adams, Douglas}
> 
> %%  When referring to a subentry, the target must be a subentry,
> %%    but should display as if a main entry. The next example
> %%    should point to the /Adams+Douglas/ subentry, but it
> %%    should be formatted as if it were /Adams, Douglas/ 
>    \seeindex         {Dent, Arthur}{Adams+Douglas}
> 
> %% The following two work as expected
>    \seeindex         {Matilda effect}{obliteration}
>    \seeindex         {Marut, Ret}{Traven, B.}
> 
> %% seealso should be placed after as a subentry after real page references
> %% seealso should have an appropriate label (default English /see also/)
>    \seealsoindex     {pseudepigraphy}{also->obliteration}
>    \seealsoindex     {dog breeds}{also->breeding programs}
>    \seealsoindex     {dog breeds}{also->specific breeds}
> %% seealsounder is like seealso except that it refers to a main entry
>    \seealsounderindex{Coton de Tulear}{alsounder->dog breeds}
> %% seeunder also is like seealso except that it refers to a main entry
>    \seeunderindex    {Weimaraner}{under->dog breeds}
>    \starttext
>      Stuff
>      \index{obliteration}
>      \index{Adams+Douglas}\index{Adams+John}
>      \index{Beagle}
>      \index{dog breeds+Beagle}
>      \index{dog breeds+Coton de Tulear}
>      \index{dog breeds+Dachshund}
>      \index{dog breeds+Weimaraner}
>    \page
>      More stuff
>      \index{Adams+John Quincy}
>      \index{misquotation}
>      \index{pseudepigraphy}
>      \index{Traven, B.}
>      \index{Beagle}
>      \index{Coton de Tulear}
>      \index{breeding programs}
>    \page
>    \definedescription[Index][headstyle=bold,alternative=top,inbetween=]
>    \startIndex{a}
>      Adams\par
>      \quad \reference[AdamsDouglas]{Adams, Douglas}Douglas\quad 1\par
>      \quad John\quad 1\par
>      \quad John Quincy\quad 2\par
>    \stopIndex
>    \startIndex{b}
>      Beagle\quad 1, 2\par
>      \reference[breedingprograms]{breeding programs}breeding programs\quad 2
>    \stopIndex
>    \startIndex{c}
>      Coton de Tulear\quad 2.\par
>      \quad {\em See also under} \in[dogbreeds]
>    \stopIndex
>    \startIndex{d}
>      \reference[DentArthur]{Dent, Arthur}Dent, Arthur {\em see} 
> \in[AdamsDouglas]\par
>      \reference[dogbreeds]{dog breeds}dog breeds\par
>      \quad \reference[dbBeagle]{dog breeds, Beagle}Beagle\quad 1\par
>      \quad \reference[dbCoton]{dog breeds, Coton}Coton de Tulear\quad 1\par
>      \quad \reference[dbDachshund]{dog breeds, Dachshund}Dachshund\quad 1\par
>      \quad \reference[dbWeimaraner]{dog breeds, Weimaraner}Weimaraner\quad 
> 1\par
>      \quad Wiener dog\quad {\em see} \in[dbDachshund]\par
>      \quad{\em See also} \in[breedingprograms] {\em and specific breeds}
>    \stopIndex
>    \startIndex{m}
>      Marut, Ret\quad {\em see} \in[TravenB]\par
>      Matilda effect\quad {\em see} \in[obliteration]\par
>      \reference[misquotation]{misquotation}misquotation\quad 2
>    \stopIndex
>    \startIndex{o}
>      \reference[obliteration]{obliteration}obliteration\quad 1\par
>      \quad{\em See also} \in[misquotation] {\em and} \in[pseudepigraphy]
>    \stopIndex
>    \startIndex{p}
>      Prefect, Ford\quad {\em see Adams, Douglas}\par
>      \reference[pseudepigraphy]{pseudepigraphy}pseudepigraphy\quad 2\par
>      \quad {\em See also} \in[obliteration]
>    \stopIndex
>    \startIndex{t}
>      \reference[TravenB]{Traven, B.}Traven, B.\quad 2
>    \stopIndex
>    \startIndex{w}
>      Weimaraner\quad {\em see under} \in[dogbreeds]
>    \stopIndex
>    \page
>    \placeindex
>    \stoptext
> 
> -- 
> Rik
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the 
> Wiki!
> 
> maillist : ntg-cont...@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
> ___________________________________________________________________________________

— 
Taco Hoekwater              E: t...@bittext.nl
genderfluid (all pronouns)



_______________________________________________
dev-context mailing list
dev-context@ntg.nl
https://mailman.ntg.nl/mailman/listinfo/dev-context

Reply via email to