diff options
Diffstat (limited to 'tex/context/base/strc-reg.mkiv')
-rw-r--r-- | tex/context/base/strc-reg.mkiv | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/tex/context/base/strc-reg.mkiv b/tex/context/base/strc-reg.mkiv index 4c1c4be96..06c719a97 100644 --- a/tex/context/base/strc-reg.mkiv +++ b/tex/context/base/strc-reg.mkiv @@ -117,6 +117,7 @@ \c!prefix=\v!both, %\c!expansion=, %\c!xmlsetup=, + \c!pagenumber=\v!yes, \c!pageprefixconnector=\endash, \c!pagesegments=2:2, \c!file=\jobname, @@ -451,7 +452,7 @@ {\begingroup \edef\currentregister{#1}% \setupregister[\currentregister][#2]% - \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{structures.registers.analyse('\currentregister',{ + \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{structures.registers.analyze('\currentregister',{ language = "\registerparameter\s!language", compress = "\registerparameter\c!compress", criterium = "\registerparameter\c!criterium", @@ -563,9 +564,26 @@ {\doifsomething{#1} {\doifnot{#1}\s!unknown {\doifelse{\registerparameter\c!indicator}\v!yes - {\expandcheckedcsname{\??id:\c!indicator:}{\registerparameter\c!alternative}{a}{#1}} + {\doregistercharacter{#1}} {\noregistercharacter{#1}}}}} +% \def\doregistercharacter#1% +% {\expandcheckedcsname % why no \executeifdefined +% {\??id:\c!indicator:}% +% {\registerparameter\c!alternative}% +% {a}% +% {#1}} + +\def\doregistercharacter#1% + {\iflocation + \pagereference[\currentregister:\v!section:#1]% + \fi + \expandcheckedcsname % why no \executeifdefined + {\??id:\c!indicator:}% + {\registerparameter\c!alternative}% + {a}% + {#1}} + \def\noregistercharacter#1% {\registerparameter\c!before \goodbreak} @@ -701,11 +719,21 @@ \registerseeword{#3}% \dostoptagged} -\def\defaultregisterentry#1% +\def\doapplyregisterentrycommand#1% {\dostarttagged\t!registerentry\empty \registerparameter\c!textcommand{\limitedregisterentry{\registerparameter\c!deeptextcommand{#1}}}% \dostoptagged} +\def\defaultregisterentry#1#2% #1 is pageref + {\def\currentregisterpageindex{#1}% + \iflocation + \doifelse{\registerparameter\c!interaction}\v!text + {\directgoto{\setlocationcolor\??ia\doapplyregisterentrycommand{#2}}[internal(#1)]} + {\doapplyregisterentrycommand{#2}}% + \else + \doapplyregisterentrycommand{#2}% + \fi} + \def\defaultregisterseeword#1% {\dostarttagged\t!registersee\empty \labeltexts\v!see{#1}% @@ -760,7 +788,9 @@ \def\registerpagerange {\registerpagebuttonsymbol\gobblesixarguments}} \def\setregisterpagerendering - {\edef\currentregisterpagesymbol{\registerparameter\c!symbol}% + {\doifelse{\registerparameter\c!pagenumber}\v!no + {\let \currentregisterpagesymbol\v!none} + {\edef\currentregisterpagesymbol{\registerparameter\c!symbol}}% \ifx\currentregisterpagesymbol\empty \csname\??id:\c!symbol:\c!n\endcsname \else\ifcsname\??id:\c!symbol:\currentregisterpagesymbol\endcsname |