[NTG-context] check if inside footnote
Hans Hagen
j.hagen at xs4all.nl
Tue Aug 4 14:35:13 CEST 2020
On 8/4/2020 1:47 PM, Henning Hraban Ramm wrote:
>
>> Am 04.08.2020 um 13:20 schrieb Hans Hagen <j.hagen at xs4all.nl>:
>>
>> On 8/4/2020 11:04 AM, Henning Hraban Ramm wrote:
>>> Hi, me again...
>>> Is there a check if a macro is called from inside of a footnote, like a system mode *footnote?
>>> (Same with captions?)
>>> In my current project, index entries should get italic page numbers if they occurr inside of a footnote (or a caption, but that is rare).
>>> I’m using different shortcuts for both cases (that call \index with or without processor), but some paragraphs are very confusing (many long footnotes, or footnotes within footnotes), and I could avoid manually analyzing the structure if my macro could determine on its own if it’s called from a footnote.
>>> Not-working example:
>>> \setupinteraction[state=start]
>>> \defineprocessor[kursiv][style=italicface]
>>> \define[1]\Idx{\doifmodeelse{*footnote}{\index{#1}}{\index[kursiv->]{kursiv->#1}}#1}
>>> \starttext
>>> Text
>>> ---
>>> \index[C]{A}{B}\footnote{Inside\index{FN}}\index{BF}
>>> ---
>>> \placeregister[index][criterium=all]
>>> \stoptext
>> bad MWE ... took me more time to se that \Idx was not used than this:
>
> Ouch, sorry! That means I didn’t even check if that mode existed before; I also swapped the if/else brackets.
>
>
>> \appendtoks
>> \setsystemmode\currentnote
>> \to \everysynchronizenote
>>
>> can you check if that works ok?
>
> Yes, that works. Thank you very much!
>
> i.e. MWE =
>
> \setupinteraction[state=start]
> \defineprocessor[kursiv][style=italicface]
>
> \define[1]\Idx{\doifmodeelse{*footnote}{\index[kursiv->]{kursiv->#1}}{\index{#1}}#1}
>
> \appendtoks
> \setsystemmode\currentnote
> \to \everysynchronizenote
Ok, so when no one sees a problem I'll add it.
> \starttext
>
> Text
>
> ---
> \index[C]{A}{B}\footnote{Inside\Idx{FN}}\Idx{BF}
> ---
>
> \placeregister[index][criterium=all]
>
> \stoptext
>
>
>
> Hraban
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
>
> maillist : ntg-context at 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
> ___________________________________________________________________________________
>
--
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
More information about the ntg-context
mailing list