On 8/4/2020 1:47 PM, Henning Hraban Ramm wrote:
Am 04.08.2020 um 13:20 schrieb Hans Hagen
: 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@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 -----------------------------------------------------------------