diff options
Diffstat (limited to 'tex/context/base/core-des.tex')
-rw-r--r-- | tex/context/base/core-des.tex | 487 |
1 files changed, 211 insertions, 276 deletions
diff --git a/tex/context/base/core-des.tex b/tex/context/base/core-des.tex index edd7d3af4..742c4272a 100644 --- a/tex/context/base/core-des.tex +++ b/tex/context/base/core-des.tex @@ -1,5 +1,5 @@ %D \module -%D [ filefile=core-des, +%D [ file=core-des, %D version=1997.03.31, %D title=\CONTEXT\ Core Macros, %D subtitle=Descriptions, @@ -27,38 +27,31 @@ % Op die manier is meer mogelijk en worden \par's geskipt. % % De macro \??dd#1\s!do\c!commando levert de koppeling tussen -% \doornummeren en \doordefinieren. Deze constructie is nodig +% \@@descriptionnumberen en \doordefinieren. Deze constructie is nodig % omdat doornummeren geen argument heeft en omdat subnummers % niet worden genest binnen het hogere niveau. Het commando % \??dd#1\s!do\c!state moet in dat geval \v!start zijn. % % herimplementeren met \nextbox en \unhbox\unvbox -\newbox\@@definitiebox +\newbox\@@descriptionbox -\def\@@definitiewoord#1% +\def\@@descriptionhandler#1% {\getvalue{\??dd#1\s!do\c!command}{#1}} -% \def\normal@@definitiewoord#1[#2]#3#4% -% {\doattributes -% {\??dd#1}\c!kopletter\c!kopkleur -% {\getvalue{\??dd#1\c!commando}% NAAR BUITENSTE NIVEAU ! -% {\begstrut\getvalue{\??dd#1\c!tekst}#4\endstrut}}% -% \rawreference\s!def{#2}{#3}} - -\def\normal@@definitiewoord#1[#2]#3#4% +\def\normal@@descriptionhandler#1[#2]#3#4% {\doattributes {\??dd#1}\c!headstyle\c!headcolor {\getvalue{\??dd#1\c!command}{#4}}% NAAR BUITENSTE NIVEAU ! \rawreference\s!def{#2}{#3}} % brrr moet in #4 -\setvalue{@@definitie\v!left}#1% - {\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang} +\setvalue{@@description\v!left}#1% + {\@@descriptionhang{#1}\@@descriptionleftpure\@@descriptionlefthang} -\setvalue{@@definitie\v!right}#1% - {\@@definitiehang{#1}\@@definitierechtspure\@@definitierechtshang} +\setvalue{@@description\v!right}#1% + {\@@descriptionhang{#1}\@@descriptionrightpure\@@descriptionrighthang} -\def\@@definitiehang#1#2#3% +\def\@@descriptionhang#1#2#3% {\processaction [\getvalue{\??dd#1\c!hang}] [ \v!none=>\let\next#2,% @@ -67,173 +60,155 @@ \s!default=>\let\next#2]% \next{#1}} -\def\@@definitielinkspure#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\def\@@descriptionleftpure#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \noindent\ignorespaces - \leftskip\@@leftdefinitieskip - \rightskip\@@rightdefinitieskip + \leftskip\@@leftdescriptionskip + \rightskip\@@rightdescriptionskip \advance\leftskip \!!widtha - \@@makedefinitiepurebox{#1}\raggedright + \@@makedescriptionpurebox{#1}\raggedright \advance\leftskip \!!widthb \llap {\hbox to \leftskip - {\hskip\@@leftdefinitieskip - \copy\@@definitiebox\hss}}% - \@@dodefinitie{#1}} + {\hskip\@@leftdescriptionskip + \copy\@@descriptionbox\hss}}% + \@@dodescription{#1}} -\def\@@definitierechtspure#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\def\@@descriptionrightpure#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \noindent\ignorespaces - \leftskip\@@leftdefinitieskip - \rightskip\@@rightdefinitieskip + \leftskip\@@leftdescriptionskip + \rightskip\@@rightdescriptionskip \advance\rightskip \!!widtha - \@@makedefinitiepurebox{#1}\raggedleft + \@@makedescriptionpurebox{#1}\raggedleft \rlap {\hskip\hsize \hskip-\leftskip \hskip-\rightskip - \copy\@@definitiebox - \hskip\@@rightdefinitieskip}% + \copy\@@descriptionbox + \hskip\@@rightdescriptionskip}% \advance\rightskip \!!widthb - \@@dodefinitie{#1}} + \@@dodescription{#1}} -\def\@@makedefinitiepurebox#1#2% - {\setbox\@@definitiebox\vtop +\def\@@makedescriptionpurebox#1#2% + {\setbox\@@descriptionbox\vtop {\dontcomplain \hsize\!!widtha \leftskip\zeropoint \rightskip\zeropoint #2\setupalign[\getvalue{\??dd#1\c!align}]% - \ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% - \ht\@@definitiebox\strutht - \dp\@@definitiebox\strutdp} + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}% + \ht\@@descriptionbox\strutht + \dp\@@descriptionbox\strutdp} -\def\@@definitielinkshang#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\def\@@descriptionlefthang#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \dontcomplain \advance\!!widtha \!!widthb \hangindent\!!widtha - \@@makedefinitiehangbox{#1}\raggedright{\advance\rightskip \!!widthb}% + \@@makedescriptionhangbox{#1}\raggedright{\advance\rightskip \!!widthb}% \noindent\ignorespaces \llap {\dontshowcomposition - \vtop to \zeropoint{\box\@@definitiebox}}% - \@@dodefinitie{#1}}% + \vtop to \zeropoint{\box\@@descriptionbox}}% + \@@dodescription{#1}}% -\def\@@definitierechtshang#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\def\@@descriptionrighthang#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \dontcomplain \advance\!!widtha \!!widthb \hangindent-\!!widtha - \@@makedefinitiehangbox{#1}\raggedleft{\advance\leftskip \!!widthb}% + \@@makedescriptionhangbox{#1}\raggedleft{\advance\leftskip \!!widthb}% \noindent\ignorespaces \rlap {\dontcomplain \dontshowcomposition - \dimen0=\hsize - \advance\dimen0 -\leftskip - \advance\dimen0 -\rightskip - \hbox to \dimen0 - {\hss\vtop to \zeropoint{\box\@@definitiebox}}}% - \@@dodefinitie{#1}} - -\def\@@makedefinitiehangbox#1#2#3% - {\setbox\@@definitiebox\vtop % \vbox gaat fout in hang + \scratchdimen\hsize + \advance\scratchdimen -\leftskip + \advance\scratchdimen -\rightskip + \hbox to \scratchdimen + {\hss\vtop to \zeropoint{\box\@@descriptionbox}}}% + \@@dodescription{#1}} + +\def\@@makedescriptionhangbox#1#2#3% + {\setbox\@@descriptionbox\vtop % \vbox gaat fout in hang {\forgetall \dontcomplain \hsize\!!widtha #2\setupalign[\getvalue{\??dd#1\c!align}]#3% - \ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% - \ht\@@definitiebox\strutht - \dp\@@definitiebox\strutdp + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}% + \ht\@@descriptionbox\strutht + \dp\@@descriptionbox\strutdp \doifinsetelse{\getvalue{\??dd#1\c!hang}}{\v!fit,\v!broad} - {\dimen0=\ht\@@definitiebox - \advance\dimen0 \dp\@@definitiebox + {\scratchdimen\ht\@@descriptionbox + \advance\scratchdimen \dp\@@descriptionbox \doifvalue{\??dd#1\c!hang}\v!broad - {\advance\dimen0 .5\strutht}% - \getnoflines{\dimen0}% + {\advance\scratchdimen .5\strutht}% + \getnoflines\scratchdimen \hangafter-\noflines} {\hangafter-\getvalue{\??dd#1\c!hang}}}% -\setvalue{@@definitie\v!top}#1[#2]#3% +\setvalue{@@description\v!top}#1[#2]#3% {%\page[\v!preference]% % Weg ermee! %\dosomebreak{\goodbreak}% % Dit is beter en nodig! - \dohandelpaginaafX1 % En dit moet het maar worden. - \@@dostartdefinitie{#1}[#2]{\let\\=\space#3}% + \dohandelpaginaafX\plusone % En dit moet het maar worden. + \@@dostartdescription{#1}[#2]{\let\\=\space#3}% \noindent\ignorespaces - \copy\@@definitiebox\par + \copy\@@descriptionbox\par \nobreak \getvalue{\??dd#1\c!inbetween}% \nobreak - \@@dodefinitie{#1}} - -% \setvalue{@@definitie\v!inmarge}#1[#2]#3% -% {\@@dostartdefinitie{#1}[#2]{#3}% -% \noindent\ignorespaces -% \inmargin{\ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% -% \@@dodefinitie{#1}} -% -% \setvalue{@@definitie\v!inlinker}#1[#2]#3% -% {\@@dostartdefinitie{#1}[#2]{#3}% -% \noindent\ignorespaces -% \inleft{\ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% -% \@@dodefinitie{#1}} -% -% \setvalue{@@definitie\v!inrechter}#1[#2]#3% -% {\@@dostartdefinitie{#1}[#2]{#3}% -% \noindent\ignorespaces -% \inright{\ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% -% \@@dodefinitie{#1}} - -\def\do@@definitie#1#2[#3]#4% - {\@@dostartdefinitie{#2}[#3]{#4}% - \noindent\ignorespaces - #1{\ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox}% - \@@dodefinitie{#2}} - -\setvalue{@@definitie\v!inmargin }{\do@@definitie\inmargin} -\setvalue{@@definitie\v!inleft }{\do@@definitie\inleft } -\setvalue{@@definitie\v!inright }{\do@@definitie\inright } -\setvalue{@@definitie\v!margin }{\do@@definitie\inmargin} -\setvalue{@@definitie\v!leftmargin }{\do@@definitie\inleft } -\setvalue{@@definitie\v!rightmargin}{\do@@definitie\inright } -\setvalue{@@definitie\v!innermargin }{\do@@definitie\ininner} -\setvalue{@@definitie\v!outermargin }{\do@@definitie\inouter} - -\setvalue{@@definitie\v!serried\v!fit}#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% + \@@dodescription{#1}} + +\def\do@@description#1#2[#3]#4% + {\@@dostartdescription{#2}[#3]{#4}% + \noindent\ignorespaces % not needed this ignore + #1{\ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox}% + \@@dodescription{#2}} + +\setvalue{@@description\v!inmargin }{\do@@description\inmargin} +\setvalue{@@description\v!inleft }{\do@@description\inleft } +\setvalue{@@description\v!inright }{\do@@description\inright } +\setvalue{@@description\v!margin }{\do@@description\inmargin} +\setvalue{@@description\v!leftmargin }{\do@@description\inleft } +\setvalue{@@description\v!rightmargin }{\do@@description\inright } +\setvalue{@@description\v!innermargin }{\do@@description\ininner } +\setvalue{@@description\v!outermargin }{\do@@description\inouter } + +\setvalue{@@description\v!serried\v!fit}#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \noindent\ignorespaces - \ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox \hskip\!!widthb % toegevoegd - \@@dodefinitie{#1}} + \@@dodescription{#1}} -\setvalue{@@definitie\v!serried\v!broad}#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\setvalue{@@description\v!serried\v!broad}#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \noindent\ignorespaces - \ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox \hskip\!!widthb \!!plus .5\!!widthb \!!minus .25\!!widthb - \@@dodefinitie{#1}} + \@@dodescription{#1}} -\setvalue{@@definitie\v!serried\v!wide}#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% +\setvalue{@@description\v!serried\v!wide}#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% \noindent\ignorespaces \hbox to \!!widtha - {\ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox\hss}% + {\ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox\hss}% \hskip\!!widthb \ignorespaces - \@@dodefinitie{#1}} + \@@dodescription{#1}} -\setvalue{@@definitie\v!serried}#1[#2]#3% +\setvalue{@@description\v!serried}#1[#2]#3% {\processaction [\getvalue{\??dd#1\c!width}] - [\v!fit=>\let\next\v!fit, + [ \v!fit=>\let\next\v!fit, \v!broad=>\let\next\v!broad, - \s!unknown=>\let\next\v!wide, - \s!default=>\let\next\v!broad]% - \getvalue{@@definitie\v!serried\next}{#1}[#2]{#3}} + \s!unknown=>\let\next\v!wide, + \s!default=>\let\next\v!broad]% + \getvalue{@@description\v!serried\next}{#1}[#2]{#3}} -\setvalue{@@definitie\v!hanging}#1[#2]#3% - {\@@dostartdefinitie{#1}[#2]{#3}% % adds \c!margin to \leftskip +\setvalue{@@description\v!hanging}#1[#2]#3% + {\@@dostartdescription{#1}[#2]{#3}% % adds \c!margin to \leftskip \noindent\ignorespaces \advance\leftskip -\leftskipadaption \relax \ifdim\leftskipadaption=\zeropoint @@ -248,14 +223,10 @@ \advance\leftskip \leftskipadaption \fi \hskip-\leftskipadaption - \ifhbox\@@definitiebox\unhcopy\else\copy\fi\@@definitiebox - \ifdim\!!widthb=\zeropoint - \kern.75em % another default - \else - \kern\!!widthb - \fi + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi\@@descriptionbox + \kern\ifdim\!!widthb=\zeropoint .75em\else\!!widthb\fi \ignorespaces - \@@dodefinitie{#1}} + \@@dodescription{#1}} %D A bonus definition %D @@ -263,17 +234,17 @@ %D \setupfootnotedefinition[location=command,headcommand=\llap] %D \stoptyping -\setvalue{@@definitie\v!command}#1% - {\do@@definitie{\executeifdefined{\??dd#1\c!headcommand}\framed}{#1}} +\setvalue{@@description\v!command}#1% + {\do@@description{\executeifdefined{\??dd#1\c!headcommand}\framed}{#1}} -%D A new key 'titeluitlijnen' in definitions. +%D A new key 'headalign' in definitions. \chardef\insidedefinition=0 -\let\@@leftdefinitieskip \!!zeropoint -\let\@@rightdefinitieskip\!!zeropoint +\let\@@leftdescriptionskip \!!zeropoint +\let\@@rightdescriptionskip\!!zeropoint -\def\@@dostartdefinitie#1[#2]#3% +\def\@@dostartdescription#1[#2]#3% {\getvalue{\??dd#1\c!before}% \begingroup \doadaptleftskip{\getvalue{\??dd#1\c!margin}}% @@ -283,12 +254,12 @@ \doifvalue{\??dd#1\c!width}\v!broad{\!!widthb=1em}% \fi % temp hack, we need to avoid this kind of preprocessing - \setbox\@@definitiebox\hbox % preroll + \setbox\@@descriptionbox\hbox % preroll {\forgetall \trialtypesettingtrue \dontcomplain \def\\{\crlf}% - \@@definitiewoord{#1}[#2]{#3}% + \@@descriptionhandler{#1}[#2]{#3}% {\begstrut\getvalue{\??dd#1\c!text}\ignorespaces#3\endstrut}}% % so far \assignwidth @@ -296,26 +267,26 @@ {\getvalue{\??dd#1\c!width}}% {\doifelsevaluenothing{\??dd#1\c!sample}% {% preroll can move here (test first) - \ifhbox\@@definitiebox\unhcopy\else\copy\fi \@@definitiebox}% - {\@@definitiewoord{#1}[#2]{#3}% + \ifhbox\@@descriptionbox\unhcopy\else\copy\fi \@@descriptionbox}% + {\@@descriptionhandler{#1}[#2]{#3}% {\getvalue{\??dd#1\c!text}\getvalue{\??dd#1\c!sample}}}} {\!!widthb}% - \setbox\@@definitiebox\hbox + \setbox\@@descriptionbox\hbox {\forgetall \dontcomplain \let\\\endgraf \doifelsevalue{\??dd#1\c!location}\v!serried - {\@@definitiewoord{#1}[#2]{#3}% + {\@@descriptionhandler{#1}[#2]{#3}% {\begstrut\getvalue{\??dd#1\c!text}#3\endstrut}} - {\@@definitiewoord{#1}[#2]{#3}% + {\@@descriptionhandler{#1}[#2]{#3}% {\vtop{\hsize\!!widtha\advance\hsize-\!!widthb \begstrut\getvalue{\??dd#1\c!text}\ignorespaces#3\endstrut}}}}% \doifelsevalue{\??dd#1\c!aligntitle}\v!no - {\edef\@@leftdefinitieskip {\the\leftskip }% - \edef\@@rightdefinitieskip{\the\rightskip}} + {\edef\@@leftdescriptionskip {\the\leftskip }% + \edef\@@rightdescriptionskip{\the\rightskip}} {\ifcase\insidedefinition - \edef\@@leftdefinitieskip {\the\leftskip }% - \edef\@@rightdefinitieskip{\the\rightskip}% + \edef\@@leftdescriptionskip {\the\leftskip }% + \edef\@@rightdescriptionskip{\the\rightskip}% \fi}% \expanded{\indenting[\getvalue{\??dd#1\c!indenting}]}% \ifcase\insidedefinition % better a system mode @@ -324,7 +295,7 @@ \chardef\insidedefinition\plustwo \fi} % now happens elsewhere : \noindent\ignorespaces -\def\@@stopdefinitie#1% +\def\@@stopdescription#1% {\par % maybe better after \dostopattributes \dostopattributes \endgroup @@ -332,26 +303,18 @@ \egroup % temporary hack \dochecknextindentation{\??dd#1}} -\def\@@dodefinitie#1% +\def\@@dodescription#1% {\dostartattributes{\??dd#1}\c!style\c!color\empty \ignorespaces} -% \def\@@somedefinitie#1[#2]#3% -% {\bgroup % temporary hack -% \BeforePar{\executedoordefinitie{#1}[#2]{#3}}% -% \AfterPar{\@@stopdefinitie{#1}}% -% \GetPar} -% -% nicer and better: - -\def\@@somedefinitie#1[#2]#3% +\def\@@somedescription#1[#2]#3% {\dowithpar - {\bgroup\executedoordefinitie{#1}[#2]{#3}}% - {\@@stopdefinitie{#1}}} + {\bgroup\@@makedescription{#1}[#2]{#3}}% + {\@@stopdescription{#1}}} -\def\@@startsomedefinitie#1[#2]#3% +\def\@@startsomedescription#1[#2]#3% {\bgroup % temporary hack - \BeforePar{\executedoordefinitie{#1}[#2]{#3}}% + \BeforePar{\@@makedescription{#1}[#2]{#3}}% \GotoPar} \def\dodosetupdescriptions[#1][#2]% @@ -362,44 +325,40 @@ {\dodosetupdescriptions[][#1]} {\dodoubleargumentwithset\dodosetupdescriptions[#1][#2]}} -\def\setupdescriptions% +\def\setupdescriptions {\dodoubleempty\dosetupdescriptions} -\def\executedoordefinitie#1[#2]% - {\ExpandAfter\doifundefined{@@definitie\getvalue{\??dd#1\c!location}} +\def\@@makedescription#1[#2]% + {\ExpandAfter\doifundefined{@@description\getvalue{\??dd#1\c!location}} {\setvalue{\??dd#1\c!location}{\v!left}}% - \getvalue{@@definitie\getvalue{\??dd#1\c!location}}{#1}[#2]} + \getvalue{@@description\getvalue{\??dd#1\c!location}}{#1}[#2]} \def\dodefinedescription[#1][#2]% {\copyparameters[\??dd#1][\??dd] [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor, \c!width,\c!hang,\c!sample,\c!before,\c!inbetween,\c!after,\c!margin, - \c!indenting,\c!indentnext,\c!align, - \c!text,\c!distance,\c!command]% + \c!indenting,\c!indentnext,\c!align,\c!text,\c!distance,\c!command]% \getparameters[\??dd#1] [\s!do\c!state=\v!stop, - \s!do\c!command=\normal@@definitiewoord, + \s!do\c!command=\normal@@descriptionhandler, #2]% \doifvalue{\??dd#1\c!location}\v!top - {\doassign[\??dd#1][\c!inbetween={\blank}]}% - \setvalue{#1}% - {\dodoubleempty\@@definitie[#1]}% - \setvalue{\e!start#1}% - {\dodoubleempty\@@startdefinitie[#1]}% - \setvalue{\e!stop#1}% - {\@@stopdefinitie{#1}}}% - -\def\@@startdefinitie[#1][#2]% + {\doassign[\??dd#1][\c!inbetween=\blank]}% + \setvalue {#1}{\dodoubleempty\@@description[#1]}% + \setvalue{\e!start#1}{\dodoubleempty\@@startdescription[#1]}% + \setvalue{\e!stop #1}{\@@stopdescription{#1}}}% + +\def\@@startdescription[#1][#2]% {\doifelsevalue{\??dd#1\s!do\c!state}\v!start - {\@@startsomedefinitie{#1}[#2]{}} - {\dowithwargument{\@@startsomedefinitie{#1}[#2]}}} + {\@@startsomedescription{#1}[#2]{}} + {\dowithwargument{\@@startsomedescription{#1}[#2]}}} -\def\@@definitie[#1][#2]% +\def\@@description[#1][#2]% {\doifelsevalue{\??dd#1\s!do\c!state}\v!start - {\@@somedefinitie{#1}[#2]{}} - {\dowithwargument{\@@somedefinitie{#1}[#2]}}} + {\@@somedescription{#1}[#2]{}} + {\dowithwargument{\@@somedescription{#1}[#2]}}} -\def\definedescription% +\def\definedescription {\dodoubleemptywithset\dodefinedescription} \def\showdnpuretext#1% @@ -447,27 +406,27 @@ \getvalue{\??dd#2#1\c!stopper}% \getvalue{\??dd#2#1\c!right}} -% #1=name #2=level #3=\show #4[#5]#6#7=#1[#2]#3#4 van definitie +% #1=name #2=level #3=\show #4[#5]#6#7=#1[#2]#3#4 van description -\def\special@@definitiewoord#1#2#3#4[#5]#6#7% +\def\special@@descriptionhandler#1#2#3#4[#5]#6#7% {\strut \doifelsevalue{\??dd#1\c!number}\v!no \!!doneafalse{\doifelse{#5}{-}\!!doneafalse\!!doneatrue}% - \chardef\definitiekoppeling\zerocount + \chardef\descriptioncoupling\zerocount \iflocation \doifvaluesomething{\??dd#1\c!coupling} {\processaction % genereert > of < [\getvalue{\??dd#1\c!couplingway}] - [ \v!local=>\chardef\definitiekoppeling1, % old: default - \v!global=>\chardef\definitiekoppeling2]}% new: global crosslinking + [ \v!local=>\chardef\descriptioncoupling1, % old: default + \v!global=>\chardef\descriptioncoupling2]}% new: global crosslinking \fi \setupnumber % the number is called indirectly [\getvalue{\??dd#1\??dd\c!number}] [\c!sectionnumber=\getvalue{\??dd#1\c!sectionnumber}]% \if!!donea -\iftrialtypesetting\startlocal\fi + \iftrialtypesetting\startlocal\fi \getvalue{\e!next#2#1}% tricky but we need the preroll -\iftrialtypesetting\stoplocal\fi + \iftrialtypesetting\stoplocal\fi % \getvalue{\e!next#2#1}% \iflocation \bgroup @@ -475,12 +434,12 @@ \protectconversion \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!number}]% \preparethenumber{\??dd#1}\voorafgaandenummer\preparednumber - \ifcase\definitiekoppeling \or - \xdef\internaldoornummer{#3{#1}}% - \rawreference\s!num{#1:\internaldoornummer}{}% + \ifcase\descriptioncoupling \or + \xdef\@@internalenumber{#3{#1}}% + \rawreference\s!num{#1:\@@internalenumber}{}% \or - \xdef\internaldoornummer{\countervalue{\??dd\c!coupling#1}}% - \rawreference\s!num{#1:\internaldoornummer}{}% + \xdef\@@internalenumber{\countervalue{\??dd\c!coupling#1}}% + \rawreference\s!num{#1:\@@internalenumber}{}% \fi \egroup \fi @@ -492,8 +451,8 @@ {\getvalue{\??dd#1\c!command}% hook for taco {\showdntext{#2#1}% \domakednnummer{#1}{#2}{#3}}}% - \iflocation\ifcase\definitiekoppeling \else - \edef\localconnection{\getvalue{\??dd#1\c!coupling}:\internaldoornummer}% + \iflocation\ifcase\descriptioncoupling \else + \edef\localconnection{\getvalue{\??dd#1\c!coupling}:\@@internalenumber}% \doifreferencefoundelse\localconnection {\in[\localconnection]}\donothing % genereert > of < \fi\fi @@ -506,56 +465,56 @@ \fi} \def\@@ddsetsubsubsubnummer#1% - {\edef\doornummer{\getvalue{\??dd#1\??dd\c!number}}% - \setnumber[\v!sub\v!sub\v!sub\doornummer]} + {\edef\@@descriptionnumber{\getvalue{\??dd#1\??dd\c!number}}% + \setnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]} \def\@@ddsetsubsubnummer#1% {\@@ddresetsubsubsubnummer{#1}% - \setnumber[\v!sub\v!sub\doornummer]} + \setnumber[\v!sub\v!sub\@@descriptionnumber]} \def\@@ddsetsubnummer#1% {\@@ddresetsubsubnummer{#1}% - \setnumber[\v!sub\doornummer]} + \setnumber[\v!sub\@@descriptionnumber]} \def\@@ddsetnummer#1% {\@@ddresetsubnummer{#1}% - \setnumber[\doornummer]} + \setnumber[\@@descriptionnumber]} \def\@@ddresetsubsubsubnummer#1% - {\edef\doornummer{\getvalue{\??dd#1\??dd\c!number}}% - \resetnumber[\v!sub\v!sub\v!sub\doornummer]} + {\edef\@@descriptionnumber{\getvalue{\??dd#1\??dd\c!number}}% + \resetnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]} \def\@@ddresetsubsubnummer#1% {\@@ddresetsubsubsubnummer{#1}% - \resetnumber[\v!sub\v!sub\doornummer]} + \resetnumber[\v!sub\v!sub\@@descriptionnumber]} \def\@@ddresetsubnummer#1% {\@@ddresetsubsubnummer{#1}% - \resetnumber[\v!sub\doornummer]} + \resetnumber[\v!sub\@@descriptionnumber]} \def\@@ddresetnumber#1% {\@@ddresetsubnummer{#1}% - \resetnumber[\doornummer]} + \resetnumber[\@@descriptionnumber]} \def\@@ddvolgendesubsubsubnummer#1[#2]% - {\edef\doornummer{\getvalue{\??dd#1\??dd\c!number}}% - \incrementnumber[\v!sub\v!sub\v!sub\doornummer]% - \rawreference\s!num{#2}{\showdnsubsubsubnummer{\doornummer}}}% + {\edef\@@descriptionnumber{\getvalue{\??dd#1\??dd\c!number}}% + \incrementnumber[\v!sub\v!sub\v!sub\@@descriptionnumber]% + \rawreference\s!num{#2}{\showdnsubsubsubnummer{\@@descriptionnumber}}}% \def\@@ddvolgendesubsubnummer#1[#2]% {\@@ddresetsubsubsubnummer{#1}% - \incrementnumber[\v!sub\v!sub\doornummer]% - \rawreference\s!num{#2}{\showdnsubsubnummer{\doornummer}}} + \incrementnumber[\v!sub\v!sub\@@descriptionnumber]% + \rawreference\s!num{#2}{\showdnsubsubnummer{\@@descriptionnumber}}} \def\@@ddvolgendesubnummer#1[#2]% {\@@ddresetsubsubnummer{#1}% - \incrementnumber[\v!sub\doornummer]% - \rawreference\s!num{#2}{\showdnsubnummer{\doornummer}}} + \incrementnumber[\v!sub\@@descriptionnumber]% + \rawreference\s!num{#2}{\showdnsubnummer{\@@descriptionnumber}}} \def\@@ddvolgendenummer#1[#2]% {\@@ddresetsubnummer{#1}% - \incrementnumber[\doornummer]% - \rawreference\s!num{#2}{\showdnnummer{\doornummer}}} + \incrementnumber[\@@descriptionnumber]% + \rawreference\s!num{#2}{\showdnnummer{\@@descriptionnumber}}} \def\dodosetupenumerations[#1][#2]% {\getparameters[\??dd#1][#2]% @@ -568,14 +527,14 @@ {\getparameters[\??dn][#1]} {\dodoubleargumentwithset\dodosetupenumerations[#1][#2]}} -\def\setupenumerations% +\def\setupenumerations {\dodoubleempty\dosetupenumerations} \def\dododefineenumeration#1#2#3[#4][#5]#6% {\makecounter{\??dd\c!coupling#1}% new: global cross linking \dodefinedescription[#3#1]% [\s!do\c!state=\v!start, - \s!do\c!command=\special@@definitiewoord{#1}{#3}{#6}]% + \s!do\c!command=\special@@descriptionhandler{#1}{#3}{#6}]% \copyparameters[\??dd#3#1][\??dn] [\c!location,\c!headstyle,\c!style,\c!color,\c!headcolor, \c!width,\c!number,\c!distance,\c!command, @@ -610,23 +569,20 @@ {\doifsomething{\getvalue{\??dd#1\c!conversion}}% % old {\setupnumber[#3#1] % times [\c!conversion=\getvalue{\??dd#1\c!conversion}]}}}% % sake - \setvalue{\s!set#3#1}% - {\dosetdoornummer[#1][#3]}% - \setvalue{\s!reset#3#1}% - {\doresetdoornummer[#1][#3]}% - \setvalue{\e!next#3#1}% - {\dotripleempty\dovolgendedoornummer[#1][#3]}} - -\def\dovolgendedoornummer[#1][#2]% - {\pluscounter{\??dd\c!coupling#1}% new: global crosslinking - \getvalue{\??dd\c!next#2\c!number}{#1}}% + \setvalue{\s!set #3#1}{\dosetenumerationnumber[#1][#3]}% + \setvalue{\s!reset#3#1}{\doresetenumerationnumber[#1][#3]}% + \setvalue{\e!next #3#1}{\dotripleempty\donextenumerationnumber[#1][#3]}} -\def\doresetdoornummer[#1][#2]% +\def\doresetenumerationnumber[#1][#2]% {\getvalue{\??dd\s!reset#2\c!number}{#1}}% -\def\dosetdoornummer[#1][#2]% +\def\dosetenumerationnumber[#1][#2]% {\getvalue{\??dd\s!set#2\c!number}{#1}}% +\def\donextenumerationnumber[#1][#2]% + {\pluscounter{\??dd\c!coupling#1}% new: global crosslinking + \getvalue{\??dd\c!next#2\c!number}{#1}}% + \def\dodefineenumeration[#1][#2][#3]% {\dododefineenumeration{#1}{1}{}[#2][#3]\showdnnummer \dododefineenumeration{#1}{2}{\v!sub}[#2][#3]\showdnsubnummer @@ -638,7 +594,7 @@ % Het default-mechanisme kan mooier: leegtest, enz. % -% Werkprocedure buiten definitie +% Werkprocedure buiten description \def\dodosetupindentations[#1][#2]% {\getparameters[\??ds#1][#2]} @@ -651,10 +607,12 @@ \def\setupindentations {\dodoubleempty\dosetupindentations} +% what to do with this + \def\startdoorspringen {\whitespace \@@dsbefore - \dosomebreak{\goodbreak}% \page[\v!preference] + \dosomebreak\goodbreak % \page[\v!preference] \begingroup \parskip\zeropoint\relax} @@ -662,6 +620,8 @@ {\endgroup \@@dsafter} +% + \def\dododefineindenting#1#2#3% {\par \getvalue{\??ds#1\c!before}% @@ -703,44 +663,11 @@ \setvalue {\v!sub#1}{\dododefineindenting{#1}{1}{2}}% \setvalue{\v!sub\v!sub#1}{\dododefineindenting{#1}{2}{3}}} -\def\defineindenting% +\def\defineindenting {\dodoubleargumentwithset\dodefineindenting} -% \def\dodoorlabel[#1][#2]% -% {\getvalue{\s!number#1\c!voor}% -% \bgroup -% \doifvalue{\s!number#1\c!plaats}{\v!marge} -% {\setvalue{\s!number#1\c!plaats}{\v!inmarge}}% -% \doattributes{\s!number#1}\c!kopletter\c!kopkleur -% {\getvalue{\e!volgende#1}[#2]}% -% \egroup -% \getvalue{\s!number#1\c!na}}% -% -% \def\dovolgendedoorlabel[#1][#2]% -% {\nextnumber[#1][\s!lab][#2]} -% -% \def\dodoorlabelen[#1][#2]% -% {\definenumber -% [#1][\c!voor=,\c!na=,\c!kopletter=,\c!wijze=\@@nrwijze,#2]% -% \setvalue {#1}{\dodoubleempty\dodoorlabel[#1]}% -% \setvalue{\s!reset #1}{\resetnumber[#1]}% -% \setvalue{\e!verhoog #1}{\incrementnumber[#1]}% -% \setvalue{\e!volgende#1}{\dodoubleempty\dovolgendedoorlabel[#1]}% -% \setvalue{\c!huidige #1}{\currentnumber[#1]}} -% -% \def\doorlabelen% -% {\dodoubleargumentwithset\dodoorlabelen} - -\def\dodoorlabel[#1][#2]% - {\getvalue{\??lb#1\c!before}% - \getvalue{\??lb#1\c!command}% - {\doattributes{\??lb#1}\c!headstyle\c!headcolor - {\dotextprefix{\getvalue{\??lb#1\c!text}}% - \getvalue{\e!next#1}[#2]}}% - \getvalue{\??lb#1\c!after}}% - -\def\dovolgendedoorlabel[#1][#2]% - {\nextnumber[#1][\s!lab][#2]} +\def\definelabel + {\dodoubleargumentwithset\dodefinelabel} \def\dodefinelabel[#1][#2]% {\getparameters @@ -750,22 +677,30 @@ \processaction [\getvalue{\??lb#1\c!location}] [ \v!inmargin=>\setvalue{\??lb#1\c!command}{\inmargin}, - \v!inleft=>\setvalue{\??lb#1\c!command}{\inleft }, - \v!inright=>\setvalue{\??lb#1\c!command}{\inright }, + \v!inleft=>\setvalue{\??lb#1\c!command}{\inleft }, + \v!inright=>\setvalue{\??lb#1\c!command}{\inright }, \v!margin=>\setvalue{\??lb#1\c!command}{\inmargin}]% % inefficient, we need to redesign this command \definenumber [#1] [\c!way=\getvalue{\??lb#1\c!way}]% % generated commands - \setvalue {#1}{\dodoubleempty\dodoorlabel[#1]}% - \setvalue{\s!reset #1}{\resetnumber[#1]}% - \setvalue{\e!increment #1}{\incrementnumber[#1]}% - \setvalue{\e!next#1}{\dodoubleempty\dovolgendedoorlabel[#1]}% - \setvalue{\c!current #1}{\currentnumber[#1]}} + \setvalue {#1}{\dodoubleempty\do@@label[#1]}% + \setvalue{\s!reset #1}{\resetnumber[#1]}% + \setvalue{\e!increment#1}{\incrementnumber[#1]}% + \setvalue{\e!next #1}{\dodoubleempty\do@@nextlabel[#1]}% + \setvalue{\c!current #1}{\currentnumber[#1]}} -\def\definelabel - {\dodoubleargumentwithset\dodefinelabel} +\def\do@@label[#1][#2]% + {\getvalue{\??lb#1\c!before}% + \getvalue{\??lb#1\c!command}% + {\doattributes{\??lb#1}\c!headstyle\c!headcolor + {\dotextprefix{\getvalue{\??lb#1\c!text}}% + \getvalue{\e!next#1}[#2]}}% + \getvalue{\??lb#1\c!after}}% + +\def\do@@nextlabel[#1][#2]% + {\nextnumber[#1][\s!lab][#2]} \setupdescriptions [\c!location=\v!left, @@ -805,7 +740,7 @@ \c!indenting=\v!never, \c!text=, \c!levels=3, % to be upward compatible - \c!conversion=, % to be upward compatible + \c!conversion=, % to be upward compatible \c!way=\v!by\v!text, \c!sectionnumber=\v!yes, \c!separator=., |