summaryrefslogtreecommitdiff
path: root/tex/context/base/strc-des.mkiv
diff options
context:
space:
mode:
authorMarius <mariausol@gmail.com>2012-02-08 23:00:23 +0200
committerMarius <mariausol@gmail.com>2012-02-08 23:00:23 +0200
commit7b47df8cbaae8690f14d306c633b2b2db053f66a (patch)
treea4cb6a0ebb8ac21a14558c258949d3c7da33dd25 /tex/context/base/strc-des.mkiv
parent5fce2a5267a603c8caf76880cdfb839d77ec64f0 (diff)
downloadcontext-7b47df8cbaae8690f14d306c633b2b2db053f66a.tar.gz
beta 2012.02.08 21:04
Diffstat (limited to 'tex/context/base/strc-des.mkiv')
-rw-r--r--tex/context/base/strc-des.mkiv1175
1 files changed, 0 insertions, 1175 deletions
diff --git a/tex/context/base/strc-des.mkiv b/tex/context/base/strc-des.mkiv
deleted file mode 100644
index e2e6664eb..000000000
--- a/tex/context/base/strc-des.mkiv
+++ /dev/null
@@ -1,1175 +0,0 @@
-%D \module
-%D [ file=strc-des,
-%D version=2008.10.20,
-%D title=\CONTEXT\ Structure Macros,
-%D subtitle=Descriptions,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Structure Macros / Descriptions}
-
-\registerctxluafile{strc-des}{1.001}
-
-%D TODO: commandhandler
-%D TODO: \startxxx[reference=...]
-
-%D In order to be more flexible with theorems Aditya Mahajan added
-%D support for titles and endsymbols. At the same time we added more
-%D flexible support for inheriting numbers.
-%D
-%D \startbuffer
-%D \defineenumeration[one]
-%D \defineenumeration[two] [one] % clone one
-%D \defineenumeration[three] [counter=one,style=slanted] % only use counter of one
-%D \defineenumeration[four] [three] % clone three
-%D \defineenumeration[five] [three] [counter=five] % clone three and use own counter
-%D \defineenumeration[six] [three] [counter=four] % clone tree and use counter four (undefined)
-%D
-%D \startone test test 6 \stopone
-%D \starttwo test test 7 \stoptwo
-%D \startthree test test 8 \stopthree
-%D \startfour test test 9 \stopfour
-%D \startfive test test 2 \stopfive
-%D \startsix test test 10 \stopsix
-%D \stopbuffer
-%D
-%D \typebuffer \start \getbuffer \stop
-%D
-%D \starttyping
-%D \setupenumerations[one] [prefix=yes,prefixsegments=section]
-%D \setupenumerations[two] [prefix=yes,prefixsegments=section]
-%D \setupenumerations[three][prefix=yes,prefixsegments=section]
-%D \setupenumerations[four] [prefix=yes,prefixsegments=chapter:section]
-%D \setupenumerations[five] [prefix=yes,prefixsegments=chapter:section]
-%D \setupenumerations[six] [prefix=yes,prefixsegments=chapter:section]
-%D \stoptyping
-
-% list and titles are experimental
-%
-% \definedescription[test] [location=left,hang=4,headalign={right},distance=1em,list=test]
-% \defineenumeration[lemma][title=yes,right=:,textdistance=1em, location=top, titlestyle=\bs,list=lemma]
-% \defineenumeration[ammel][title=yes,right=:,textdistance=.5em,location=left,titlestyle=\it,width=9em]
-%
-% \placelist[enumeration:lemma]
-% \placelist[description:test][width=0pt]
-%
-% \starttest {something something something} \input zapf \stoptest
-% \startlemma {with a title of a certain length} \input tufte \stoplemma
-% \startammel {with a title} \input zapf \stopammel
-%
-% \defineenumeration[lemma][...]
-% \defineenumeration[titledlemma][lemma][title=yes,right=:,text=lemma,list=lemma]
-
-\unprotect
-
-% description parameters
-
-\def\descriptionparameter #1{\csname\dodescriptionparameter{\??dd\currentdescription }#1\endcsname}
-\def\descriptionmainparameter #1{\csname\dodescriptionparameter{\??dd\currentdescriptionmain }#1\endcsname}
-\def\descriptionnumberparameter#1{\csname\dodescriptionparameter{\??dd\currentdescriptionnumber}#1\endcsname}
-
-\def\nameddescriptionparameter #1#2{\csname\dodescriptionparameter{\??dd#1}#2\endcsname}
-
-\def\detokenizeddescriptionparameter#1{\detokenize\expandafter\expandafter\expandafter{\csname\??dd\currentdescription#1\endcsname}}
-
-\def\dodescriptionparameter#1#2%
- {\ifcsname#1#2\endcsname#1#2\else\expandafter\dodescriptionparentparameter\csname#1\s!parent\endcsname#2\fi}
-
-\def\dodescriptionparentparameter#1#2%
- {\ifx#1\relax\s!empty\else\dodescriptionparameter#1#2\fi}
-
-\def\descriptionlocationparameter#1{\csname\dodescriptionlocationparameter{\??dd\currentdescription}#1\endcsname}
-
-\def\dodescriptionlocationparameter#1#2%
- {\ifcsname#1#2:\descriptionparameter\c!location\endcsname
- #1#2:\descriptionparameter\c!location
- \else\ifcsname#1\s!parent\endcsname
- \expandafter\dodescriptionlocationparameter\csname#1\s!parent\endcsname#2%
- \else
- \dodescriptionparameter{\??dd\currentdescription}#2%
- \fi\fi}
-
-% description hashes (needed for style/color)
-
-\def\descriptionparameterhash #1{\dodescriptionparameterhash{\??dd\currentdescription }#1}
-\def\descriptionmainparameterhash#1{\dodescriptionparameterhash{\??dd\currentdescriptionmain}#1}
-
-\def\dodescriptionparameterhash#1#2%
- {\ifcsname#1#2\endcsname#1\else\expandafter\dodescriptionparentparameterhash\csname#1\s!parent\endcsname#2\fi}
-
-\def\dodescriptionparentparameterhash#1#2%
- {\ifx#1\relax\else\dodescriptionparameterhash#1#2\fi}
-
-\def\usedescriptionstyleandcolor#1#2% style color
- {\edef\currentstyleparameter{\descriptionparameter#1}%
- \edef\currentcolorparameter{\descriptionparameter#2}%
- \ifx\currentstyleparameter\empty\else\dousestyleparameter\currentstyleparameter\fi
- \ifx\currentcolorparameter\empty\else\dousecolorparameter\currentcolorparameter\fi}
-
-% typesetting code
-
-\newbox \descriptionheadbox
-\newskip \leftdescriptionskip
-\newskip \rightdescriptionskip
-\newdimen \descriptionsheadwidth % replaces \!!widtha % TODO: proper namespace dimens
-\newdimen \descriptionsheaddistance % replaces \!!widthb % TODO: proper namespace dimens
-
-\setvalue{@@description\v!left }{\@@descriptionhang\@@descriptionleftpure \@@descriptionlefthang \@@descriptionleftmargin }
-\setvalue{@@description\v!right}{\@@descriptionhang\@@descriptionrightpure\@@descriptionrighthang\@@descriptionrightmargin}
-
-\def\@@descriptionhang#1#2#3% \next still needed?
- {\processaction
- [\descriptionparameter\c!hang]
- [ \v!none=>\let\next#1,%
- 0=>\let\next#1,%
- \v!margin=>\let\next#3,%
- \s!unknown=>\let\next#2,%
- \s!default=>\let\next#1]%
- \next}
-
-\def\@@descriptionleftpure
- {\def\\{\crlf}%
- \noindent
- \leftskip\dimexpr\leftdescriptionskip+\descriptionsheadwidth\relax
- \rightskip\rightdescriptionskip
- \@@makedescriptionpurebox\raggedright
- \advance\leftskip\descriptionsheaddistance
- \llap
- {\hbox to \leftskip
- {\hskip\leftdescriptionskip
- \copy\descriptionheadbox\hss}}%
- \@@dodescription}
-
-\def\@@descriptionrightpure
- {\def\\{\crlf}%
- \noindent
- \leftskip\leftdescriptionskip
- \rightskip\dimexpr\rightdescriptionskip+\descriptionsheadwidth\relax
- \@@makedescriptionpurebox\raggedleft
- \rlap
- {\hskip\dimexpr\hsize-\leftskip-\rightskip\relax
- \copy\descriptionheadbox
- \hskip\rightdescriptionskip}%
- \advance\rightskip \descriptionsheaddistance
- \@@dodescription}
-
-\def\@@descriptionleftmargin
- {\def\\{\crlf}%
- \noindent
- \llap
- {\@@makedescriptionpurebox\raggedright
- \hbox to \descriptionsheadwidth{\copy\descriptionheadbox\hss}%
- \hskip\descriptionsheaddistance}%
- \@@dodescription}
-
-\def\@@descriptionrightmargin % whatever this means
- {\def\\{\crlf}%
- \noindent
- \rlap
- {\hskip\descriptionsheaddistance
- \@@makedescriptionpurebox\raggedright
- \hbox to \descriptionsheadwidth{\copy\descriptionheadbox\hss}}%
- \@@dodescription}
-
-\def\@@makedescriptionpurebox#1%
- {\setbox\descriptionheadbox\vtop
- {\dontcomplain
- \hsize\descriptionsheadwidth
- \leftskip\zeropoint
- \rightskip\zeropoint
- #1\setupalign[\descriptionparameter\c!headalign]%
- \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
- \ht\descriptionheadbox\strutht
- \dp\descriptionheadbox\strutdp}
-
-\def\@@descriptionlefthang
- {\def\\{\crlf}%
- \dontcomplain
- \advance\descriptionsheadwidth \descriptionsheaddistance
- \hangindent\descriptionsheadwidth
- \@@makedescriptionhangbox\raggedright{\advance\rightskip \descriptionsheaddistance}%
- \noindent
- \llap
- {\vtop to \zeropoint{\box\descriptionheadbox}}%
- \@@dodescription}
-
-\def\@@descriptionrighthang
- {\def\\{\crlf}%
- \dontcomplain
- \advance\descriptionsheadwidth \descriptionsheaddistance
- \hangindent-\descriptionsheadwidth
- \@@makedescriptionhangbox\raggedleft{\advance\leftskip \descriptionsheaddistance}%
- \noindent
- \rlap
- {\dontcomplain
- \hbox to \dimexpr\hsize-\leftskip-\rightskip\relax % can be a macro
- {\hss\vtop to \zeropoint{\box\descriptionheadbox}}}%
- \@@dodescription}
-
-\def\@@makedescriptionhangbox#1#2%
- {\setbox\descriptionheadbox\vtop % \vbox gaat fout in hang
- {\forgetall
- \dontcomplain
- \hsize\descriptionsheadwidth
- #1\setupalign[\descriptionparameter\c!headalign]#2%
- \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
- \ht\descriptionheadbox\strutht
- \dp\descriptionheadbox\strutdp
- \doifsomething{\descriptionparameter\c!hang}
- {\doifinsetelse{\descriptionparameter\c!hang}{\v!fit,\v!broad}
- {\scratchdimen\htdp\descriptionheadbox
- \doif{\descriptionparameter\c!hang}\v!broad
- {\advance\scratchdimen .5\strutht}%
- \getnoflines\scratchdimen
- \hangafter-\noflines}
- {\hangafter-\descriptionparameter\c!hang}}}
-
-\setvalue{@@description\v!top}%
- {%\page[\v!preference]% % Weg ermee!
- %\dosomebreak{\goodbreak}% % Dit is beter en nodig!
- \dohandlepagebreakX\plusone % En dit moet het maar worden.
- \let\\=\space
- \noindent
- \copy\descriptionheadbox\par
- \nobreak
- %\descriptionparameter\c!inbetween % .. brrrr ... :
- \doifelsenothing{\descriptionparameter\c!inbetween}{\blank}{\descriptionparameter\c!inbetween}%
- \nobreak
- \@@dodescription}
-
-\def\do@@description#1% temp hack, the scope
- {\def\\{\crlf}%
- \noindent
- #1[\c!scope=\v!local]{\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
- \@@dodescription}
-
-\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}%
- {\def\\{\crlf}%
- \noindent
- \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
- \hskip\descriptionsheaddistance % toegevoegd
- \@@dodescription}
-
-\setvalue{@@description\v!serried\v!broad}%
- {\def\\{\crlf}%
- \noindent
- \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
- \hskip\descriptionsheaddistance \!!plus .5\descriptionsheaddistance \!!minus .25\descriptionsheaddistance
- \@@dodescription}
-
-\setvalue{@@description\v!serried\v!wide}%
- {\def\\{\crlf}%
- \noindent
- \hbox to \descriptionsheadwidth
- {\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox\hss}%
- \hskip\descriptionsheaddistance
- \@@dodescription}
-
-\setvalue{@@description\v!serried}%
- {\processaction
- [\descriptionlocationparameter\c!width]
- [ \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{@@description\v!serried\next}}
-
-\setvalue{@@description\v!hanging}%
- {\def\\{\crlf}%
- \noindent
- \advance\leftskip -\leftskipadaption \relax
- \ifdim\leftskipadaption=\zeropoint
- \leftskipadaption1.5em\relax % just some default
- \ifnum\nesteddescriptionstate=\plusone
- \ifdim\leftskip>\zeropoint \relax
- \leftskipadaption\leftskip
- \fi
- \fi
- \fi
- \ifnum\nesteddescriptionstate>\zerocount % was \ifnum\nesteddescriptionstate=\plusone
- \advance\leftskip \leftskipadaption % but we're already further on
- \fi
- \hskip-\leftskipadaption
- \ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox
- \kern\ifdim\descriptionsheaddistance=\zeropoint .75em\else\descriptionsheaddistance\fi
- \@@dodescription}
-
-%D A bonus definition
-%D
-%D \starttyping
-%D \setupfootnotedefinition[location=command,headcommand=\llap]
-%D \stoptyping
-
-% \setvalue{@@description\v!command}%
-% {\do@@description{\executeifdefined{\descriptionparameterhash\c!headcommand}\framed}}
-
-\setvalue{@@description\v!command}%
- {\noindent
- \descriptionparameter\c!headcommand{\ifhbox\descriptionheadbox\unhcopy\else\copy\fi\descriptionheadbox}%
- \@@dodescription}
-
-%D A new key 'headalign' in definitions.
-
-\newconstant\nesteddescriptionstate
-
-\def\resetdescriptions % to be used in e.g. footnotes
- {\nesteddescriptionstate\zerocount}
-
-\resetdescriptions
-
-\def\@@dostartdescription
- {\descriptionparameter\c!before
- \begingroup
- \doadaptleftskip{\descriptionparameter\c!margin}%
- \setlocalhsize % so we can use \localhsize in width assignments
- \descriptionsheaddistance\descriptionlocationparameter\c!distance\relax
- \ifdim\descriptionsheaddistance=\zeropoint\relax
- \doif{\descriptionlocationparameter\c!width}\v!broad{\descriptionsheaddistance=1em}%
- \fi
- \setbox\descriptionheadbox\hbox
- {\forgetall\dontcomplain
- \settrialtypesetting
- \doifelsenothing{\descriptionparameter\c!sample}
- {\dodescriptionhandler\currentdescriptiontext}%
- {\dodescriptionhandler\currentdescriptionsample}}%
- \assignwidth
- {\descriptionlocationparameter\c!width}
- \descriptionsheadwidth
- {\unhcopy\descriptionheadbox}
- \descriptionsheaddistance
- \setbox\descriptionheadbox\hbox
- {\forgetall\dontcomplain
- \doifelse{\descriptionparameter\c!location}\v!serried % brrr, hack
- {\dodescriptionhandler\currentdescriptiontext}
- {\dodescriptionhandler{\boxeddescriptionhead\currentdescriptiontext}}}%
- \doifelse{\descriptionparameter\c!aligntitle}\v!no
- {\leftdescriptionskip\leftskip\rightdescriptionskip\rightskip}
- {\ifcase\nesteddescriptionstate\leftdescriptionskip\leftskip\rightdescriptionskip\rightskip\fi}%
- \doifsomething{\descriptionparameter\c!align}{\setupalign[\descriptionparameter\c!align]}%
- \normalexpanded{\noexpand\indenting[\descriptionparameter\c!indenting]}%
- % better a system mode
- \ifcase\nesteddescriptionstate
- \nesteddescriptionstate\plusone
- \or
- \nesteddescriptionstate\plustwo
- \fi % now happens elsewhere : \noindent\ignorespaces
- \@@resetdescriptionclosesymbol}
-
-\def\boxeddescriptionhead#1%
- {\vtop
- %{\hsize\dimexpr\descriptionsheadwidth-\descriptionsheaddistance\relax
- {\hsize\descriptionsheadwidth
- \doifsomething{\descriptionparameter\c!headalign}{\setupalign[\descriptionparameter\c!headalign]}%
- #1}}
-
-\def\@@stopdescription
- {\@@placedescriptionclosesymbol
- \doifnot{\descriptionparameter\c!display}\v!no\par
- \dostoptagged
- \dostoptagged
- \endgroup
- \descriptionparameter\c!after % which currentdescription is taken here?
- \useindentnextparameter\descriptionparameter
- \egroup
- \dorechecknextindentation}
-
-\def\@@dodescription
- {\usedescriptionstyleandcolor\c!style\c!color
- \ignorespaces}
-
-% starters:
-
-\def\@@startdescription[#1]%
- {\doifelse{\descriptionparameter\c!title}\v!yes
- {\permitspacesbetweengroups
- \dodoublegroupempty{\dohandledescriptionstart[#1]}}
- {\dohandledescriptionstart[#1]{}}}
-
-\def\@@description[#1]%
- {\doifelse{\descriptionparameter\c!title}\v!yes
- {\permitspacesbetweengroups
- \dodoublegroupempty{\dohandledescriptiondo[#1]}}
- {\dohandledescriptiondo[#1]{}}}
-
-% these call:
-
-\long\def\@@somedescription[#1]#2%
- {\dowithpar
- {\bgroup % temporary hack
- \@@makedescription[#1]{#2}}%
- {\@@stopdescription}}
-
-\long\def\@@startsomedescription[#1]#2%
- {\bgroup % temporary hack
- \BeforePar{\@@makedescription[#1]{#2}}%
- \GotoPar}
-
-\ifdefined\dotagsetdescription \else \let\dotagsetdescription\relax \fi
-
-\def\@@dostartdescriptionindeed
- {\edef\currentdescriptionlocation{\descriptionparameter\c!location}%
- \ifx\currentdescriptionlocation\empty
- \let\currentdescriptionlocation\v!left
- \fi
- \ifcsname @@description\currentdescriptionlocation\endcsname \else
- \let\currentdescriptionlocation\v!left
- \fi
- \dostarttagged\t!description\currentdescription
- \dotagsetdescription
- \dostarttagged\t!descriptiontag\empty
- \@@dostartdescription
- \csname @@description\currentdescriptionlocation\endcsname
- \dostoptagged
- \dostarttagged\t!descriptioncontent\empty} % args not needed
-
-\def\@@makedescription[#1]#2%
- {\postponenotes % new, assumes grouping
- \edef\currentdescriptionreference{#1}%
- \doenumerationcheckconditions
- \dodescriptioncomponent[\c!reference=#1,\c!label={\descriptionparameter\c!text},\c!title={#2},\c!bookmark=,\c!list=][]%
- \@@dostartdescriptionindeed}
-
-\def\dostartstoreddescription
- {\@@dostartdescriptionindeed}
-
-\def\dostopstoreddescription
- {\@@stopdescription}
-
-% % % % % % % % % % % %
-
-% setup descriptions
-
-\unexpanded\def\setupdescriptions
- {\dodoubleempty\dosetupdescriptions}
-
-\def\dosetupdescriptions[#1][#2]% % beter: \iffirstargument
- {\ifsecondargument
- \dodoubleargumentwithset\dodosetupdescriptions[#1][#2]%
- \else
- \dodosetupdescriptions[][#1]%
- \fi}
-
-\def\dodosetupdescriptions[#1]% [#2]%
- {\getparameters[\??dd#1]} % [#2]}
-
-\setupdescriptions
- [\c!location=\v!left,
- \c!headstyle=\v!bold,
- \c!titlestyle=\v!bold,
- \c!style=\v!normal,
- \c!color=,
- \c!headcolor=,
- \c!titlecolor=,
- %\c!width=8em,
- %\c!distance=0pt,
- \c!titledistance=0.5em,
- \c!hang=,
- \c!sample=,
- \c!align=,
- \c!headalign=,
- \c!margin=\v!no,
- \c!before=\blank,
- \c!inbetween=\blank,
- \c!after=\blank,
- \c!indentnext=\v!yes,
- \c!indenting=\v!never,
- \c!titleleft=(,
- \c!titleright=),
- \c!closesymbol=,
- \c!closecommand=\wordright,
- \c!display=\v!yes,
- \c!command=,
- \c!titlecommand=]
-
-\setupdescriptions
- [\c!expansion=\v!no,
- \c!xmlsetup=,
- \s!catcodes=,
- \c!saveinlist=\v!yes]
-
-\setupdescriptions
- [\c!width=7em,
- \c!distance=1em]
-
-\setupdescriptions[\c!width:\c!top=\localhsize] % undocumented, only width and distance
-% \setupdescriptions[\c!width:\c!left=7em,\c!distance=1em]
-% \setupdescriptions[\c!width:\c!right=7em,\c!distance=1em]
-% \setupdescriptions[\c!width:\v!hanging=\v!fit] % yes or no
-
-% define descriptions
-
-\unexpanded\def\definedescription
- {\dotripleemptywithset\dodefinedescription}
-
-\def\dodefinedescription[#1][#2][#3]% to be simplified cf enumeration
- {\dodescriptioninit{#1}%
- \getparameters[\??dd#1][\c!text=,\s!handler=\v!description,\c!title=\v!yes]%
- \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
- \ifdone
- \getparameters[\??dd#1][\s!parent=\??dd,\c!text=,\s!handler=\v!description,#2]%
- \dodefinedescriptioncommands{#1}{\??dd}%
- \else % clone
- \getparameters[\??dd#1][\s!parent=\??dd#2,\c!text=,\s!handler=\v!description,#3]% clone
- \dodefinedescriptioncommands{#1}{\??dd#2}%
- \fi}
-
-\def\dodefinedescriptioncommands#1#2%
- {\setuevalue {#1}{\noexpand\dodescriptioncommand{#1}}%
- \setuevalue{\e!start#1}{\noexpand\dodescriptionstart {#1}}%
- \setuevalue{\e!stop #1}{\noexpand\dodescriptionstop {#1}}}
-
-% handle descriptions
-
-\def\dodescriptioninit#1%
- {\let\currentdescriptionmain \empty
- \let\currentdescriptionlevel \empty
- \edef\currentdescriptionname {#1}%
- \edef\currentdescription {#1}}
-
-\def\dodescriptioncommand#1{\dodescriptioninit{#1}\dosingleempty\@@description}
-\def\dodescriptionstart #1{\dodescriptioninit{#1}\dosingleempty\@@startdescription}
-\def\dodescriptionstop #1{\dodescriptioninit{#1}\@@stopdescription}
-
-\def\dodescriptiontext {\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!text \endcsname}
-\def\dodescriptionnumber {\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!number\endcsname}
-\def\dodescriptionsymbol {\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!symbol\endcsname}
-\def\dodescriptionhandler {\csname\??dd:\descriptionparameter\s!handler:\s!handler \endcsname}
-\def\dohandledescriptiondo {\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!do \endcsname}
-\def\dohandledescriptionstart{\csname\??dd:\descriptionparameter\s!handler:\s!handler:\s!start \endcsname}
-
-\def\currentdescriptiontext {\begstrut\dodescriptiontext\endstrut}
-\def\currentdescriptionsample{\begstrut\descriptionparameter\c!text\descriptionparameter\c!sample\endstrut}
-
-% implementation
-
-% beware: with footnotes #2 can be something messy but then #1 is
-% empty anyway, so we have an extra safeguard
-
-\newtoks \everydescription
-
-\setvalue{\??dd:\v!description:\s!handler:\s!text }{\@@dodescriptiontext}
-\setvalue{\??dd:\v!description:\s!handler }{\@@dodescriptionhandler}
-\setvalue{\??dd:\v!description:\s!handler:\s!do }{\@@somedescription}
-\setvalue{\??dd:\v!description:\s!handler:\s!start}{\@@startsomedescription}
-
-\def\@@dodescriptionhandler#1%
- {\iftrialtypesetting \else
- \begingroup
- \currentdescriptionsynchronize
- \attribute\destinationattribute\currentdescriptionattribute\relax % todo, whole text
- \signalcharacter
- \endgroup
- \fi#1}
-
-\def\@@dododescriptiontext
- {\ctxlua{structures.lists.savedtitle("\currentdescriptionmain",\currentdescriptionnumberentry)}}
-
-\def\@@dodescriptiontext
- {\begingroup
- \usedescriptionstyleandcolor\c!headstyle\c!headcolor
- \the\everydescription
- \descriptionparameter\c!command{\strut\descriptionparameter\c!text\ignorespaces\@@dododescriptiontext}% probably incomplete
- \endgroup}
-
-% setup enumerations
-
-\unexpanded\def\setupenumerations
- {\dodoubleempty\dosetupenumerations}
-
-\def\dodosetupenumerations[#1][#2]%
- {\doenumerationinit{#1}{1}\empty
- \getparameters[\??dd#1][#2]%
- \dosetupenumerationcounter{#1}}
-
-\def\dosetupenumerations[#1][#2]%
- {\ifsecondargument
- \dodoubleargumentwithset\dodosetupenumerations[#1][#2]%
- \else
- \getparameters[\??dn][#1]%
- \fi}
-
-\setupenumerations
- [\c!location=\v!top,
- \c!text=,
- \c!way=\v!by\v!text,
- \c!prefix=\v!no,
- \c!prefixconnector=.,
- \c!starter=,
- \c!stopper=,
- \c!number=\v!yes, % else description
- \c!start=0,
- \s!parent=\??dd]
-
-\setupenumerations
- [\c!expansion=\v!no,
- \c!xmlsetup=,
- \s!catcodes=,
- \c!saveinlist=\v!yes]
-
-% define enumerations
-
-\unexpanded\def\defineenumeration
- {\dotripleemptywithset\dodefineenumeration}
-
-\def\dodefineenumeration[#1][#2][#3]% #2 or #3 assignment
- {\doenumerationinit{#1}{1}\empty
- \getparameters[\??dd#1][\c!text=#1,\c!state=\v!start,\s!handler=\v!enumeration,\c!levels=4]%
- \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
- \ifdone % independent
- \getparameters[\??dd#1][\s!counter=#1,#2]%
- \dodefineenumerationcommands{#1}{1}{}{\??dn}%
- \let\@@subslevel\empty
- \dostepwiserecurse{2}{\descriptionparameter\c!levels}{1}
- {\normalexpanded{\noexpand\dodefineenumerationcommands{#1}{\recurselevel}{\@@subslevel\v!sub}{\??dd\@@subslevel#1}}%
- \edef\@@subslevel{\@@subslevel\v!sub}}%
- \else % clone
- \getparameters[\??dd#1][\s!parent=\??dd#2,#3]%
- \let\@@subslevel\empty
- \dorecurse{\descriptionparameter\c!levels}
- {\normalexpanded{\noexpand\dodefineenumerationcommands{#1}{\recurselevel}{\@@subslevel}{\??dd\@@subslevel#2}}%
- \edef\@@subslevel{\@@subslevel\v!sub}}%
- \fi
- \edef\currentdescriptioncounter{\descriptionparameter\s!counter}%
- \ifx\currentdescriptioncounter\empty
- \ifdone\dodefineenumerationcounter{#1}\fi
- \else\ifx\currentdescriptioncounter\v!yes
- \ifdone\dodefineenumerationcounter{#1}\fi
- \else\ifx\currentdescriptioncounter\v!no
- \ifdone\dodefineenumerationcounter{#1}\fi
- \else
- \letvalue{\??dd#1\s!counter}\currentdescriptioncounter % ?
- %[[#1:\currentdescriptioncounter]]
- \doifstructurecounterelse{\currentdescriptioncounter}{}{\dodefineenumerationcounter\currentdescriptioncounter}%
- \fi\fi\fi
- \dosetupenumerationcounter{#1}} % new
-
-\newtoks\everysetupenumerationcounter
-\let\currentenumerationcountername\empty
-
-\def\dosetupenumerationcounter#1%
- {\edef\currentenumerationcountername{#1}% only used in the token list
- \edef\currentdescription{#1}%
- \the\everysetupenumerationcounter}
-
-\appendtoks
- \dostructurecountersetup\currentenumerationcountername\descriptionparameter
-\to \everysetupenumerationcounter
-
-\def\dodefineenumerationcounter#1% todo: fast inheritance (was mainparameter
- {\definestructurecounter[#1]%
- \dosetupenumerationcounter{#1}}
-
-\def\dodefineenumerationcommands#1#2#3#4% since we use \currentdescription, we need an edef
- {\setevalue{\??dd#3#1\s!parent}{#4}%
- \setuevalue {#3#1}{\noexpand\doenumerationcommand {#1}{#2}{#3}}%
- \setuevalue{\c!reset#3#1}{\noexpand\doresetenumerationnumber{#1}{#2}{#3}}%
- %setuevalue{\c!set #3#1}{\noexpand\dosetenumerationnumber {#1}{#2}{#3}}%
- \setuevalue{\e!next #3#1}{\noexpand\donextenumerationnumber {#1}{#2}{#3}}%
- \setuevalue{\e!start#3#1}{\noexpand\doenumerationstart {#1}{#2}{#3}}%
- \setuevalue{\e!stop #3#1}{\noexpand\doenumerationstop {#1}{#2}{#3}}}
-
-% handle enumeration
-
-\def\currentdescriptionnumber {\csname\??dd\currentdescriptionmain\s!counter\endcsname}% no edef (yet)
-\def\specificdescriptionnumber#1{\csname\??dd#1\s!counter\endcsname}% no edef (yet)
-
-\def\doenumerationinit#1#2#3%
- {\edef\currentdescriptionmain {#1}%
- \edef\currentdescriptionlevel{#2}%
- \edef\currentdescriptionname {#1}%
- \edef\currentdescription {#3#1}}
-
-\def\doenumerationcommand#1#2#3{\doenumerationinit{#1}{#2}{#3}\dosingleempty\@@description}
-\def\doenumerationstart #1#2#3{\doenumerationinit{#1}{#2}{#3}\dosingleempty\@@startdescription}
-\def\doenumerationstop #1#2#3{\doenumerationinit{#1}{#2}{#3}\@@stopdescription}
-
-\def\doresetenumerationnumber#1#2#3{\strc_counters_reset_sub {\specificdescriptionnumber{#1}}{#2}}
-\def\dosetenumerationnumber#1#2#3#4{\strc_counters_set_sub {\specificdescriptionnumber{#1}}{#2}{#4}}
-\def\donextenumerationnumber #1#2#3{\strc_counters_increment_sub{\specificdescriptionnumber{#1}}{#2}}
-
-% implementation
-
-\newtoks \everyenumeration
-\newconstant\enumerationnumberstate % 1 == enabled
-\def \enumerationsignalskip {-} % 0 == disabled
-\def \enumerationsignalsymbol{+} % 2 == disabled but symbol
-
-\appendtoks \disablepseudocaps \to \everyenumeration % sorry, uppercase causes troubles
-
-\setvalue{\??dd:\v!enumeration:\s!handler:\s!number}{\@@doenumerationnumber}
-\setvalue{\??dd:\v!enumeration:\s!handler:\s!symbol}{\@@doenumerationsymbol}
-\setvalue{\??dd:\v!enumeration:\s!handler:\s!text }{\@@doenumerationtext}
-\setvalue{\??dd:\v!enumeration:\s!handler }{\@@doenumerationhandler}
-\setvalue{\??dd:\v!enumeration:\s!handler:\s!do }{\@@somedescription}
-\setvalue{\??dd:\v!enumeration:\s!handler:\s!start }{\@@startsomedescription}
-
-\let\@@doenumerationhandler\@@dodescriptionhandler
-
-% \def\currentenumerationfullnumber
-% {\ctxlua{structures.lists.savedprefixednumber("\currentdescriptionmain",\currentdescriptionnumberentry)}}
-
-\def\@@doenumerationnumber
- {\ctxlua{structures.lists.savedprefixednumber("\currentdescriptionmain",\currentdescriptionnumberentry)}}
-
-\def\@@doenumerationsymbol
- {\descriptionparameter\c!symbol}
-
-\def\@@dodoenumerationtext
- {\ctxlua{structures.lists.savedtitle("\currentdescriptionmain",\currentdescriptionnumberentry)}}
-
-\def\doenumerationnumber
- {\descriptionparameter\c!left
- \descriptionparameter\c!starter
- \dodescriptionnumber
- \descriptionparameter\c!stopper
- \descriptionparameter\c!right}
-
-\def\doenumerationsymbol
- {\descriptionparameter\c!left
- \dodescriptionsymbol
- \descriptionparameter\c!right}
-
-\def\@@doenumerationtext
- {\ifcase\enumerationnumberstate
- \doenumerationfullnumbernop
- \or
- \iftrialtypesetting
- \doenumerationfullnumberyes
- \doenumerationcouplingsymbol
- \else
- \doenumerationregistercoupling
- \doenumerationfullnumberyes
- \doenumerationcouplingsymbol
- \fi
- \or
- \doenumerationfullnumbersymbol
- \fi}
-
-\def\doenumerationfullnumberyes {\doenumerationfullnumber{\showdntext \doenumerationnumber\doenumerationextratext}}
-\def\doenumerationfullnumbernop {\doenumerationfullnumber{\showdnpuretext \doenumerationextratext}}
-\def\doenumerationfullnumbersymbol{\doenumerationfullnumber{\showdntext \doenumerationsymbol\doenumerationextratext}}
-
-\def\doenumerationfullnumber#1% text, title (used in notes) .. todo
- {\begingroup
- \usedescriptionstyleandcolor\c!headstyle\c!headcolor
- \the\everyenumeration
- \descriptionparameter\c!command{\strut#1}%
- \endgroup}
-
-\def\doenumerationextratext
- {\doif{\descriptionparameter\c!title}\v!yes
- {\doifsomething\@@dodoenumerationtext
- {\begingroup
- \usedescriptionstyleandcolor\c!titlestyle\c!titlecolor
- \hskip\descriptionparameter\c!titledistance
- \descriptionparameter\c!titlecommand
- {\descriptionparameter\c!titleleft
- \begstrut\@@dodoenumerationtext\endstrut
- \descriptionparameter\c!titleright}%
- \endgroup}}}
-
-\def\doenumerationsavecounter {\strc_counters_save \currentdescriptionnumber} % can be inlined
-\def\doenumerationrestorecounter {\strc_counters_restore \currentdescriptionnumber} % can be inlined
-\def\doenumerationincrementcounter{\strc_counters_increment_sub\currentdescriptionnumber\currentdescriptionlevel} % can be inlined
-
-% to be used in for instance:
-%
-% coupling=questions .... coupling=answers
-%
-% we will provide some more control, like skipping etc or reference relates
-
-\def\doenumerationcheckconditions
- {\doifelse{\descriptionparameter\c!number}\v!yes
- {\ifx\currentdescriptionreference\enumerationsignalsymbol
- \enumerationnumberstate\plustwo % symbol
- \else\ifx\currentdescriptionreference\enumerationsignalskip
- \enumerationnumberstate\zerocount % disabled
- \else
- \enumerationnumberstate\plusone % enabled
- \fi\fi}%
- {\enumerationnumberstate\zerocount}% % disabled
- \edef\currentenumerationcoupling{\descriptionparameter\c!coupling}}
-
-\def\doenumerationregistercoupling
- {\iflocation
- % no area yet, we will provide variants some day
- \fi}
-
-\def\doenumerationcouplingsymbol
- {\iflocation \ifx\currentenumerationcoupling\empty\else
- \symbolreference[order(description:\currentenumerationcoupling:\nextinternalorderreference)]%
- \fi \fi}
-
-\def\skipenumerationcoupling[#1]% e.g. for questions with no answer
- {\ctxlua{structures.references.setnextorder("description","#1")}}
-
-\def\showdnpuretext{\strut\descriptionparameter\c!text} % geen spatie
-\def\showdnlisttext{\descriptionparameter\c!listtext} % space in default
-\def\showdntext {\doifsomething{\descriptionparameter\c!text}{\descriptionparameter\c!text\removeunwantedspaces\fixedspace}}
-
-\unexpanded\def\structurecounterreference#1%
- {[enumref: #1]}
-
-% you can use \placeclosesymbol or \qed to place a symbol at the end of a
-% description
-
-\def\@@resetdescriptionclosesymbol
- {\global\@EA\settrue\csname\??dd\currentdescription:mrk\endcsname
- \let\placeclosesymbol\@@placedescriptionclosesymbol
- \let\qed \@@placedescriptionclosesymbol}
-
-\def\@@placedescriptionclosesymbol
- {\ifconditional\csname\??dd\currentdescription:mrk\endcsname
- \global\@EA\setfalse\csname\??dd\currentdescription:mrk\endcsname
- \doifsomething{\descriptionparameter\c!closesymbol}{\descriptionparameter\c!closecommand{\descriptionparameter\c!closesymbol}}%
- \fi}
-
-\newif\ifnodescriptioncaption
-
-\def\doifelsedescriptioncomponent
- {\ctxlua{structures.lists.doifstoredelse(currentdescriptionnumberentry)}}
-
-\def\dodescriptioncomponent
- {\doifelsedescriptioncomponent\nododescriptioncomponent\dododescriptioncomponent}
-
-\def\nododescriptioncomponent[#1][#2]% #1=interfaced-settings, #2=optional user data
- {}
-
-\def\dododescriptioncomponent[#1][#2]% #1=interfaced-settings, #2=optional user data
- {\begingroup % similar to structure so we might generalize this
- \getparameters[\??dd\currentdescription][#1]%
- %
- \xdef\currentdescriptionexpansion {\descriptionparameter\c!expansion}%
- \xdef\currentdescriptionxmlsetup {\descriptionparameter\c!xmlsetup}%
- \xdef\currentdescriptioncatcodes {\descriptionparameter\s!catcodes}%
- \xdef\currentdescriptionlabel {\descriptionparameter\c!label}%
- \xdef\currentdescriptionreference {\descriptionparameter\c!reference}%
- \xdef\currentdescriptionreferenceprefix{\descriptionparameter\c!referenceprefix}%
- %xdef\currentdescriptionshownumber {\descriptionparameter\c!number}%
- \xdef\currentdescriptionsaveinlist {\descriptionparameter\c!saveinlist}%
- \xdef\currentdescriptionincrementnumber{\descriptionparameter\c!incrementnumber}%
- %
- \ifx\currentdescriptionexpansion\empty
- \glet\currentdescriptionexpansion\v!no
- \fi
- %
- \ifx\currentdescriptionexpansion\s!xml
- \xmlstartraw
- \xdef\currentdescriptiontitle {\descriptionparameter\c!title}%
- \xdef\currentdescriptionbookmark{\descriptionparameter\c!bookmark}%
- \xdef\currentdescriptionmarking {\descriptionparameter\c!marking}%
- \xdef\currentdescriptionlist {\descriptionparameter\c!list}%
- \xmlstopraw
- \ifx\currentdescriptionlist\empty
- \globallet\currentdescriptionlist\currentdescriptiontitle
- \fi
- \globallet\currentdescriptioncoding\s!xml
- \else
- \ifx\currentdescriptionexpansion\v!yes
- \xdef\currentdescriptiontitle {\descriptionparameter\c!title}%
- \xdef\currentdescriptionbookmark{\descriptionparameter\c!bookmark}%
- \xdef\currentdescriptionmarking {\descriptionparameter\c!marking}%
- \xdef\currentdescriptionlist {\descriptionparameter\c!list}%
- \else
- \xdef\currentdescriptiontitle {\detokenizeddescriptionparameter\c!title}%
- \xdef\currentdescriptionbookmark{\detokenizeddescriptionparameter\c!bookmark}%
- \xdef\currentdescriptionmarking {\detokenizeddescriptionparameter\c!marking}%
- \xdef\currentdescriptionlist {\detokenizeddescriptionparameter\c!list}%
- \iflocation \ifx\currentdescriptionbookmark\empty
- \begingroup
- \simplifycommands
- \xdef\currentdescriptionbookmark{\detokenize\expandafter{\normalexpanded{\descriptionparameter\c!title}}}%
- \endgroup
- \fi \fi
- \fi
- \ifx\currentdescriptionlist\empty
- \globallet\currentdescriptionlist\currentdescriptiontitle
- \fi
- \globallet\currentdescriptioncoding\s!tex
- \fi
- %
- \ifx\currentdescriptiontitle\v!none % will become obsolete
- \global\nodescriptioncaptiontrue\global\nodescriptionnumbertrue
- \fi
- %
- \ifcase\enumerationnumberstate
- % disabled
- \or
- \doifelsedescriptioncomponent\donothing\doenumerationincrementcounter
- \or
- % symbol
- \fi
- %
- \ifnodescriptioncaption
- \glet\currentdescriptionlistnumber \relax
- \glet\currentdescriptionsynchronize\relax
- \glet\currentdescriptionattribute \relax
- \else
- %\setnextinternalreference
- \setnextinternalreferences{description}\currentdescriptionname % plural
- \xdef\currentdescriptionnumberentry{\ctxcommand{addtolist{
- metadata = {
- kind = "description",
- name = "\currentdescriptionname",
- level = structures.sections.currentlevel(),
- catcodes = \the\catcodetable,
- % \currentdirectionparameters
- },
- references = {
- internal = \nextinternalreference,
- order = \nextinternalorderreference,
- reference = "\currentdescriptionreference",
- referenceprefix = "\referenceprefix",
- block = "\currentsectionblock",
- section = structures.sections.currentid(),
- },
- titledata = {
- label = \!!bs\detokenize\expandafter{\currentdescriptionlabel }\!!es,
- title = \!!bs\detokenize\expandafter{\currentdescriptiontitle }\!!es,
- \ifx\currentdescriptionbookmark\currentdescriptiontitle \else
- bookmark = \!!bs\detokenize\expandafter{\currentdescriptionbookmark}\!!es,
- \fi
- \ifx\currentdescriptionlist\currentdescriptiontitle \else % \ifx\currentdescriptionsaveinlist\v!no
- list = \!!bs\detokenize\expandafter{\currentdescriptionlist }\!!es,
- \fi % \fi
- },
- \ifcase\enumerationnumberstate
- % disabled
- \or
- prefixdata = {
- prefix = "\descriptionparameter\c!prefix",
- separatorset = "\descriptionparameter\c!prefixseparatorset",
- conversion = \!!bs\descriptionparameter\c!prefixconversion\!!es,
- conversionset = "\descriptionparameter\c!prefixconversionset",
- set = "\descriptionparameter\c!prefixset",
- segments = "\descriptionparameter\c!prefixsegments",
- connector = \!!bs\descriptionparameter\c!prefixconnector\!!es,
- },
- numberdata = {
- numbers = structures.counters.compact("\currentdescriptionnumber",nil,true), % ! number can be cloned
- separatorset = "\descriptionparameter\c!numberseparatorset",
- conversion = "\descriptionparameter\c!numberconversion",
- conversionset = "\descriptionparameter\c!numberconversionset",
- starter = \!!bs\descriptionparameter\c!numberstarter\!!es,
- stopper = \!!bs\descriptionparameter\c!numberstopper\!!es,
- segments = "\descriptionparameter\c!numbersegments",
- },
- \or
- % symbol
- \fi
- userdata = \!!bs\detokenize{#2}\!!es % will be converted to table at the lua end
- }
- }}%
- \xdef\currentdescriptionattribute {\ctxlua {tex.write(structures.references.setinternalreference("\referenceprefix","\currentdescriptionreference",\nextinternalreference,"\interactionparameter\c!focus"))}}%
- \xdef\currentdescriptionsynchronize{\ctxlatecommand{enhancelist(\currentdescriptionnumberentry)}}%
- \fi
- \endgroup}
-
-% This is not so nice, some day i'll just store the number with the entry
-% and deal with all at the Lua end, but first we need to be able to set
-% macros.
-
-\def\reinstatedescriptionnumberentry#1%
- {\xdef\currentdescriptionattribute {\ctxlua {structures.references.getinternalreference(#1)}}%
- \xdef\currentdescriptionsynchronize{\ctxlatecommand{enhancelist(#1)}}}
-
-\installstructurelistprocessor{description}{\usestructurelistprocessor{number+title}}
-
-% labels, we could share with enumerations and forget about the text; anyhow, figure
-% labels etc can use enumerations; we keep labels for compatibility reasons; we need
-% the slightly different namespace; we can still define structure counters directly
-% (multiple levels) and use an enumeration without following text
-
-% unfinished
-
-\unexpanded\def\setuplabels
- {\getparameters[\??db]}
-
-\unexpanded\def\definelabel
- {\dotripleargumentwithset\dodefinelabel}
-
-\def\dodefinelabel[#1][#2][#3]% #2 or #3 assignment
- {\doenumerationinit{#1}{1}\empty
- \getparameters[\??dd#1][\c!command=,\c!state=\v!start,\c!location=,\c!text=#1]%
- \ifsecondargument\doifassignmentelse{#2}\donetrue\donefalse\else\donetrue\fi
- \ifdone
- % an independent one
- \getparameters[\??dd#1][\s!counter=#1,\s!parent=\??db,#2]%
- \dodefinelabelcommands{#1}{\??db}%
- \dodefineenumerationcounter{#1}%
- \else
- \getparameters[\??dd#1][\s!counter=#1,\s!parent=\??dd#2,#3]%
- \dodefinelabelcommands{#1}{\??dd#2}%
- \fi}
-
-\def\dodefinelabelcommands#1#2%
- {\setuevalue {#1}{\noexpand\dolabelnumbercommand {#1}}%
- \setuevalue{\c!reset #1}{\noexpand\doresetlabelnumber {#1}}%
- %\setuevalue{\c!set #1}{\noexpand\dosetlabelnumber {#1}}% [#2] or {#2} ?
- \setuevalue{\e!next #1}{\noexpand\donextlabelnumber {#1}}%
- \setuevalue{\e!increment#1}{\noexpand\doincrementlabelnumber{#1}}%
- \setuevalue{\c!current #1}{\noexpand\docurrentlabelnumber {#1}}}
-
-% this is just for downward compatibility, we might drop it
-
-\setvalue{\??db:\c!location:\v!inmargin}{\inmargin}
-\setvalue{\??db:\c!location:\v!inleft }{\inleft}
-\setvalue{\??db:\c!location:\v!inright }{\inright}
-\setvalue{\??db:\c!location:\v!margin }{\inmargin}
-
-\def\dolabelinit#1%
- {\def\currentdescriptionmain{#1}%
- \def\currentdescription {#1}%
- \def\currentdescriptionlevel{1}}
-
-\def\docurrentlabelnumber #1{\dolabelinit{#1}\dosingleempty\dodocurrentlabelnumber}
-\def\donextlabelnumber #1{\dolabelinit{#1}\dosingleempty\dodonextlabelnumber}
-\def\dolabelnumbercommand #1{\dolabelinit{#1}\dosingleempty\dodolabelnumbercommand}
-
-\def\doresetlabelnumber #1{\dolabelinit{#1}\strc_counters_reset_sub \currentdescriptionnumber\currentdescriptionlevel}
-\def\dosetlabelnumber #1#2{\dolabelinit{#1}\strc_counters_set_sub \currentdescriptionnumber\currentdescriptionlevel{#2}}
-\def\doincrementlabelnumber #1{\dolabelinit{#1}\strc_counters_increment_sub\currentdescriptionnumber\currentdescriptionlevel}
-
-\def\dodocurrentlabelnumber[#1]%
- {\dontleavehmode
- \writestatus{!!!}{todo: reference of label}%
- \dotextprefix{\descriptionparameter\c!text}%
- \convertedsubstructurecounter[\currentdescriptionnumber][\currentdescriptionlevel]}
-
-\def\dodonextlabelnumber[#1]% todo: ref
- {\strc_counters_increment_sub\currentdescriptionnumber\currentdescriptionlevel
- \dodocurrentlabelnumber[\currentdescriptionnumber]}
-
-\def\dodolabelnumbercommand[#1]% todo: ref
- {\dontleavehmode
- \descriptionparameter\c!before
- \begingroup
- \strc_counters_increment_sub\currentdescriptionnumber\currentdescriptionlevel
- \usedescriptionstyleandcolor\c!headstyle\c!headcolor
- \executeifdefined{\??db:\c!location:\descriptionparameter\c!location}{\descriptionparameter\c!command}{\dodocurrentlabelnumber[#1]}%
- \endgroup
- \descriptionparameter\c!after}
-
-\setuplabels
- [\s!parent=\??dn]
-
-%D \macros
-%D {defineindentedtext,
-%D setupindentedtext}
-%D
-%D Ok, we keep it but with a different command as it all looks too
-%D much like indentation and indenting. We also assume start/stop
-%D usage or some explicit par.
-
-\installcorenamespace{indentedtext}
-
-\installcommandhandler \??indentedtext {indentedtext} \??indentedtext
-
-%D \startbuffer
-%D \defineindentedtext[one][text=one]
-%D \defineindentedtext[two][text=two]
-%D
-%D \one test test \par
-%D \subone test test \par
-%D \subtwo test test \par
-%D \subsubone test test \par
-%D
-%D \startone
-%D test test
-%D \startone
-%D test test
-%D \startone
-%D test test
-%D \stopone
-%D \starttwo
-%D test test
-%D \startone
-%D test test
-%D \stopone
-%D \stoptwo
-%D \stopone
-%D \stopone
-%D \stopbuffer
-%D
-%D \typebuffer \getbuffer
-
-\newcount\c_strc_indentedtexts_nesting
-\newdimen\d_strc_indentedtexts_width
-
-\appendtoks
- \setuevalue {\e!start\currentindentedtext}{\strc_indentedtexts_start{\currentindentedtext}\c_strc_indentedtexts_nesting}%
- \setuevalue {\e!stop \currentindentedtext}{\strc_indentedtexts_stop}%
- % to be avoided ... might go away
- \setuevalue {\currentindentedtext}{\strc_indentedtexts_direct{\currentindentedtext}{0}}%
- \setuevalue {\v!sub\currentindentedtext}{\strc_indentedtexts_direct{\currentindentedtext}{1}}%
- \setuevalue{\v!sub\v!sub\currentindentedtext}{\strc_indentedtexts_direct{\currentindentedtext}{2}}%
-\to \everydefineindentedtext
-
-\unexpanded\def\strc_indentedtexts_start#1#2%
- {\par
- \begingroup
- \c_strc_indentedtexts_nesting#2\relax
- \edef\currentindentedtext{#1}%
- \indentedtextparameter\c!before
- \doifnothing{\indentedtextparameter\c!sample}
- {\setindentedtextparameter\c!sample{\indentedtextparameter\c!text}}%
- \assignwidth
- {\indentedtextparameter\c!width}
- {\d_strc_indentedtexts_width}
- {\useindentedtextstyleandcolor\c!headstyle\c!headcolor
- \indentedtextparameter\c!sample
- \spr{\indentedtextparameter\c!separator}}
- {\indentedtextparameter\c!distance}%
- \advance\d_strc_indentedtexts_width \indentedtextparameter\c!distance
- \setbox\scratchbox\hbox to \d_strc_indentedtexts_width
- {\useindentedtextstyleandcolor\c!headstyle\c!headcolor
- \strut
- \indentedtextparameter\c!text
- \hss
- \spr{\indentedtextparameter\c!separator}%
- \hskip\indentedtextparameter\c!distance}%
- \parindent\zeropoint
- \hskip\c_strc_indentedtexts_nesting\d_strc_indentedtexts_width
- \advance\c_strc_indentedtexts_nesting\plusone
- \dontleavehmode\box\scratchbox
- \hangindent\c_strc_indentedtexts_nesting\d_strc_indentedtexts_width
- \useindentedtextstyleandcolor\c!style\c!color}
-
-\unexpanded\def\strc_indentedtexts_stop
- {\indentedtextparameter\c!after
- \par
- \endgroup}
-
-\let\stopindentedtext\strc_indentedtexts_stop
-
-\unexpanded\def\strc_indentedtexts_direct#1#2#3\par % no longer clever grabpar trickery
- {\strc_indentedtexts_start{#1}{#2}#3\strc_indentedtexts_stop}
-
-\setupindentedtext
- [\c!style=\v!normal,
- \c!headstyle=\v!normal,
- %\c!color=,
- %\c!headcolor=,
- \c!width=\v!fit,
- \c!text=\unknown,
- %\c!sample=,
- \c!before=\blank,
- \c!after=\blank,
- \c!distance=1em,
- \c!separator={ :}]
-
-\protect \endinput