diff options
author | Karl Berry <karl@freefriends.org> | 2016-04-22 22:14:39 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-04-22 22:14:39 +0000 |
commit | fc4466b32ed330a956ac603b00fd145524cff49a (patch) | |
tree | 2c50e2b8de13aa9233b2c76dffe201558f169e86 /Master/texmf-dist/tex/context/base/strc-con.mkvi | |
parent | 50e2368597d5f6fe2057195d0ae6a9f2044923e4 (diff) |
context (22apr16)
git-svn-id: svn://tug.org/texlive/trunk@40691 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/context/base/strc-con.mkvi')
-rw-r--r-- | Master/texmf-dist/tex/context/base/strc-con.mkvi | 1029 |
1 files changed, 0 insertions, 1029 deletions
diff --git a/Master/texmf-dist/tex/context/base/strc-con.mkvi b/Master/texmf-dist/tex/context/base/strc-con.mkvi deleted file mode 100644 index 11f6f758e0e..00000000000 --- a/Master/texmf-dist/tex/context/base/strc-con.mkvi +++ /dev/null @@ -1,1029 +0,0 @@ -%D \module -%D [ file=strc-con, -%D version=2008.10.20, -%D title=\CONTEXT\ Structure Macros, -%D subtitle=Constructions, -%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 / Constructions} - -\registerctxluafile{strc-con}{1.001} - -% todo: check why \copy .. probably mkii leftover -% -% todo: check if commands similar to lists -% todo: \strc_constructions_setup_counter\strc_constructions_setup_counter{#1} in setup ... synchronization -% -% ? : \def\showdnlisttext{\constructionparameter\c!listtext} % space in default -% -% maybe: pickup text and store in buffer ... -% -% \@@notemakeconstruction[##1]{}{##2}% -% \expandafter\endgroup\noteparameter\c!next}} -% -% todo: \currentconstructionattribute : can be a counter instead - -%D Constructions are just descriptions but a bit more abstract so that we can -%D conveniently build upon them. They are not really meant for users but module -%D writers might find them useful. We mention a couple of parameters but these are -%D only mentioned because in the shared code we map all resolvers to constructions. -%D -%D On top of constructions we build descriptions, enumerations, notes, labels and -%D maybe some day more. - -\unprotect - -%D Todo: - -\installcorenamespace{construction} - -\installcommandhandler \??construction {construction} \??construction - -\let\setupconstructions\setupconstruction - -\setupconstructions[% - %c!title=, - %c!text=, - % - %c!style=, - %c!color=, - %c!command=, - %c!align=, - % - %c!headstyle=, - %c!headcolor=, - %c!headalign=, - % - %c!titlestyle=, - %c!titlecolor=, - %c!titlecommand=, - %c!titleleft=, - %c!titleright=, - % - %c!closesymbol=, - %c!closecommand=, - % - \c!alternative=\v!left, - \c!display=\v!yes, - \c!width=7\emwidth, - \c!distance=\emwidth, - \c!titledistance=.5\emwidth, - %c!hang=, - %c!sample=, - \c!margin=\v!no, - \c!before=\blank, - \c!inbetween=\blank, - \c!after=\blank, - %c!indentnext=, - %c!indenting=, - % - \c!expansion=\v!no, - %c!xmlsetup=, - %s!catcodes=, -] - -%D Constructions and alike uses similar structures. In order to prevent issues -%D we freeze some states. There is some overhead in the intermediate define -%D step (as we could set them directly) but this is more flexible (and looks -%D nicer). Keep in mind that descriptions, enumeration and notations are all -%D independent and that we just remap the resolvers. - -% \defineconstruction[test][handler=description,level=1] -% \defineconstruction[test][parent][handler=description,level=3] - -\installcorenamespace{constructionmain} % frozen after definition -\installcorenamespace{constructionlevel} % frozen after definition -\installcorenamespace{constructionclass} % frozen after definition - -\let\currentconstructionmain \empty -\let\currentconstructionlevel \empty -\let\currentconstructionhandler\empty - -\settrue\c_strc_constructions_define_commands % use with care, might become a proper key - -\appendtoks - \ifx\currentconstructionparent\empty - \letvalue{\??constructionmain\currentconstruction}\currentconstruction - \definelist[\currentconstruction]% goodie - \else - \letvalue{\??constructionmain\currentconstruction}\currentconstructionparent - \definelist[\currentconstruction][\currentconstructionparent]% goodie - \fi - \setevalue{\??constructionlevel\currentconstruction}{\number\constructionparameter\c!level}% - \setevalue{\??constructionclass\currentconstruction}{\constructionparameter\s!handler}% -\to \everydefineconstruction - -\appendtoks - \ifconditional\c_strc_constructions_define_commands - \setuevalue{\e!start\currentconstruction}{\strc_constructions_start{\currentconstruction}}% - \setuevalue{\e!stop \currentconstruction}{\strc_constructions_stop}% - \fi -\to \everydefineconstruction - -%D Just a basic environment (mostly for testing). We will provide a 'setup' based -%D plugin once the rest is sorted out. - -\unexpanded\def\strc_constructions_start#1% - {\begingroup - \strc_constructions_initialize{#1}% - \dodoubleempty\strc_constructions_start_regular} - -\unexpanded\def\strc_constructions_start_regular[#1][#2]% - {\strc_constructions_register[\c!label={\constructionparameter\c!text},\c!reference=,\c!title=,\c!bookmark=,\c!list=,#1][#2]% - \csname\??constructionstarthandler\currentconstructionhandler\endcsname} - -\unexpanded\def\strc_constructions_stop - {\csname\??constructionstophandler\currentconstructionhandler\endcsname - \endgroup} - -%D As we will build on top of the generic construction mechanism we have handlers -%D as a sort of plug in mechanism. In order to have some consistency we share -%D some namespaces. - -\installcorenamespace{constructioninitializer} -\installcorenamespace{constructionfinalizer} - -\installcorenamespace{constructionmainhandler} -\installcorenamespace{constructioncommandhandler} -\installcorenamespace{constructionstarthandler} -\installcorenamespace{constructionstophandler} - -\installcorenamespace{constructiontexthandler} -\installcorenamespace{constructionnotehandler} - -\unexpanded\def\strc_constructions_initialize#1% class instance - {\edef\currentconstruction{#1}% - \let\currentconstructionhash\??construction - \let\currentconstructionlistentry\!!zerocount - \expandafter\let\expandafter\currentconstructionmain \csname\??constructionmain \currentconstruction\endcsname - \expandafter\let\expandafter\currentconstructionlevel \csname\??constructionlevel\currentconstruction\endcsname - \expandafter\let\expandafter\currentconstructionhandler\csname\??constructionclass\currentconstruction\endcsname - \csname\??constructioninitializer\currentconstructionhandler\endcsname} - -\unexpanded\def\strc_constructions_finalize - {\csname\??constructionfinalizer\currentconstructionhandler\endcsname - \strc_constructions_discard} - -\newconditional\c_strc_constructions_number_state -\newconditional\c_strc_constructions_title_state - -\unexpanded\setvalue{\??constructioninitializer\v!construction}% - {\setfalse\c_strc_constructions_number_state - \setfalse\c_strc_constructions_title_state} - -\unexpanded\setvalue{\??constructionfinalizer\v!construction}% - {} - -%D We keep the command variant around but rather would move to the start-stop one. -%D Also, passing the title as argument has some history so we need to keep that as -%D well. - -\ifdefined\dotagsetconstruction \else \let\dotagsetconstruction\relax \fi - -\newtoks\everyconstruction - -\unexpanded\def\currentconstructiontext - {\begstrut - \csname\??constructiontexthandler\currentconstructionhandler\endcsname - \endstrut} - -\unexpanded\def\currentconstructionsample - {\begstrut - \constructionparameter\c!text - \p_strc_constructions_sample - \endstrut} - -\unexpanded\setvalue{\??constructionmainhandler\v!construction}#1% - {\iftrialtypesetting \else - \begingroup - \currentconstructionsynchronize % reinstated - \attribute\destinationattribute\currentconstructionattribute\relax % todo, whole text - \signalcharacter - \endgroup - \fi#1} - -\unexpanded\setvalue{\??constructiontexthandler\v!construction}% - {\begingroup - \useconstructionstyleandcolor\c!headstyle\c!headcolor % move to \currentconstructiontext - \the\everyconstruction - \constructionparameter\c!headcommand - {\strut - \constructionparameter\c!text - \clf_savedlisttitle{\currentconstructionmain}\currentconstructionlistentry\relax}% - \endgroup} - -\unexpanded\def\strc_constructions_stored_start - {\begingroup % brrr \endgroup elsewhere ... will be sorted out - \csname\??constructionstarthandler\currentconstructionhandler\endcsname} - -\unexpanded\def\strc_constructions_stored_stop - {\csname\??constructionstophandler\currentconstructionhandler\endcsname} - -\newconstant\c_strc_constructions_nested_state % to be redone - -\def\resetconstructions % to be used in e.g. footnotes - {\c_strc_constructions_nested_state\zerocount} - -\unexpanded\setvalue{\??constructioncommandhandler\v!construction}% - {\endgroup} - -\let\p_strc_constructions_sample \empty -\let\p_strc_constructions_align \empty -\let\p_strc_constructions_indenting \empty -\let\p_strc_constructions_width \empty -\let\p_strc_constructions_aligntitle \empty -\let\p_strc_constructions_renderingsetup\empty -\let\p_strc_constructions_headalign \empty -\let\p_strc_constructions_hang \empty -\let\p_strc_constructions_inbetween \empty -\let\p_strc_constructions_closesymbol \empty -\let\p_strc_constructions_distance \empty - -\newconditional\c_strc_constructions_distance_none - -\def\strc_constructions_set_width_and_distance - {\assignwidth - \p_strc_constructions_width - \constructionsheadwidth - {\unhcopy\constructionheadbox} - \constructionsheaddistance} - -\def\strc_constructions_preroll_head#content% - {\setbox\constructionheadbox\hbox - {\forgetall - \dontcomplain - \settrialtypesetting - \csname\??constructionmainhandler\currentconstructionhandler\endcsname#content}} - -\def\strc_constructions_ignore_head - {\constructionsheaddistance\zeropoint - \constructionsheadwidth \zeropoint - % we also need to make sure that no stretch creeps in (new per 2015-02-02, for Alan) - \settrue\c_strc_constructions_distance_none} - -\let\currentconstructionhash\??construction - -\unexpanded\setvalue{\??constructionstarthandler\v!construction}% this will be redone (reorganized) .. too much boxing - {\dostarttaggedchained\t!construction\currentconstruction\currentconstructionhash - \dotagsetconstruction - \constructionparameter\c!before - \begingroup - \edef\currentconstructionalternative{\constructionparameter\c!alternative}% - \edef\p_strc_constructions_renderingsetup{\constructionalternativeparameter\c!renderingsetup}% - % catch fuzzyness - \ifx\p_strc_constructions_renderingsetup\empty - \letconstructionparameter\c!alternative\v!left - \let\currentconstructionalternative\v!left - \edef\p_strc_constructions_renderingsetup{\constructionalternativeparameter\c!renderingsetup}% - \else - \doifnotsetups\p_strc_constructions_renderingsetup - {\letconstructionparameter\c!alternative\v!left - \let\currentconstructionalternative\v!left - \edef\p_strc_constructions_renderingsetup{\constructionalternativeparameter\c!renderingsetup}}% - \fi - % - \doadaptleftskip{\constructionparameter\c!margin}% - \setlocalhsize % so we can use \localhsize in width assignments - \edef\p_strc_constructions_distance{\constructionalternativeparameter\c!distance}% - \edef\p_strc_constructions_width{\constructionalternativeparameter\c!width}% - \ifx\p_strc_constructions_distance\v!none - \settrue\c_strc_constructions_distance_none - \constructionsheaddistance\zeropoint - \else - \setfalse\c_strc_constructions_distance_none - \constructionsheaddistance\p_strc_constructions_distance\relax - \ifdim\constructionsheaddistance=\zeropoint - \ifx\p_strc_constructions_width\v!broad - \constructionsheaddistance\emwidth - \fi - \fi - \fi - % inefficient and not always needed, for instance not with margins so we will make checkers - % per alternative some day (especially in labels this is unwanted overhead) - % - % maybe we should have an option as i cannot oversee the consequences now - % - % \edef\p_strc_constructions_sample{\constructionparameter\c!sample}% - % \ifx\p_strc_constructions_sample\empty - % \strc_constructions_preroll_head\currentconstructiontext - % \else - % \strc_constructions_preroll_head\currentconstructiontextsample - % \fi - % \strc_constructions_set_width_and_distance - % - \strc_constructions_preroll_head\currentconstructiontext - \ifzeropt\wd\constructionheadbox - \strc_constructions_ignore_head - \else - \edef\p_strc_constructions_sample{\constructionparameter\c!sample}% - \ifx\p_strc_constructions_sample\empty - \strc_constructions_set_width_and_distance - \else - \strc_constructions_preroll_head\currentconstructionsample - \ifzeropt\wd\constructionheadbox - \strc_constructions_ignore_head - \else - \strc_constructions_set_width_and_distance - \fi - \fi - \fi - % - \dostarttagged\t!constructiontag\empty % todo - \setbox\constructionheadbox\hbox - {\forgetall - \dontcomplain - \ifx\currentconstructionalternative\v!serried % brrr, hack, will change - \csname\??constructionmainhandler\currentconstructionhandler\endcsname\currentconstructiontext - \else - \csname\??constructionmainhandler\currentconstructionhandler\endcsname{\boxedconstructionhead\currentconstructiontext}% - \fi}% - \edef\p_strc_constructions_aligntitle{\constructionparameter\c!aligntitle}% - \ifx\p_strc_constructions_aligntitle\v!no - \leftconstructionskip \leftskip - \rightconstructionskip\rightskip - \else - \ifcase\c_strc_constructions_nested_state - \leftconstructionskip \leftskip - \rightconstructionskip\rightskip - \fi - \fi - \edef\p_strc_constructions_align{\constructionparameter\c!align}% - \ifx\p_strc_constructions_align\empty \else - \setupalign[\p_strc_constructions_align]% \use... - \fi - \ifcase\c_strc_constructions_nested_state - \c_strc_constructions_nested_state\plusone - \or - \c_strc_constructions_nested_state\plustwo - \fi - \strc_constructions_close_symbol_reset - % - \edef\p_strc_constructions_headalign{\constructionparameter\c!headalign}% - % - \directsetup\p_strc_constructions_renderingsetup\relax - % moved to here 2014-07-03 - \edef\p_strc_constructions_indenting{\constructionparameter\c!indenting}% - \ifx\p_strc_constructions_indenting\empty \else - \indenting[\p_strc_constructions_indenting]% \use... - \fi - % - \dostoptagged % tag - \dostarttagged\t!constructioncontent\empty - \ignorespaces} % args not needed - -\unexpanded\setvalue{\??constructionstophandler\v!construction}% - {\strc_constructions_close_symbol_place - \doifnot{\constructionparameter\c!display}\v!no\par - \dostoptagged % content - \dostoptagged % construction - \endgroup - \constructionparameter\c!after - \useindentnextparameter\constructionparameter - \strc_constructions_finalize -% \endgroup - \dorechecknextindentation} - -\unexpanded\def\boxedconstructionhead#1% - {\vtop - {\hsize\constructionsheadwidth - \edef\p_strc_constructions_headalign{\constructionparameter\c!headalign}% - \ifx\p_strc_constructions_headalign\empty \else - \setupalign[\p_strc_constructions_headalign]% \use... - \fi - #1}} - -\installcorenamespace{constructionalternative} -\installcorenamespace{constructionrenderings} - -% see lists: alternativemethods ... todo -% -% there will be a proper interface to variables - -\installcommandhandler \??constructionalternative {constructionalternative} \??constructionalternative - -\setupconstructionalternative - [\c!width=\constructionparameter\c!width, - \c!distance=\constructionparameter\c!distance] - -\defineconstructionalternative - [\v!left] - [%\c!width=7em, - %\c!distance=1em, - \c!renderingsetup=\??constructionrenderings:\v!left] - -\defineconstructionalternative - [\v!right] - [%\c!width=7em, - %\c!distance=1em, - \c!renderingsetup=\??constructionrenderings:\v!right] - -\defineconstructionalternative - [\v!inmargin] - [\c!renderingsetup=\??constructionrenderings:\v!inmargin] - -\defineconstructionalternative - [\v!inleft] - [\c!renderingsetup=\??constructionrenderings:\v!inleft] - -\defineconstructionalternative - [\v!inright] - [\c!renderingsetup=\??constructionrenderings:\v!inright] - -\defineconstructionalternative - [\v!margin] - [\c!renderingsetup=\??constructionrenderings:\v!margin] - -\defineconstructionalternative - [\v!leftmargin] - [\c!renderingsetup=\??constructionrenderings:\v!leftmargin] - -\defineconstructionalternative - [\v!rightmargin] - [\c!renderingsetup=\??constructionrenderings:\v!rightmargin] - -\defineconstructionalternative - [\v!innermargin] - [\c!renderingsetup=\??constructionrenderings:\v!innermargin] - -\defineconstructionalternative - [\v!outermargin] - [\c!renderingsetup=\??constructionrenderings:\v!outermargin] - -\defineconstructionalternative - [\v!serried] - [\c!renderingsetup=\??constructionrenderings:\v!serried] - -\defineconstructionalternative - [\v!hanging] - [%\c!width=\v!fit, - \c!renderingsetup=\??constructionrenderings:\v!hanging] - -\defineconstructionalternative - [\v!top] - [\c!renderingsetup=\??constructionrenderings:\v!top, - \c!width=\localhsize] - -\defineconstructionalternative - [\v!command] - [\c!renderingsetup=\??constructionrenderings:\v!command] - -\newbox \constructionheadbox -\newskip \leftconstructionskip -\newskip \rightconstructionskip -\newdimen \constructionsheadwidth % replaces \!!widtha % TODO: proper namespace dimens -\newdimen \constructionsheaddistance % replaces \!!widthb % TODO: proper namespace dimens - -\def\strc_constructions_set_hang_box#1% messy left/rightskip - {\setbox\constructionheadbox\vtop % \vbox gaat fout in hang - {\forgetall - \dontcomplain - \hsize\constructionsheadwidth\relax - \ifx\p_strc_constructions_headalign\empty - \setupalign[#1]% use fast one - \else - \setupalign[\p_strc_constructions_headalign]% use fast one - \fi - \ifconditional\c_strc_constructions_distance_none \else - \advance\ifx#1\v!flushleft\rightskip\else\leftskip\fi\constructionsheaddistance % only difference and wrong anyway - \fi - \ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \setbox\constructionheadbox\hbox{\box\constructionheadbox}% needed in case of e.g. a real big head font, see descriptions-006.tex - \ht\constructionheadbox\strutht - \dp\constructionheadbox\strutdp} - -\def\strc_constructions_set_pure_box#1% default ... better set up differently - {\setbox\constructionheadbox\vtop - {\forgetall - \dontcomplain - \hsize\constructionsheadwidth\relax - \ifx\p_strc_constructions_headalign\empty - \setupalign[#1]% use fast one - \else - \setupalign[\p_strc_constructions_headalign]% use fast one - \fi - \ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \setbox\constructionheadbox\hbox{\box\constructionheadbox}% needed in case of e.g. a real big head font, see descriptions-006.tex - \ht\constructionheadbox\strutht - \dp\constructionheadbox\strutdp} - -\def\strc_constructions_set_hang#1% - {\ifx\p_strc_constructions_hang\empty - % nothing - \else\ifx\p_strc_constructions_hang\v!fit - \scratchdimen\htdp\constructionheadbox - \getnoflines\scratchdimen - \hangafter-\noflines - \else\ifx\p_strc_constructions_hang\v!broad - \scratchdimen\dimexpr\htdp\constructionheadbox+.5\strutht\relax - \getnoflines\scratchdimen - \hangafter-\noflines - \else - \hangafter-\p_strc_constructions_hang - \fi\fi\fi - \relax - \hangindent\ifx#1\v!right-\fi\constructionsheadwidth} - -% The setups. These only deal with placement of the descriptor and initializing the -% environment. The wrapping happens elsewhere. - -% todo: optimize the setups with -% -% \ifconditional\c_strc_constructions_distance_none : no need for skip -% \ifzeropt\wd\constructionheadbox : no need for box and skips - -\startsetups[\??constructionrenderings:\v!left] - \edef\p_strc_constructions_hang{\constructionparameter\c!hang}% - \doifelsesetups{\??constructionrenderings:\v!left:\p_strc_constructions_hang} { - \directsetup{\??constructionrenderings:\v!left:\p_strc_constructions_hang} - } { - \directsetup{\??constructionrenderings:\v!left:\v!hanging} - } -\stopsetups - -\startsetups[\??constructionrenderings:\v!right] - \edef\p_strc_constructions_hang{\constructionparameter\c!hang} - \doifelsesetups{\??constructionrenderings:\v!right:\p_strc_constructions_hang} { - \directsetup{\??constructionrenderings:\v!right:\p_strc_constructions_hang} - } { - \directsetup{\??constructionrenderings:\v!right:\v!hanging} - } -\stopsetups - -\startsetups[\??constructionrenderings:\v!left:\v!none] - \let\\=\crlf - \noindent - \strc_constructions_set_pure_box\v!flushleft - \leftskip\dimexpr\leftconstructionskip+\constructionsheadwidth+\constructionsheaddistance\relax - \rightskip\rightconstructionskip\relax - \llap { - \hbox to \leftskip { - \hskip\leftconstructionskip - \copy\constructionheadbox\hss - } - } - \nobreak - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!left:0] - \directsetup{\??constructionrenderings:\v!left:\v!none} -\stopsetups - -\startsetups[\??constructionrenderings:\v!left:] - \directsetup{\??constructionrenderings:\v!left:\v!none} -\stopsetups - -\startsetups[\??constructionrenderings:\v!right:\v!none] - \let\\=\crlf - \noindent - \leftskip\leftconstructionskip - \rightskip\dimexpr\rightconstructionskip+\constructionsheadwidth\relax - %\strc_constructions_pure_hang_box\raggedleft - \strc_constructions_set_pure_box\v!flushright - \rlap { - \hskip\dimexpr\hsize-\leftskip-\rightskip\relax - \copy\constructionheadbox - \hskip\rightconstructionskip - } - \nobreak - \advance\rightskip \constructionsheaddistance - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!right:0] - \directsetup{\??constructionrenderings:\v!right:\v!none} -\stopsetups - -\startsetups[\??constructionrenderings:\v!right:] - \directsetup{\??constructionrenderings:\v!right:\v!none} -\stopsetups - -\startsetups[\??constructionrenderings:\v!left:\v!margin]% - \let\\=\crlf - \noindent - \strc_constructions_set_pure_box\v!flushleft - \llap { - \hbox to \constructionsheadwidth { - \copy\constructionheadbox - \hss - } - \hskip\constructionsheaddistance - } - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!right:\v!margin]% - \let\\=\crlf - \noindent - \strc_constructions_set_pure_box\v!flushright - \rlap { - \hskip\constructionsheaddistance - \hbox to \constructionsheadwidth { - \copy\constructionheadbox\hss - } - } - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!left:\v!hanging]% - \let\\=\crlf - \dontcomplain - \advance\constructionsheadwidth \constructionsheaddistance - \strc_constructions_set_hang_box\v!flushleft - \strc_constructions_set_hang\v!left - \noindent - \llap { - \vtop to \zeropoint { - \box\constructionheadbox - } - } - \nobreak - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!right:\v!hanging]% - \let\\=\crlf - \dontcomplain - \advance\constructionsheadwidth \constructionsheaddistance - \strc_constructions_set_hang_box\v!flushright - \strc_constructions_set_hang\v!right - \noindent - \rlap { - \hbox to \dimexpr\hsize-\leftskip-\rightskip\relax { - \hss - \vtop to \zeropoint { - \box\constructionheadbox - } - } - } - \nobreak - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!top] - \strc_sectioning_prevent_page_break\plusone - \let\\=\space - \noindent - \copy\constructionheadbox % why copy ? - \par - \nobreak - \edef\p_strc_constructions_inbetween{\constructionparameter\c!inbetween}% - \ifx\p_strc_constructions_inbetween\empty \else - \p_strc_constructions_inbetween - \par - \nobreak - \fi - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -% why copy? historic reason? - -\startsetups[\??constructionrenderings:\v!margin] - \let\\=\crlf - \noindent - \inmargin[\c!scope=\v!local]{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!leftmargin] - \let\\=\crlf - \noindent - \inleft[\c!scope=\v!local]{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!rightmargin] - \let\\=\crlf - \noindent - \inright[\c!scope=\v!local]{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!innermargin] - \let\\=\crlf - \noindent - \ininner[\c!scope=\v!local]{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!outermargin] - \let\\=\crlf - \noindent - \inouter[\c!scope=\v!local]{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox}% - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!inmargin] - \directsetup{\??constructionrenderings:\v!margin} -\stopsetups - -\startsetups[\??constructionrenderings:\v!inleft] - \directsetup{\??constructionrenderings:\v!leftmargin} -\stopsetups - -\startsetups[\??constructionrenderings:\v!inright] - \directsetup{\??constructionrenderings:\v!rightmargin} -\stopsetups - -\startsetups[\??constructionrenderings:\v!serried] - \edef\p_strc_constructions_width{\constructionparameter\c!width}% CHECK ! ! ! wrong parameter namespace - \doifelsesetups{\??constructionrenderings:\v!serried:\p_strc_constructions_width} { - \directsetup{\??constructionrenderings:\v!serried:\p_strc_constructions_width} - } { - \directsetup{\??constructionrenderings:\v!serried:\v!wide} - } -\stopsetups - -\startsetups[\??constructionrenderings:\v!serried:\v!fit] - \let\\=\crlf - \noindent - \ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox % why copy? leftover? - \nobreak - \hskip\constructionsheaddistance\relax - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!serried:\v!broad] - \let\\=\crlf - \noindent - \ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox % why copy? leftover? - \ifconditional\c_strc_constructions_distance_none \else - \nobreak - \hskip\constructionsheaddistance \!!plus .5\constructionsheaddistance \!!minus .25\constructionsheaddistance\relax - \fi - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!serried:] - \directsetup{\??constructionrenderings:\v!serried:\v!broad} -\stopsetups - -\startsetups[\??constructionrenderings:\v!serried:\v!wide] - \let\\=\crlf - \noindent - \hbox to \constructionsheadwidth { - \ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox - \hss - } - \nobreak - \hskip\constructionsheaddistance\relax - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -\startsetups[\??constructionrenderings:\v!hanging] - % tricky: leftskipadaption is somewhat unpredictable - \let\\=\crlf - \noindent - \advance\leftskip-\leftskipadaption\relax - \ifdim\leftskipadaption=\zeropoint - \leftskipadaption1.5\emwidth\relax % just some default - \ifnum\c_strc_constructions_nested_state=\plusone - \ifdim\leftskip>\zeropoint \relax - \leftskipadaption\leftskip - \fi - \fi - \fi - \ifnum\c_strc_constructions_nested_state>\zerocount % was \ifnum\c_strc_constructions_nested_state=\plusone - \advance\leftskip\leftskipadaption % but we're already further on - \fi - \hskip-\leftskipadaption\relax - \ifhbox\constructionheadbox \unhbox\else\box\fi\constructionheadbox - \ifconditional\c_strc_constructions_distance_none \else - % we used to have just a kern, but long lines look bad then - \scratchdistance\ifdim\constructionsheaddistance=\zeropoint .75\emwidth\else\constructionsheaddistance\fi - \hskip \scratchdistance - \s!plus .25\scratchdistance - \s!minus.25\scratchdistance - \fi - \allowbreak % new - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -%D \starttyping -%D \setupfootnotation[location=command,headcommand=\llap] -%D \stoptyping - -\startsetups[\??constructionrenderings:\v!command] - \noindent - \constructionparameter\c!headcommand{\ifhbox\constructionheadbox\unhcopy\else\copy\fi\constructionheadbox} - \useconstructionstyleandcolor\c!style\c!color - \ignorespaces -\stopsetups - -% you can use \placeclosesymbol or \qed to place a symbol at the end of a -% construction - -\installcorenamespace{constructionclosesymbol} - -\let\placeclosesymbol\donothing -\let\qed \donothing - -\def\strc_constructions_close_symbol_reset % no need for global - {\global\expandafter\settrue\csname\??constructionclosesymbol\currentconstruction\endcsname - \let\placeclosesymbol\strc_constructions_close_symbol_place - \let\qed \strc_constructions_close_symbol_place} - -\unexpanded\def\strc_constructions_close_symbol_place - {\ifconditional\csname\??constructionclosesymbol\currentconstruction\endcsname - \global\expandafter\setfalse\csname\??constructionclosesymbol\currentconstruction\endcsname - \edef\p_strc_constructions_closesymbol{\constructionparameter\c!closesymbol}% - \ifx\p_strc_constructions_closesymbol\empty \else - \constructionparameter\c!closecommand{\p_strc_constructions_closesymbol}% hm why {} maybe because box expected - \fi - \fi} - -\newif\ifnoconstructioncaption - -%D The storage macros: - -\let\currentconstructionlistentry\!!zerocount - -\def\strc_constructions_register - {\clf_doifelselisthasentry\numexpr\currentconstructionlistentry\relax - \strc_constructions_register_nop - \strc_constructions_register_yes} - -% \def\strc_constructions_register{\strc_constructions_register_yes} - -\def\strc_constructions_register_nop[#1][#2]% #1=interfaced-settings, #2=optional user data - %{\writestatus{constructions}{reusing \currentconstruction: \number\currentconstructionlistentry}} - {} - -\def\strc_constructions_discard - {\iftrialtypesetting - % \writestatus{constructions}{discarding \currentconstruction: \number\currentconstructionlistentry}% - \clf_discardfromlist\currentconstructionlistentry\relax - \fi} - -\let\currentconstructionlistnumber \!!zerocount -\let\currentconstructionsynchronize\relax -\let\currentconstructionattribute \attributeunsetvalue - -\def\strc_constructions_register_yes[#1][#2]% #1=interfaced-settings, #2=optional user data - {\begingroup % similar to structure so we might generalize this - \setupcurrentconstruction[#1]% % xdef's will become edef's - \xdef\currentconstructionexpansion {\constructionparameter\c!expansion}% - \xdef\currentconstructionxmlsetup {\constructionparameter\c!xmlsetup}% - \xdef\currentconstructioncatcodes {\constructionparameter\s!catcodes}% - \xdef\currentconstructionlabel {\constructionparameter\c!label}% - \xdef\currentconstructionreference {\constructionparameter\c!reference}% - \xdef\currentconstructionreferenceprefix{\constructionparameter\c!referenceprefix}% - %xdef\currentconstructionshownumber {\constructionparameter\c!number}% - \xdef\currentconstructionincrementnumber{\constructionparameter\c!incrementnumber}% - % - \ifx\currentconstructionexpansion\empty - \global\let\currentconstructionexpansion\v!no - \fi - % - \ifx\currentconstructionexpansion\s!xml - \xmlstartraw - \xdef\currentconstructiontitle {\constructionparameter\c!title}% - \xdef\currentconstructionbookmark{\constructionparameter\c!bookmark}% - \xdef\currentconstructionmarking {\constructionparameter\c!marking}% - \xdef\currentconstructionlist {\constructionparameter\c!list}% - \xmlstopraw - \ifx\currentconstructionlist\empty - \global\let\currentconstructionlist\currentconstructiontitle - \fi - \global\let\currentconstructioncoding\s!xml - \else - \ifx\currentconstructionexpansion\v!yes - \xdef\currentconstructiontitle {\constructionparameter\c!title}% - \xdef\currentconstructionbookmark{\constructionparameter\c!bookmark}% - \xdef\currentconstructionmarking {\constructionparameter\c!marking}% - \xdef\currentconstructionlist {\constructionparameter\c!list}% - \else - \xdef\currentconstructiontitle {\detokenizedconstructionparameter\c!title}% - \xdef\currentconstructionbookmark{\detokenizedconstructionparameter\c!bookmark}% - \xdef\currentconstructionmarking {\detokenizedconstructionparameter\c!marking}% - \xdef\currentconstructionlist {\detokenizedconstructionparameter\c!list}% - \iflocation \ifx\currentconstructionbookmark\empty - \begingroup - \simplifycommands - \xdef\currentconstructionbookmark{\detokenize\expandafter{\normalexpanded{\constructionparameter\c!title}}}% - \endgroup - \fi \fi - \fi - \ifx\currentconstructionlist\empty - \globallet\currentconstructionlist\currentconstructiontitle - \fi - \globallet\currentconstructioncoding\s!tex - \fi - % - \ifx\currentconstructiontitle\v!none % will become obsolete - \global\noconstructioncaptiontrue\global\noconstructionnumbertrue - \fi - % - \ifnoconstructioncaption % then why analyze anyway? - \endgroup - \let\currentconstructionlistnumber \relax - \let\currentconstructionsynchronize\relax - \let\currentconstructionattribute \relax - \else - \setnextinternalreferences{construction}\currentconstructionmain % plural - \relax - \scratchcounter\clf_addtolist - metadata { - kind {construction} - name {\currentconstructionmain} - % level structures.sections.currentlevel() - catcodes \catcodetable - % \currentdirectionparameters - } - references { - internal \nextinternalreference - order \nextinternalorderreference - reference {\currentconstructionreference} - prefix {\referenceprefix} - % block {\currentsectionblock} - % section structures.sections.currentid(), - } - titledata { - label {\detokenize\expandafter{\currentconstructionlabel}} - title {\detokenize\expandafter{\currentconstructiontitle}} - \ifx\currentconstructionbookmark\currentconstructiontitle \else - bookmark {\detokenize\expandafter{\currentconstructionbookmark}} - \fi - \ifx\currentconstructionlist\currentconstructiontitle \else - list {\detokenize\expandafter{\currentconstructionlist}} - \fi - } - \ifconditional\c_strc_constructions_number_state - prefixdata { - prefix {\constructionparameter\c!prefix} - separatorset {\constructionparameter\c!prefixseparatorset} - conversion {\constructionparameter\c!prefixconversion} - conversionset {\constructionparameter\c!prefixconversionset} - set {\constructionparameter\c!prefixset} - segments {\constructionparameter\c!prefixsegments} - connector {\constructionparameter\c!prefixconnector} - } - numberdata { - numbers {\currentconstructionnumber} - separatorset {\constructionparameter\c!numberseparatorset} - conversion {\constructionparameter\c!numberconversion} - conversionset {\constructionparameter\c!numberconversionset} - starter {\constructionparameter\c!numberstarter} - stopper {\constructionparameter\c!numberstopper} - segments {\constructionparameter\c!numbersegments} - } - \or - % symbol - \fi - userdata {\detokenize{#2}} - \relax - % \writestatus{constructions}{registering \currentconstruction: \number\scratchcounter}% - \clf_setinternalreference - prefix {\referenceprefix}% - reference {\currentconstructionreference}% - internal \nextinternalreference - view {\interactionparameter\c!focus}% - \relax - \normalexpanded{% - \endgroup - \edef\noexpand\currentconstructionlistentry {\the\scratchcounter}% - \edef\noexpand\currentconstructionattribute {\the\lastdestinationattribute}% - \edef\noexpand\currentconstructionsynchronize{\ctxlatecommand{enhancelist(\the\scratchcounter)}}% - }% - \fi} - -% 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\reinstateconstructionnumberentry#1% was xdef - {\edef\currentconstructionattribute {\clf_getinternallistreference#1}% - \edef\currentconstructionsynchronize{\ctxlatecommand{enhancelist(#1)}}} - -\installstructurelistprocessor{construction}{\usestructurelistprocessor{number+title}} - -% Helpers: - -\def\currentconstructionnumber{\constructionparameter\s!counter} - -\unexpanded\def\strc_constructions_next_indeed #get#tag#level{\strc_counters_increment_sub{#get{#tag}\s!counter}{#level}} -\unexpanded\def\strc_constructions_reset_indeed#get#tag#level{\strc_counters_reset_sub {#get{#tag}\s!counter}{#level}} - -\protect \endinput |