diff options
author | Marius <mariausol@gmail.com> | 2012-02-08 23:00:23 +0200 |
---|---|---|
committer | Marius <mariausol@gmail.com> | 2012-02-08 23:00:23 +0200 |
commit | 7b47df8cbaae8690f14d306c633b2b2db053f66a (patch) | |
tree | a4cb6a0ebb8ac21a14558c258949d3c7da33dd25 /tex/context/base/strc-des.mkiv | |
parent | 5fce2a5267a603c8caf76880cdfb839d77ec64f0 (diff) | |
download | context-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.mkiv | 1175 |
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 |