summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/strc-reg.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/strc-reg.mkiv')
-rw-r--r--Master/texmf-dist/tex/context/base/strc-reg.mkiv616
1 files changed, 167 insertions, 449 deletions
diff --git a/Master/texmf-dist/tex/context/base/strc-reg.mkiv b/Master/texmf-dist/tex/context/base/strc-reg.mkiv
index fcc37549c44..19634390dba 100644
--- a/Master/texmf-dist/tex/context/base/strc-reg.mkiv
+++ b/Master/texmf-dist/tex/context/base/strc-reg.mkiv
@@ -17,9 +17,6 @@
\unprotect
-\def\c!keys {keys}
-\def\c!entries{entries}
-
% todo: tag:: becomes rendering
% todo: language, character, linked, location
@@ -117,10 +114,13 @@
\c!prefix=\v!both,
%\c!expansion=,
%\c!xmlsetup=,
+ \c!pagenumber=\v!yes,
\c!pageprefixconnector=\endash,
\c!pagesegments=2:2,
\c!file=\jobname,
%\c!deeptextcommand=, % undefined by default !
+ \c!method=, % no default as we have them in the module, maybe some day in lang-*
+ \c!numberorder=\v!numbers, % \v!characters
\s!language=\currentmainlanguage]%
%D Definition:
@@ -130,7 +130,7 @@
\def\dodefineregister[#1][#2]% #2?
{\setupregister[#1][\s!parent=\??id]%
- \ctxlua{jobregisters.define('#1')}%
+ \ctxlua{structures.registers.define('#1')}%
\presetheadtext[#1=\Word{#1}]%
\setuvalue{#1}{\dodoubleempty\doregister[#1]}%
\setuvalue{\e!see#1}{\dodoubleempty\doseeregister[#1]}%
@@ -223,24 +223,24 @@
% we could consider storing register entries in a list which we
% could then sort
\xdef\currentregisternumber{\ctxlua{
- jobregisters.store { % 'own' should not be in metadata
+ structures.registers.store { % 'own' should not be in metadata
metadata = {
kind = "entry",
name = "\currentregister",
- level = structure.sections.currentlevel(),
+ level = structures.sections.currentlevel(),
coding = "\currentregistercoding",
catcodes = \the\catcodetable,
\ifx\currentregisterownnumber\v!yes
own = "\registerparameter\c!alternative", % can be used instead of pagenumber
\fi
xmlroot = \ifx\currentreferencecoding\s!xml "\xmldocument" \else nil \fi, % only useful when text
-\ifx\currentregisterxmlsetup\empty \else
- xmlsetup = "\currentregisterxmlsetup",
-\fi
+ \ifx\currentregisterxmlsetup\empty \else
+ xmlsetup = "\currentregisterxmlsetup",
+ \fi
},
references = {
internal = \nextinternalreference,
- section = structure.sections.currentid(), % hm, why then not also lastsection the same way
+ section = structures.sections.currentid(), % hm, why then not also lastsection the same way
label = "\currentregisterlabel",
},
% \ifx\currentregisterentries\empty \else
@@ -258,16 +258,18 @@
\fi
},
% \fi
- userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ userdata = structures.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
}
} }%
- \ctxlua{jobreferences.setinternalreference(nil,nil,\nextinternalreference)}%
+ \ctxlua{structures.references.setinternalreference(nil,nil,\nextinternalreference)}%
\ifx\currentregisterownnumber\v!yes
\glet\currentregistersynchronize\relax
\else
- \xdef\currentregistersynchronize{\ctxlatelua{jobregisters.enhance("\currentregister",\currentregisternumber)}}%
+ \xdef\currentregistersynchronize{\ctxlatelua{structures.registers.enhance("\currentregister",\currentregisternumber)}}%
\fi
\currentregistersynchronize % here?
+ % needs thinking ... bla\index{bla}. will break before the . but adding a
+ % penalty is also no solution
\attribute\destinationattribute\lastdestinationattribute \forcecolorhack % no \strut as it will be removed during cleanup
\endgroup}
@@ -296,7 +298,7 @@
\fi}
\def\dostopregister[#1][#2]%
- {\normalexpanded{\ctxlatelua{jobregisters.extend("#1","#2")}}}
+ {\normalexpanded{\ctxlatelua{structures.registers.extend("#1","#2")}}}
\def\setregisterentry {\dotripleempty\dosetregisterentry}
\def\finishregisterentry{\dotripleempty\dofinishregisterentry}
@@ -327,18 +329,19 @@
\fi
\globallet\currentregistercoding\s!tex
\fi
+ % I hate this kind of mess ... but it's a user request.
\ifx\currentregisterentries\empty
- \normalexpanded{\ctxlua{jobregisters.extend("\currentregister","\currentregisterlabel", {
+ \normalexpanded{\ctxlua{structures.registers.extend("\currentregister","\currentregisterlabel", {
metadata = {
\ifx\currentregisterownnumber\v!yes
own = "\registerparameter\c!alternative", % can be used instead of pagenumber
\fi
},
- userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ userdata = structures.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
})%
}}%
\else
- \normalexpanded{\ctxlua{jobregisters.extend("\currentregister","\currentregisterlabel", {
+ \normalexpanded{\ctxlua{structures.registers.extend("\currentregister","\currentregisterlabel", {
metadata = {
catcodes = \the\catcodetable,
coding = "\currentregistercoding",
@@ -350,7 +353,7 @@
% we need a special one for xml, this is just a single one
\!!bs\currentregisterentries\!!es, \!!bs\currentregisterkeys\!!es
},
- userdata = structure.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
+ userdata = structures.helpers.touserdata(\!!bs\detokenize{#3}\!!es)
})
}}%
\fi
@@ -387,7 +390,7 @@
{\doflushatpar{\doregisterstructurepageregister{#1}{\c!label=#2,#3}{#4}}}
\def\dostopstructurepageregister[#1][#2]%
- {\normalexpanded{\ctxlatelua{jobregisters.extend("#1","#2")}}}
+ {\normalexpanded{\ctxlatelua{structures.registers.extend("#1","#2")}}}
% So far.
@@ -416,16 +419,16 @@
\fi
\setnextinternalreference
% we could consider storing register entries in list
- \edef\temp{\ctxlua{ jobregisters.store {
+ \edef\temp{\ctxlua{ structures.registers.store {
metadata = {
kind = "see",
name = "\currentregister",
- level = structure.sections.currentlevel(),
+ level = structures.sections.currentlevel(),
catcodes = \the\catcodetable,
},
references = {
internal = \nextinternalreference,
- section = structure.sections.currentid(),
+ section = structures.sections.currentid(),
},
entries = {
% we need a special one for xml, this is just a single one
@@ -440,6 +443,8 @@
%D Rendering:
+% todo: c!language ipv s!language
+
\let\utilityregisterlength\!!zerocount
\def\determineregistercharacteristics
@@ -449,10 +454,12 @@
{\begingroup
\edef\currentregister{#1}%
\setupregister[\currentregister][#2]%
- \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{jobregisters.analyse('\currentregister',{
- language = "\registerparameter\s!language",
- compress = "\registerparameter\c!compress",
- criterium = "\registerparameter\c!criterium",
+ \normalexpanded{\endgroup\noexpand\xdef\noexpand\utilityregisterlength{\ctxlua{structures.registers.analyze('\currentregister',{
+ language = "\registerparameter\s!language",
+ method = "\registerparameter\c!method",
+ numberorder = "\registerparameter\c!numberorder",
+ compress = "\registerparameter\c!compress",
+ criterium = "\registerparameter\c!criterium",
})}}}% brrr
\ifcase\utilityregisterlength\relax
\resetsystemmode\v!register
@@ -482,10 +489,12 @@
\c!align=\registerparameter\c!align,
\c!tolerance=\registerparameter\c!tolerance]%
\startpacked[\v!blank]%
- \ctxlua{jobregisters.process('\currentregister',{
- language = "\registerparameter\s!language",
- compress = "\registerparameter\c!compress",
- criterium = "\registerparameter\c!criterium",
+ \ctxlua{structures.registers.process('\currentregister',{
+ language = "\registerparameter\s!language",
+ method = "\registerparameter\c!method",
+ numberorder = "\registerparameter\c!numberorder",
+ compress = "\registerparameter\c!compress",
+ criterium = "\registerparameter\c!criterium",
},
{
% prefix = "\registerparameter\c!pageprefix",
@@ -561,9 +570,23 @@
{\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%
+ {\expandcheckedcsname % why no \executeifdefined
+ {\??id:\c!indicator:}%
+ {\registerparameter\c!alternative}%
+ {a}%
+ {#1}}
+
\def\noregistercharacter#1%
{\registerparameter\c!before
\goodbreak}
@@ -573,19 +596,31 @@
\setvalue{\??id:\c!indicator:a}#1%
{\registerparameter\c!before
% bugged, why does leftskip gets set: \vskip\lineheight\goodbreak\vskip-\lineheight
- \begingroup\dosetregisterattributes\c!style\c!color
- \registerparameter\c!command{\strut#1}%
+ \begingroup
+ \dosetregisterattributes\c!style\c!color
+ \dontleavehmode
+ \strut
+ \iflocation
+ \pagereference[\currentregister:\v!section:#1]%
+ \fi
+ \registerparameter\c!command{#1}%
\endgroup
\registerparameter\c!after
- \par\nobreak}
-
+ \par
+ \nobreak}
% b = <goodbreak> <before> <character> <after> <nobreak>
-\setvalue{\??id:\c!indicator:b}#1%
+\setvalue{\??id:\c!indicator:b}#1% will be shared with a
{\registerparameter\c!before
- \begingroup\dosetregisterattributes\c!style\c!color
- \registerparameter\c!command{\strut#1}%
+ \begingroup
+ \dosetregisterattributes\c!style\c!color
+ \dontleavehmode
+ \strut
+ \iflocation
+ \pagereference[\currentregister:\v!section:#1]%
+ \fi
+ \registerparameter\c!command{#1}%
\endgroup
\registerparameter\c!after
\nobreak}
@@ -603,47 +638,60 @@
\unexpanded\def\startregisteroutput
{\endgraf
\begingroup
+ \dostarttagged\t!register\currentregister
\forgetparindent
\forgetparskip}
\unexpanded\def\stopregisteroutput
{\endgraf
+ \dostoptagged
\endgroup}
\unexpanded\def\startregisterentries#1% depth
{\endgraf
\begingroup
+ \dostarttagged\t!registerentries\empty
\dosetregisterattributes\c!textstyle\c!textcolor
\advance\leftskip\numexpr#1-1\relax\dimexpr\registerparameter\c!distance\relax
\hangindent\registerparameter\c!distance\hangafter\plusone}
\unexpanded\def\stopregisterentries
{\endgraf
+ \dostoptagged
\endgroup}
\unexpanded\def\startregistersection#1% title
- {\registercharacter{#1}\endgraf}
+ {\dostarttagged\t!registersection\empty
+ \dostarttagged\t!registertag\empty
+ \registercharacter{#1}\endgraf
+ \dostoptagged}
\unexpanded\def\stopregistersection
- {\endgraf}
+ {\dostoptagged
+ \endgraf}
\newconditional\registerpagedone
\unexpanded\def\startregisterpages
{\begingroup
+ \dostarttagged\t!registerpages\empty
\setfalse\registerpagedone
\dosetregisterattributes\c!pagestyle\c!pagecolor}
\unexpanded\def\stopregisterpages
- {\endgroup}
+ {\dostoptagged
+ \endgroup}
\unexpanded\def\startregisterseewords
- {\begingroup
+ {\ifhmode\crlf\fi
+ \begingroup
\setfalse\registerpagedone
+ \dostarttagged\t!registerpage\empty
\dosetregisterattributes\c!pagestyle\c!pagecolor}
\unexpanded\def\stopregisterseewords
- {\endgroup}
+ {\dostoptagged
+ \endgroup}
\def\registerpageseparator% todo: , configurable
{\ifconditional\registerpagedone
@@ -655,30 +703,79 @@
\def\registeronepagerangeseparator{|\endash|}
-\def\withregisterpagecommand#1#2#3%
- {\def\currentregisterpageindex{#1}%
+\def\withregisterpagecommand#1#2#3#4%
+ {\def\currentregisterpageindex{#2}%
\iflocation
- \goto{\registerparameter\c!pagecommand{#3}}[internal(#1)]%
+ \goto{\registerparameter\c!pagecommand{#4}}[internal(#2)]%
\else
- \registerparameter\c!pagecommand{#3}%
+ \registerparameter\c!pagecommand{#4}%
\fi}
-\def\registeronepage#1#2#3% content
+\def\registeronepage#1#2#3#4% #1:processor content
{\registerpageseparator
- \withregisterpagecommand{#1}{#2}{#3}}
+ \dostarttagged\t!registerpage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged}
-\def\registerpagerange#1#2#3#4#5#6% content, content todo: -- configurable
+\def\registerpagerange#1#2#3#4#5#6#7% #1:processor content, content todo: -- configurable
{\registerpageseparator
- \withregisterpagecommand{#1}{#2}{#3}%
+ \dostarttagged\t!registerpagerange\empty
+ \dostarttagged\t!registerfrompage\empty
+ \withregisterpagecommand{#1}{#2}{#3}{#4}%
+ \dostoptagged
\registeronepagerangeseparator
- \withregisterpagecommand{#4}{#5}{#6}}
+ \dostarttagged\t!registertopage\empty
+ \withregisterpagecommand{#1}{#5}{#6}{#7}%
+ \dostoptagged
+ \dostoptagged}
+
+\def\doapplyregisterentrycommand#1#2% processor text
+ {\dostarttagged\t!registerentry\empty
+ \ifx\currentregisterseeindex\empty \else
+ \dontleavehmode
+ \pagereference[seeindex:\currentregisterseeindex]% maybe some day we will support an area
+ \fi
+ \applyprocessor{#1}{\registerparameter\c!textcommand{\limitedregisterentry{\registerparameter\c!deeptextcommand{#2}}}}%
+ \dostoptagged}
-\def\registeroneword#1#2#3% content
- {\registerpageseparator
- \registerseeword{#3}}
+\def\defaultregisterentry#1#2#3#4% #1:processor #2:internal #3:seeindex #4:word
+ {\def\currentregisterpageindex{#2}%
+ \iflocation
+ \def\currentregisterseeindex{#3}%
+ \doifelse{\registerparameter\c!interaction}\v!text
+ {\directgoto{\setlocationcolor\??ia\doapplyregisterentrycommand{#1}{#4}}[internal(#2)]}
+ {\doapplyregisterentrycommand{#1}{#4}}%
+ \else
+ \let\currentregisterseeindex\empty
+ \doapplyregisterentrycommand{#1}{#4}%
+ \fi}
+
+\unexpanded\def\doapplyregisterseecommand#1#2%
+ {\ifx\currentregisterseeindex\empty
+ % \dontleavehmode
+ \applyprocessor{#1}{#2}%
+ \else
+ \goto{\applyprocessor{#1}{#2}}[seeindex:\currentregisterseeindex]%
+ \fi}
-\def\defaultregisterentry #1{\registerparameter\c!textcommand{\limitedregisterentry{\registerparameter\c!deeptextcommand{#1}}}}
-\def\defaultregisterseeword#1{\labeltexts\v!see{#1}}
+\def\defaultregisterseeword#1#2#3#4#5#6% i n #3:processor #4:internal #5:seeindex #6:word
+ {%\registerpageseparator
+ \def\currentregisterpageindex{#4}%
+ \dostarttagged\t!registersee\empty
+ \settrue\registerpagedone
+ \iflocation
+ \def\currentregisterseeindex{#5}%
+ \else
+ \let\currentregisterseeindex\empty
+ \fi
+ \ifnum#1=\plusone
+ \labeltexts\v!see{\doapplyregisterseecommand{#3}{#6}}%
+ \else\ifnum#1=#2\relax
+ \labeltexts\v!and{\doapplyregisterseecommand{#3}{#6}}%
+ \else
+ ,\space\doapplyregisterseecommand{#3}{#6}%
+ \fi\fi
+ \dostoptagged}
\let\registerseeword \defaultregisterseeword
\let\registerentry \defaultregisterentry
@@ -700,7 +797,7 @@
% \placeregister[index][n=1,pagecommand=\MyRegisterPageCommand]
% \stoptext
-\def\registerpageuserdata #1#2{\ctxlua{jobregisters.userdata(#1,"#2")}}
+\def\registerpageuserdata #1#2{\ctxlua{structures.registers.userdata(#1,"#2")}}
\def\currentregisterpageuserdata {\registerpageuserdata\currentregisterpageindex} % {#1}
% not yet ok : new internal handler names
@@ -715,423 +812,44 @@
\setvalue{\??id:\c!symbol:\v!none}%
{\let\registerpageseparatorsymbol\empty
- \let\registeronepage \gobblethreearguments
- \let\registerpagerange \gobblesixarguments}
+ \let\registeronepage \gobblefourarguments
+ \let\registerpagerange \gobblesevenarguments}
\setvalue{\??id:\c!symbol:1}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\symbol[1]\gobblethreearguments}%
- \def\registerpagerange {\symbol[1]\gobblesixarguments}}
+ \def\registeronepage {\symbol[1]\gobblefourarguments}%
+ \def\registerpagerange {\symbol[1]\gobblesevenarguments}}
\setvalue{\??id:\c!symbol:2}%
{\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerpagebuttonsymbol\gobblethreearguments}%
- \def\registerpagerange {\registerpagebuttonsymbol\gobblesixarguments}}
+ \def\registeronepage {\registerpagebuttonsymbol\gobblefourarguments}%
+ \def\registerpagerange {\registerpagebuttonsymbol\gobblesevenarguments}}
\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
\csname\??id:\c!symbol:\currentregisterpagesymbol\endcsname
\else
\let\registerpageseparatorsymbol\space
- \def\registeronepage {\registerparameter\c!symbol\gobblethreearguments}%
- \def\registerpagerange {\registerparameter\c!symbol\gobblesixarguments}%
+ \def\registeronepage {\registerparameter\c!symbol\gobblefourarguments}%
+ \def\registerpagerange {\registerparameter\c!symbol\gobblesevenarguments}%
\fi\fi}
\appendtoks
\setregisterpagerendering
\to \everyplaceregister
-% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
-% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
-% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
-
-%D The following code will be reimplemented (not that hard) when it's needed
+%D The linked register code will be reimplemented (not that hard) when it's needed
%D again and/or when I'm bored.
-% \def\getalllistreferences#1#2%
-% {\gdefconvertexpanded\currentregisterentry{\getvalue{\??id#1\c!expansion}}{#2}%
-% \doifdefinedelse{\??id#1\??id\currentregisterentry}
-% {\edef\alllistreferences%
-% {\getvalue{\??id#1\??id\currentregisterentry}}%
-% \beforesplitstring\alllistreferences\at::\to\internallistreference
-% \aftersplitstring \alllistreferences\at::\to\alllistreferences}
-% {\let\alllistreferences\empty
-% \def\internallistreference{0}}}
-
-% \def\dosetlinkregister#1% is die page reference echt nodig?
-% {\setregisterpage{#1}%
-% \global\let\currentregisterentry\empty
-% \global\firstsubentrytrue % not needed
-% \global\firstsubsubentrytrue % not needed too
-% \setvalue{#1\s!entrya}##1{\dosetlinkregisterentrya{#1}{##1}}%
-% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
-
-% \def\dosetlinkregisterentrya#1#2%
-% {\global\utilitydonetrue
-% \c!entryletter
-% \iflocation
-% \getalllistreferences{#1}{#2}%
-% % no \endgraf
-% \hangindent1em\noindent\c!entryreference
-% %
-% %\thisissomeinternal{\s!lin}{\internallistreference}%
-% %
-% \pagereference[-:\s!lin:\internallistreference]% -: added
-% %
-% \getcommacommandsize[\alllistreferences]%
-% \getfromcommacommand[\alllistreferences][1]%
-% \ifnum\commalistsize=1
-% \let\firstlistreference\empty
-% \let\midlistreference\commalistelement
-% \let\lastlistreference\empty
-% \else
-% \let\firstlistreference\commalistelement
-% \getfromcommacommand[\alllistreferences][\commalistsize]%
-% \let\lastlistreference\commalistelement
-% \ifnum\commalistsize=2
-% \let\midlistreference\empty
-% \else
-% \!!counta\commalistsize
-% \divide\!!counta 2
-% \getfromcommacommand[\alllistreferences][\!!counta]%
-% \let\midlistreference\commalistelement
-% \fi
-% \fi
-% % aangepast
-% \def\dodocommand[##1-##2]%
-% {\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
-% \doifelsevalue{\??id#1\c!interaction}\v!pagenumber
-% {\limitedregisterentry{#1}{#2}} % paginanummer
-% {{\setbox0\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
-% \ifx\firstlistreference\empty % tekst,alles
-% \ifx\midlistreference\empty
-% \box0
-% \else
-% \expandafter\dodocommand\expandafter[\midlistreference]%
-% \fi
-% \else
-% \expandafter\dodocommand\expandafter[\firstlistreference]%
-% \fi}}%
-% \doifvalue{\??id#1\c!number}\v!yes
-% {\hskip\getvalue{\??id#1\c!distance}(\commalistsize)}%
-% \doifnotvalue{\??id#1\c!interaction}\v!text % paginanummer,alles
-% {\def\docommand##1##2%
-% {{\setbox0\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}%
-% \ifx##1\empty
-% % \hskip\wd0 % (optioneel maken)
-% \else
-% \expandafter\dodocommand\expandafter[##1]%
-% \fi}}%
-% \hskip\getvalue{\??id#1\c!distance}%
-% \docommand\firstlistreference\v!previous
-% \docommand\midlistreference\v!somewhere
-% \docommand\lastlistreference\v!next}%
-% % tot hier
-% \else
-% % no \endgraf
-% \noindent\c!entryreference
-% \limitedregisterentry{#1}{#2}%
-% \fi
-% \endgraf}
-
-% \def\dosetregister#1%
-% {\doifelsevalue{\??id#1\c!coupling}\v!yes
-% {\ifautoregisterhack
-% \dosetautoregister{#1}%
-% \else
-% \dosetlinkregister{#1}%
-% \fi}
-% {\dosetpageregister{#1}}}
-
-% \def\dosetregister#1%
-% {\dosetpageregister{#1}}
-
-% \newcounter\internallistreference
-
-% \def\doloadregisterlinks#1%
-% {\setregisterpage{#1}%
-% \global\let\currentregisterentry\empty
-% \global\firstregisterpagetrue
-% \setvalue{#1\s!entrya}##1%
-% {\global\firstregisterpagetrue
-% \gdefconvertedargument\currentregisterentry{##1}% global nodig?
-% \doglobal\increment\internallistreference}%
-% \setvalue{#1\s!from}%
-% {\getvalue{#1\s!page}}%
-% \ifautoregisterhack
-% \setvalue{#1\s!page}##1##2##3##4%
-% {\doifreglevelelse[##3]
-% {\global\utilitydonetrue
-% \iffirstregisterpage
-% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
-% {\internallistreference::##4}%
-% \else % catches errors in index
-% \ifcsname\??id#1\??id\currentregisterentry\endcsname
-% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
-% {\csname\??id#1\??id\currentregisterentry\endcsname,##4}%
-% \fi
-% \fi}
-% {}}%
-% \else
-% \setvalue{#1\s!page}##1##2##3##4%
-% {\doifreglevelelse[##3]
-% {\global\utilitydonetrue
-% \iffirstregisterpage
-% \global\firstregisterpagefalse
-% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
-% {\internallistreference::##2-##4}%
-% \else % catches errors in index
-% \ifcsname\??id#1\??id\currentregisterentry\endcsname
-% \@EA\xdef\csname\??id#1\??id\currentregisterentry\endcsname
-% {\csname\??id#1\??id\currentregisterentry\endcsname,##2-##4}%
-% \fi
-% \fi}
-% {}}%
-% \fi}
-
-% \def\docoupleregister[#1][#2]%
-% {\iflocation
-% \ifcase0\countervalue{autolink:#1}\relax % only once
-% \begingroup
-% \let\dosetregister\doloadregisterlinks
-% \def\currentregister{#1}%
-% \setupregister[#1][#2]%
-% \mkloadregister\currentregister\dobeforeplaceregister\doafterplaceregister
-% \endgroup
-% \ifautoregisterhack
-% \doinitializeautoregister{#1}%
-% \else
-% \doinitializelinkregister{#1}%
-% \fi
-% \fi
-% \fi}
-
-% \def\coupleregister
-% {\dodoubleempty\docoupleregister}
-
-% \def\dodocommandprolinrefAA[#1-#2]%
-% {\def\lastlistreference{#1-#2}}
-
-% \def\dodocommandprolinrefA[#1-#2]%
-% {\def\lastlistreference{#1-#2}%
-% \ifx\firstlistreference\empty
-% \let\firstlistreference\lastlistreference
-% \fi
-% \ifnum#1<\nextinternalreference\relax
-% \let\prevlistreference\lastlistreference
-% \else\ifnum#1>\nextinternalreference\relax
-% \let\nextlistreference\lastlistreference
-% \let\dodocommandprolinrefA\dodocommandprolinrefAA
-% \else
-% \let\selflistreference\lastlistreference
-% \fi\fi}
-
-% \def\docommandprolinrefA#1%
-% {\dodocommandprolinrefA[#1]}
-
-% \def\dodocommandprolinrefB[#1-#2]%
-% {\gotonextinternal{\s!ind}{#1}{#2}{\box0}}
-
-% \def\docommandprolinrefB#1#2#3%
-% {\bgroup
-% \ifx#2\empty
-% \doifvalue{\??id#1\c!unknownreference}\v!empty{\hskip1em}%
-% \else
-% \setbox0\hbox to 1em{\hss\showlocation{\symbol[#3]}\hss}%
-% \expandafter\dodocommandprolinrefB\expandafter[#2]%
-% \fi
-% \egroup}
-
-% \def\doprocesslinkregister[#1][#2]#3%
-% {\hbox
-% {\doprocesspageregister{}{#2}{}{#3}%
-% \let\firstlistreference\empty
-% \let\lastlistreference\empty
-% \let\selflistreference\empty
-% \let\prevlistreference\empty
-% \let\nextlistreference\empty
-% \getalllistreferences{#1}{#3}%
-% \ifx\alllistreferences\empty \else
-% \normalexpanded{\noexpand\rawprocesscommalist[\alllistreferences]}\docommandprolinrefA
-% \fi
-% \ifx\prevlistreference\empty
-% \let\prevlistreference\lastlistreference
-% \fi
-% \ifx\nextlistreference\empty
-% \let\nextlistreference\firstlistreference
-% \fi
-% \ifx\prevlistreference\selflistreference
-% \let\prevlistreference\empty
-% \let\nextlistreference\empty
-% \fi
-% \setalignmentswitch{\getvalue{\??id#1\c!location}}%
-% \ifcase\alignmentswitch
-% % links
-% \docommandprolinrefB{#1}\prevlistreference\v!previous
-% \docommandprolinrefB{#1}\nextlistreference\v!next
-% \or
-% % midden
-% \docommandprolinrefB{#1}\prevlistreference\v!previous
-% \or
-% % rechts
-% \fi
-% \doifreferencefoundelse{\s!lin:\internallistreference}
-% {\gotosomeinternal
-% \s!lin \internallistreference \currentrealreference
-% {\showlocation{\limitedregisterentry{#1}{#3}}}}
-% {\hbox{\limitedregisterentry{#1}{#3}}}%
-% \ifcase\alignmentswitch
-% % links
-% \or
-% % midden
-% \docommandprolinrefB{#1}\nextlistreference\v!next
-% \or
-% % rechts
-% \docommandprolinrefB{#1}\prevlistreference\v!previous
-% \docommandprolinrefB{#1}\nextlistreference\v!next
-% \fi}}
-
-% \def\doprocesslinkedregister[#1][#2]#3% page auto link
-% {\bgroup
-% \chardef\registerpagestatus\plusone
-% \def\currentregister{#1}%
-% \iflocation % \next is not needed
-% \ifautoregisterhack
-% \def\next{\doprocessautoregister[#1][#2]}%
-% \else
-% \def\next{\doprocesslinkregister[#1][#2]}%
-% \fi
-% \else
-% \def\next{\doprocesspageregister{}{#2}{}}%
-% \fi
-% \next{#3}%
-% \egroup}
-
-% \def\dodolinkedregister[#1][#2]#3% page auto link
-% {\doflushatpar{\doprocesslinkedregister[#1][#2]{#3}}}
-
-% \def\dolinkedregister#1%
-% {\dodoubleempty\dodolinkedregister[#1]}
-
-% \def\dosetautoregister#1%
-% {\makecounter{autolink:#1}%
-% \setregisterpage{#1}%
-% \global\let\currentregisterentry\empty
-% \global\firstsubentrytrue % not needed
-% \global\firstsubsubentrytrue % not needed too
-% \setvalue{#1\s!entrya}##1{\dosetautoregisterentrya{#1}{##1}}%
-% \setvalue{#1\s!entry }##1{\dosetpageregisterletter{#1}{##1}}}
-
-% \def\dosetautoregisterentrya#1#2%
-% {\global\utilitydonetrue
-% \c!entryletter
-% \iflocation
-% \getalllistreferences{#1}{#2}%
-% \endgraf\hangindent1em\noindent\c!entryreference
-% \pagereference[-:\s!lin:\internallistreference]%
-% \pluscounter{autolink:#1}%
-% \bgroup
-% %\setupinteraction[\c!color=,\c!contrastcolor=,\c!style=]% kan sneller
-% \resetinteractionparameter\c!color
-% \resetinteractionparameter\c!contrastcolor
-% \resetinteractionparameter\c!style
-% \gotobox
-% {\limitedregisterentry{#1}{\begstrut#2}}%
-% [JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
-% \egroup
-% \else
-% \endgraf\noindent\c!entryreference
-% \limitedregisterentry{#1}{#2}%
-% \fi}
-
-% \def\doprocessautoregister[#1][#2]#3%
-% {\hbox
-% {\doprocesspageregister{}{#2}{}{#3}%
-% \doifreferencefoundelse{\s!lin:\internallistreference}
-% {\gotosomeinternal \s!lin
-% {\internallistreference}{\currentrealreference}
-% {\showlocation{\limitedregisterentry{#1}{#3}}}}
-% {\hbox{\limitedregisterentry{#1}{#3}}}}}
-
-% \appendmacro aan openpaginaactie (in shipout)
-
-%D The first implementation used one main field with clones.
-%D In a 2500 page document this resulted in a rather (anoying)
-%D long start||up time. This \quote {every page its own field}
-%D solution, combined with a \quote {page open action}, works
-%D much faster, but is conceptually pretty weak.
-
-% \def\complexregisterfield[#1]%
-% {\definefield[#1:\realfolio][line][\v!register]%
-% \field[#1:\realfolio]}
-
-% \def\simpleregisterfield
-% {\complexregisterfield[\v!register]}
-
-% \definecomplexorsimple\registerfield
-
-% \appendtoks
-% % for now
-% \setupfield
-% [\v!register]
-% [\c!width=10em,
-% \c!height=3ex,
-% \c!align=\v!middle,
-% \c!option=\v!readonly,
-% \c!location=\v!low]
-% \to \everydump
-
-% \def\doinitializeautoregister#1%
-% {\useJSscripts[reg]%
-% \useJSpreamblenow{LinkedRegisters}%
-% \setupinteraction[\c!openpageaction=JS(UpdateRegisterField{\v!register})]%
-% \definereference[\v!reset\v!register][JS(ResetRegisterEntry{\v!register})]%
-% \definereference[\v!first\v!register][JS(GotoFirstRegisterEntry{\v!register})]%
-% \definereference[\v!previous\v!register][JS(GotoPreviousRegisterEntry{\v!register})]%
-% \definereference[\v!next\v!register][JS(GotoNextRegisterEntry{\v!register})]%
-% \definereference[\v!last\v!register][JS(GotoLastRegisterEntry{\v!register})]}
-
-% \def\doinitializelinkregister#1%
-% {}
-
-% todo ruwe register
-
%D Default index:
\defineregister
[\v!index]
[\v!indices]
-% \setupregister[index][koppeling=ja]
-%
-% \stelveldenin
-% [register][achtergrond=raster,kader=uit]
-%
-% \stelvoettekstenin
-% [{\field[index]}]
-%
-% \stelhoofdtekstenin
-% [{\naar {first}[eersteindex]\quad
-% \naar{previous}[vorigeindex]\quad
-% \naar {next}[volgendeindex]\quad
-% \naar {last}[laatsteindex]\quad\quad
-% \naar {index}[index]}]
-%
-% \starttekst
-%
-% oeps~~~\gekoppeldeindex{oeps} \blanko
-% flop~~~\gekoppeldeindex{flop} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% flop~~~\gekoppeldeindex{flop} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% oeps~~~\gekoppeldeindex{oeps} \blanko
-% test~~~\gekoppeldeindex{test} \pagina
-% flop~~~\gekoppeldeindex{flop} \blanko
-% oeps~~~\gekoppeldeindex{oeps} \pagina
-%
-% \volledigeindex
-
\protect \endinput