diff options
Diffstat (limited to 'tex/context/base/page-set.mkiv')
-rw-r--r-- | tex/context/base/page-set.mkiv | 598 |
1 files changed, 278 insertions, 320 deletions
diff --git a/tex/context/base/page-set.mkiv b/tex/context/base/page-set.mkiv index 45755436e..467f22493 100644 --- a/tex/context/base/page-set.mkiv +++ b/tex/context/base/page-set.mkiv @@ -13,9 +13,7 @@ % getnoflines vs getrawnoflines -% This is a rather old mechanism and we can best keep it as it is. If it gets -% replaced by a more modern solution, it will be an extra mechanism. So, we -% only do some basic cleanup. +% some day: cleanup and go etex \writestatus{loading}{ConTeXt Page Macros / Column Sets} @@ -46,95 +44,13 @@ \newif\ifenoughcolumncells \newif\ifsomefreecolumncells \newif\ifcolumnspread -\newif\iftracecolumnset - -\newif\ifforcecolumnsetgrid \forcecolumnsetgridtrue -\newif\ifcollectingsetcontent % never set -\newif\ifcarryoverfootnotes %\carryoverfootnotestrue -\newif\iflastcolumnfootnotes % never set \lastcolumnfootnotestrue -\newif\ifintermediatefootnotes - -\newbox \b_page_set_preceding -\newbox \b_page_set_trailing - -\newdimen \d_page_set_local_hsize -\newconditional\c_page_set_width_set - -\installcorenamespace{columnsetgrid} +\newif\iftracecolumnset % \tracecolumnsettrue \def\columnmaxcells {75} % runtime \def\columnmaxfreecells {0} % runtime \def\columngaplimit {0} % {5} -\def\page_set_cell #1#2{\csname \??columnsetgrid:\number#1:\number#2\endcsname} -\def\page_set_cell_get#1#2{\box\csname \??columnsetgrid:\number#1:\number#2\endcsname} -\def\page_set_cell_set#1#2{\global\setbox\csname\??columnsetgrid:\number#1:\number#2\endcsname} - -\def\page_set_cell_doifelse#1#2% - {\relax - \ifvoid\csname\??columnsetgrid:\number#1:\number#2\endcsname - \expandafter\secondoftwoarguments - \else - \expandafter\firstoftwoarguments - \fi} - -\def\page_set_cell_erase_grid % maybe dedicated loops ... make another loop when max's have changed - {\bgroup - \increment\columnmaxcells\relax - \ifodd\realpageno \else - \columnspreadfalse - \fi - \ifcolumnspread - \page_set_cell_erase_grid_spread - \else - \page_set_cell_erase_grid_page - \fi - \page_set_cell_erase_grid_top - \global\columnfirstcell\zerocount - \global\columnlastcell \columnfirstcell - \global\columnfreecells\columnfirstcell - \egroup} - -\let\m_page_column_l\relax -\let\m_page_column_r\relax - -\def\page_set_cell_erase_grid_spread - {\dorecurse\nofcolumns - {\let \m_page_column_l\recurselevel - \edef\m_page_column_r{\the\numexpr\recurselevel+\lofcolumns}% - \dostepwiserecurse \zerocount \columnmaxcells \plusone - {\ifcsname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname - \global\setbox\csname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname - \ifcsname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \box\csname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \else - \emptyhbox - \expandafter\newbox\csname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \fi - \else - \expandafter\newbox\csname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname - \ifcsname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \global\setbox\csname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname\box\csname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \else - \expandafter\newbox\csname\??columnsetgrid:\m_page_column_r:\recurselevel\endcsname - \fi - \fi}}} - -\def\page_set_cell_erase_grid_page - {\dorecurse \tofcolumns - {\let\m_page_column_l\recurselevel - \dostepwiserecurse \zerocount \columnmaxcells \plusone - {\ifcsname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname - \global\setbox\csname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname\emptybox - \else - \expandafter\newbox\csname\??columnsetgrid:\m_page_column_l:\recurselevel\endcsname - \fi}}} - -\def\page_set_cell_erase_grid_top - {\dorecurse\tofcolumns - {\global\setbox\csname\??columnsetgrid:\recurselevel:\columnmaxcells\endcsname\copy\placeholderboxa}} - -% % % % +\def\@otr@{otr} \def\OTRSETmakeupwidth{\innermakeupwidth} @@ -144,6 +60,15 @@ \unexpanded\def\page_set_command_synchronize_side_floats {\page_sides_forget_floats} +\def\OTRSETgridcell #1#2{\csname \@otr@:\number#1:\number#2\endcsname} +\def\OTRSETgetgridcell#1#2{\box\csname \@otr@:\number#1:\number#2\endcsname} +\def\OTRSETsetgridcell#1#2{\global\setbox\csname\@otr@:\number#1:\number#2\endcsname} + +\long\def\OTRSETdoifcellelse#1#2% + {\relax\ifvoid\csname\@otr@:\number#1:\number#2\endcsname + \@EA\secondoftwoarguments\else\@EA\firstoftwoarguments + \fi} + % The following two macros are used to compensate for a switch in body fonts % as in: % @@ -259,16 +184,64 @@ \relax % needed ! ! ! ! else lookahead over \fi and \@EA \@EA\egroup\@EA\scratchdimen\the\!!dimena\relax} +\def\columnerasegridboxes % maybe dedicated loops + {\bgroup + \increment\columnmaxcells\relax + \ifodd\realpageno + \else % we are on the other page + \columnspreadfalse + \fi + \ifcolumnspread + \dorecurse\nofcolumns + {\let\!!stringa\recurselevel + \scratchcounter\recurselevel \advance\scratchcounter\lofcolumns + \edef\!!stringb{\the\scratchcounter}% + \dostepwiserecurse \zerocount \columnmaxcells \plusone + {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname + \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname + \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname + \box\csname\@otr@:\!!stringb:\recurselevel\endcsname + %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname + \else + \emptyhbox + %\global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox + \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname + \fi + \else + \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname + \ifcsname\@otr@:\!!stringb:\recurselevel\endcsname + \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\box\csname\@otr@:\!!stringb:\recurselevel\endcsname + \else + \expandafter\newbox\csname\@otr@:\!!stringb:\recurselevel\endcsname + \fi + \fi}}% + \else + \dorecurse \tofcolumns + {\let\!!stringa\recurselevel + \dostepwiserecurse \zerocount \columnmaxcells \plusone + {\ifcsname\@otr@:\!!stringa:\recurselevel\endcsname + \global\setbox\csname\@otr@:\!!stringa:\recurselevel\endcsname\emptybox + \else + \expandafter\newbox\csname\@otr@:\!!stringa:\recurselevel\endcsname + \fi}}% + \fi + \dorecurse\tofcolumns + {\global\setbox\csname\@otr@:\recurselevel:\columnmaxcells\endcsname\copy\placeholderboxa}% + \global\columnfirstcell\zerocount + \global\columnlastcell\columnfirstcell + \global\columnfreecells\columnfirstcell + \egroup} + \def\doOTRSETsetgridcells#1#2#3#4#5#6% placeholder col row wid hei {data} {\!!countd#2\advance\!!countd#4\advance\!!countd\minusone \!!counte#3\advance\!!counte#5\advance\!!counte\minusone \dostepwiserecurse{#2}\!!countd\plusone {\!!countf\recurselevel \dostepwiserecurse{#3}\!!counte\plusone - {\page_set_cell_set\!!countf\recurselevel#1}}% + {\OTRSETsetgridcell\!!countf\recurselevel#1}}% \dostepwiserecurse{#3}\!!counte\plusone - {\wd\page_set_cell{#2}\recurselevel\hsize}% - \page_set_cell_set{#2}\!!counte#6} + {\wd\OTRSETgridcell{#2}\recurselevel\hsize}% + \OTRSETsetgridcell{#2}\!!counte#6} \def\OTRSETsetgridcells {\doOTRSETsetgridcells{\copy\placeholderboxb}} @@ -279,17 +252,19 @@ \unexpanded\def\setupcolumnsetlines{\doquintupleempty\dosetupcolumnsettrick[l]} \unexpanded\def\setupcolumnsetstart{\doquintupleempty\dosetupcolumnsettrick[s]} -\installcorenamespace{columnsettag} % temp hack - \def\dosetupcolumnsettrick[#1][#2][#3][#4][#5]% tag id page col value - {\iffifthargument - \setevalue{\??columnsettag:#1:#2:\number#3:\number#4}{\number#5}% + {% not needed, is already relative + % \doifinstringelse{+}{#3}{\scratchcounter\realpageno}{\scratchcounter\zerocount}% + % \advance\scratchcounter#3\relax % \relax needed + % \setevalue{\??mc:#1:#2:\the\scratchcounter:\number#4}{\number#5}} + \iffifthargument + \setevalue{\??mc:#1:#2:\number#3:\number#4}{\number#5}% \else - \setevalue{\??columnsettag:#1:#2:\number#3:0}{\number#4}% + \setevalue{\??mc:#1:#2:\number#3:0}{\number#4}% \fi} -\def\currentcolumnmaxcellstag #1{\??columnsettag:l:\OTRSETidentifier:\columnsetpage:\number#1} -\def\currentcolumnstartcelltag#1{\??columnsettag:s:\OTRSETidentifier:\columnsetpage:\number#1} +\def\currentcolumnmaxcellstag #1{\??mc:l:\OTRSETidentifier:\columnsetpage:\number#1} +\def\currentcolumnstartcelltag#1{\??mc:s:\OTRSETidentifier:\columnsetpage:\number#1} \def\doresetcolumnsetlines#1% {\ifcsname\currentcolumnmaxcellstag{#1}\endcsname @@ -337,7 +312,7 @@ {\ifnum\columnfirstcell>\columnmaxcells\relax \exitloop \else - \page_set_cell_doifelse{#1}\columnfirstcell + \OTRSETdoifcellelse{#1}\columnfirstcell {\global\advance\columnfirstcell\plusone}\exitloop \fi}% \global\columnlastcell\columnfirstcell @@ -345,7 +320,7 @@ {\ifnum\columnlastcell>\columnmaxcells\relax \exitloop \else - \page_set_cell_doifelse{#1}\columnlastcell + \OTRSETdoifcellelse{#1}\columnlastcell {\global\advance\columnlastcell \minusone \exitloop} {\global\advance\columnlastcell \plusone }% \fi}% @@ -376,7 +351,7 @@ \edef\columnmaxcells{\the\scratchcounter}% \scratchcounter\zerocount \dostepwiserecurse{#2}\columnmaxcells\plusone - {\page_set_cell_doifelse{#1}\recurselevel + {\OTRSETdoifcellelse{#1}\recurselevel {\ifnum\columnmaxfreecells<\scratchcounter \edef\columnmaxfreecells{\the\scratchcounter}% \let\columnfrmfreecells\recurselevel @@ -387,7 +362,7 @@ \long\def\OTRSETrecurseRL#1% {\dostepwiserecurse\nofcolumns\plusone\minusone - {#1\hskip\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}} + {#1\hskip\OTRSETgetparameter\c!distance\recurselevel}} \def\OTRSETmakegridbox {\ifcase\columndirection @@ -398,28 +373,6 @@ \def\OTRSETmakeupwidth{\makeupwidth} % temporary indirectness -\def\page_set_make_background_box - {\begingroup - \mofcolumns\recurselevel % used to signal mp - \d_page_set_local_hsize\OTRSETlocalwidth\recurselevel - \scratchdistance\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance\relax - \edef\currentcolumnset{\currentcolumnset:\recurselevel}% - \letcolumnsetparameter\c!width \d_page_set_local_hsize - \letcolumnsetparameter\c!height\!!heighta - \letcolumnsetparameter\c!lines \empty - \letcolumnsetparameter\c!region\currentcolumnset - \setbox\scratchbox\hbox\inheritedcolumnsetframed{}% maybe \fastlocalframed - \wd\scratchbox\d_page_set_local_hsize - \ht\scratchbox\!!heighta - \ifcase\columndirection - \hskip\scratchdistance - \box\scratchbox - \else - \box\scratchbox - \hskip\scratchdistance - \fi - \endgroup} - \def\OTRSETdomakegridbox#1#2#3% {\hbox\bgroup \dontcomplain @@ -427,13 +380,28 @@ \!!heighta \textheight % test first ! \hbox to \OTRSETmakeupwidth - {\dostepwiserecurse{#1}{#2}{#3}\page_set_make_background_box}% + {\dostepwiserecurse{#1}{#2}{#3} + {\mofcolumns\recurselevel + \localcolumnwidth\OTRSETlocalwidth\mofcolumns + \setbox\scratchbox\hbox\localframed + [\??mc\OTRSETidentifier\number\mofcolumns]% + [\c!width=\localcolumnwidth,\c!height=\!!heighta,\c!lines=]% + {}% + \wd\scratchbox\localcolumnwidth + \ht\scratchbox\!!heighta + \ifcase\columndirection + \hskip\OTRSETgetparameter\c!distance\recurselevel + \box\scratchbox + \else + \box\scratchbox + \hskip\OTRSETgetparameter\c!distance\recurselevel + \fi}}% \hskip-\OTRSETmakeupwidth % main text \hbox to \OTRSETmakeupwidth {\dostepwiserecurse{#1}{#2}{#3} {\mofcolumns\recurselevel - \d_page_set_local_hsize\OTRSETlocalwidth\mofcolumns + \localcolumnwidth\OTRSETlocalwidth\mofcolumns \offinterlineskip \setbox\scratchbox\vbox to \!!heighta {%\topskipcorrection % not needed @@ -449,14 +417,14 @@ \vfill \fi \dorecurse\columnmaxcells - {\setbox\scratchbox\hbox{\page_set_cell_get\mofcolumns\recurselevel}% + {\setbox\scratchbox\hbox{\OTRSETgetgridcell\mofcolumns\recurselevel}% \ht\scratchbox\strutht \dp\scratchbox\strutdp \ifcase\columndirection \box\scratchbox \else - \hbox to \d_page_set_local_hsize - {\hskip\d_page_set_local_hsize\llap{\box\scratchbox}}% + \hbox to \localcolumnwidth + {\hskip\localcolumnwidth\llap{\box\scratchbox}}% \fi \par}% \ifcase\OTRSETbalancemethod @@ -471,12 +439,12 @@ \kern\zeropoint \vss \fi}% - \wd\scratchbox\d_page_set_local_hsize % \textwidth + \wd\scratchbox\localcolumnwidth % \textwidth \page_marks_synchronize_column{#1}{#2}\recurselevel\scratchbox \ifcase\columndirection - \hskip\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance\box\scratchbox + \hskip\OTRSETgetparameter\c!distance\recurselevel\box\scratchbox \else - \box\scratchbox\hskip\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance + \box\scratchbox\hskip\OTRSETgetparameter\c!distance\recurselevel \fi}}% \egroup} @@ -491,7 +459,7 @@ \!!counta\columnmaxcells \donetrue \doloop - {\dorecurse\nofcolumns{\page_set_cell_doifelse\recurselevel\!!counta\donefalse\donothing}% + {\dorecurse\nofcolumns{\OTRSETdoifcellelse\recurselevel\!!counta\donefalse\donothing}% \ifdone \ifnum\!!counta>\plusone\advance\!!counta\minusone\else\exitloop\fi \else @@ -515,22 +483,22 @@ {\placebottomnotes}% \ifdim\ht\scratchbox>\zeropoint \setbox\scratchbox\hbox - {\hbox to \zeropoint{\page_set_cell_get\nofcolumns\lastcolumnlastcell}% + {\hbox to \zeropoint{\OTRSETgetgridcell\nofcolumns\lastcolumnlastcell}% \box\scratchbox}% \ht\scratchbox\strutht \dp\scratchbox\strutdp - \page_set_cell_set\nofcolumns\lastcolumnlastcell\box\scratchbox + \OTRSETsetgridcell\nofcolumns\lastcolumnlastcell\box\scratchbox \fi \global\lastcolumnlastcell\zerocount \fi} \def\OTRSETdoflush - {\ifcollectingsetcontent + {\ifcollectingcontent \global\mofcolumns\plusone \else \OTRSETdofinalflush \OTRSETdofinaloutput - \ifnum\columnsetpage>\zerocount + \ifnum\columnsetpage>0 \dorecurse\nofcolumns{\doresetcolumnsetlines\recurselevel}% \fi \doglobal\increment\columnsetpage @@ -586,10 +554,11 @@ \newdimen \OTRSETtextsheight \let \OTRSETidentifier=\empty +\def\OTRSETgetparameter#1#2{\csname\??mc\OTRSETidentifier\number#2#1\endcsname} +\def\OTRSETsetparameter#1#2{\setvalue{\??mc\OTRSETidentifier\number#2#1}} + \def\OTRSETskipstart - {\doifelsenothing{\columnsetparameter\c!start} - {\scratchcounter\zerocount}% - {\scratchcounter\columnsetparameter\c!start}% + {\scratchcounter\executeifdefined{\??mc\OTRSETidentifier\c!start}\zerocount \relax % needed ! \ifcase\scratchcounter\else \advance\scratchcounter\plusone @@ -600,7 +569,7 @@ \fi} \unexpanded\def\page_set_command_set_vsize % snap per sectie (gap here?) - {\ifcollectingsetcontent \else % can be assigndimen + {\ifcollectingcontent \else % can be assigndimen \OTRSETsetcolumnmaxcells % layout can be changed \OTRSETskipstart % not that well tested \OTRSETcheckinsert % added @@ -608,7 +577,7 @@ \ifsomefreecolumncells \global\vsize\columnfreecells\lineheight \ifinotr % else problems with floats, see extreme - \pagegoal\vsize % niet nodig, tenzij binnen otr + \global\pagegoal\vsize % niet nodig, tenzij binnen otr \fi \synchronizeoutput % fails on example % \allowbreak % hm @@ -617,12 +586,12 @@ \fi} \def\page_set_command_set_hsize % of course this does not migrate outside the otr - {\d_page_set_local_hsize\OTRSETlocalwidth\mofcolumns - \textwidth\d_page_set_local_hsize - \hsize\d_page_set_local_hsize} + {\localcolumnwidth\OTRSETlocalwidth\mofcolumns + \textwidth\localcolumnwidth + \hsize\localcolumnwidth} \unexpanded\def\page_set_command_synchronize_hsize - {\ifconditional\c_page_set_width_set + {\ifcase0\getvalue{\??mc\??mc\c!width}\else % some width set \bgroup \scratchdimen\OTRSETlocalwidth\mofcolumns \ifdim\scratchdimen=\textwidth @@ -860,7 +829,7 @@ {\ifnum\columngaplimit>\zerocount \donefalse \dostepwiserecurse{#2}\columnmaxcells\plusone - {\page_set_cell_doifelse{#1}\recurselevel + {\OTRSETdoifcellelse{#1}\recurselevel {\ifdone \!!countb\recurselevel \advance\!!countb -\!!counta\relax \ifnum\!!countb>\plusone @@ -868,7 +837,7 @@ \ifnum\!!countb<\columngaplimit\relax \!!countb\recurselevel \advance\!!countb \minusone \dostepwiserecurse\!!counta\!!countb\plusone - {\page_set_cell_set{#1}\recurselevel\copy\placeholderboxc}% + {\OTRSETsetgridcell{#1}\recurselevel\copy\placeholderboxc}% %\message{[gap]}% \fi \fi @@ -982,7 +951,7 @@ \else \advance\columnhcells \plusone \advance\scratchcounter \plusone - \advance\totalcolumnspace \namedcolumnsetparameter{\currentcolumnset:\number\scratchcounter}\c!distance + \advance\totalcolumnspace \OTRSETgetparameter\c!distance\scratchcounter \fi \else \exitloop @@ -1004,9 +973,9 @@ %\scratchcounter#2\advance\scratchcounter\minusone %\ifnum\scratchcounter>0 % \dostepwiserecurse{#1}\!!countd\plusone -% {\ifdim\wd\page_set_cell\recurselevel\scratchcounter>\zeropoint +% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint % \let\columnspacetopoffset\plusone -% \else\ifdim\dp\page_set_cell\recurselevel\scratchcounter>\zeropoint +% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint % \let\columnspacetopoffset\plusone % \fi\fi}% % \advance\!!counte \columnspacetopoffset \relax @@ -1017,9 +986,9 @@ %\advance\scratchcounter \columnvcells \relax %\ifnum\scratchcounter>\columnmaxcells\else % \dostepwiserecurse{#1}\!!countd\plusone -% {\ifdim\wd\page_set_cell\recurselevel\scratchcounter>\zeropoint +% {\ifdim\wd\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint % \let\columnspacebotoffset\plusone -% \else\ifdim\dp\page_set_cell\recurselevel\scratchcounter>\zeropoint +% \else\ifdim\dp\OTRSETgridcell\recurselevel\scratchcounter>\zeropoint % \let\columnspacebotoffset\plusone % \fi\fi}% % \advance\!!counte \columnspacebotoffset \relax @@ -1030,15 +999,12 @@ \!!countf\recurselevel\relax \dostepwiserecurse{#2}\!!counte\plusone % rows {\ifenoughcolumncells - \page_set_cell_doifelse\!!countf\recurselevel + \OTRSETdoifcellelse\!!countf\recurselevel {\enoughcolumncellsfalse}{}% \fi}% \fi}% \fi} -\let\preferedcolumn\empty -\let\preferedrow \empty - \def\OTRSETsetpreferedcolumnslot#1#2% {\doifsomething{#1}{\edef\preferedcolumn{#1}}% \doifsomething{#2}{\edef\preferedrow {#2}}} @@ -1112,7 +1078,7 @@ \def\OTRSETstoreincolumnslotFXTB#1% fixed column {\OTRSETcheckprefered - \page_set_cell_doifelse\pofcolumns\plusone + \OTRSETdoifcellelse\pofcolumns\plusone {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot1}{#1}% % 1/2 dependent of place, todo \OTRSETflushtextsofar \OTRSETstoreincolumnslotindeed @@ -1121,7 +1087,7 @@ \def\OTRSETstoreincolumnslotFXBT#1% fixed column {\OTRSETcheckprefered - \page_set_cell_doifelse\pofcolumns\columnmaxcells + \OTRSETdoifcellelse\pofcolumns\columnmaxcells {\OTRSETprepareforcolumnslot2}{\OTRSETprepareforcolumnslot3}{#1}% % 3/2 dependent of place, todo \OTRSETflushtextsofar \OTRSETstoreincolumnslotindeed @@ -1298,7 +1264,7 @@ \fi} \unexpanded\def\page_set_command_check_if_float_fits - {\global\ifconditional\c_page_floats_not_permitted\setfalse\c_page_floats_room\else\settrue\c_page_floats_room\fi} + {\global\ifnofloatpermitted\roomforfloatfalse\else\roomforfloattrue\fi} \def\OTRSETunpreparebox#1% {\ifhbox#1% spans and so @@ -1313,25 +1279,25 @@ \def\OTRSETsavebox#1% clean up the skips {\OTRSETunpreparebox{#1}% - \page_floats_save\s!text} + \dofloatssave\s!text} \def\OTRSETresavebox#1% clean up the skips {\OTRSETunpreparebox{#1}% - \page_floats_resave\s!text} + \dofloatsresave\s!text} \unexpanded\def\page_set_command_flush_float_box - {\box\floatbox} + {\iftestfloatbox\ruledhbox\fi{\box\floatbox}} \unexpanded\def\page_set_command_flush_floats {\bgroup \def\OTRSETsavebox##1{\!!doneafalse}% \doloop - {\ifconditional\c_page_floats_some_waiting + {\ifsomefloatwaiting \OTRSETskipstart - \page_floats_get_info\s!text + \dofloatsgetinfo\s!text \ifdim\floatwidth>\zeropoint \!!doneatrue - \page_floats_flush\s!text\plusone + \dofloatsflush\s!text{1}% \dp\floatbox\zeropoint \OTRSETstoreincolumnslot{TBLR}\floatbox \if!!donea @@ -1367,9 +1333,9 @@ \else % only span if there is a next column with content \dorecurse\columnmaxcells - {\ifdim\ht\page_set_cell\currenthcell\currentvcell>\zeropoint + {\ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint \centergridcellonlyfalse - \else\ifdim\dp\page_set_cell\currenthcell\currentvcell>\zeropoint + \else\ifdim\dp\OTRSETgridcell\currenthcell\currentvcell>\zeropoint \centergridcellonlyfalse \fi\fi}% \fi @@ -1377,10 +1343,10 @@ \currenthcell\recurselevel \dorecurse\columnmaxcells {\currentvcell\recurselevel\relax - \ifdim\ht\page_set_cell\currenthcell\currentvcell>\zeropoint - \ifdim\dp\page_set_cell\currenthcell\currentvcell=\zeropoint + \ifdim\ht\OTRSETgridcell\currenthcell\currentvcell>\zeropoint + \ifdim\dp\OTRSETgridcell\currenthcell\currentvcell=\zeropoint \bgroup - \setbox\scratchbox\page_set_cell_get\currenthcell\currentvcell + \setbox\scratchbox\OTRSETgetgridcell\currenthcell\currentvcell \getnoflines{\ht\scratchbox}% \!!counta\currentvcell \advance\!!counta -\noflines @@ -1397,9 +1363,9 @@ {\if!!doneb \let\xrecurselevel\recurselevel \dostepwiserecurse\!!counta\currentvcell\plusone - {\ifdim\ht\page_set_cell\xrecurselevel\recurselevel>\zeropoint + {\ifdim\ht\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint \!!donebfalse - \else\ifdim\wd\page_set_cell\xrecurselevel\recurselevel>\zeropoint + \else\ifdim\wd\OTRSETgridcell\xrecurselevel\recurselevel>\zeropoint \!!donebfalse \fi\fi}% \if!!doneb @@ -1409,11 +1375,11 @@ \totalcolumnspace\OTRSETlocalwidth\currenthcell \dostepwiserecurse\!!countc\!!countb\plusone {\advance\totalcolumnspace \OTRSETlocalwidth\recurselevel - \advance\totalcolumnspace \namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}% + \advance\totalcolumnspace \OTRSETgetparameter\c!distance\recurselevel}% \ifdim\totalcolumnspace>\wd\scratchbox \setbox\scratchbox\hbox to \totalcolumnspace{\hss\box\scratchbox\hss}% \fi - \page_set_cell_set\currenthcell\currentvcell\box\scratchbox + \OTRSETsetgridcell\currenthcell\currentvcell\box\scratchbox \egroup \fi \fi}}% @@ -1422,8 +1388,8 @@ \def\OTRSETinitializecolumns% once per page {\columnspreadtrue % todo \ifcolumnspread - \global\rofcolumns\columnsetparameter\c!nright - \global\lofcolumns\columnsetparameter\c!nleft + \global\rofcolumns\getvalue{\??mc\OTRSETidentifier\c!nright}% + \global\lofcolumns\getvalue{\??mc\OTRSETidentifier\c!nleft}% \global\tofcolumns\rofcolumns \relax \ifodd\realpageno\relax \global\nofcolumns\rofcolumns @@ -1432,70 +1398,67 @@ \global\nofcolumns\lofcolumns \fi \else - \global\nofcolumns\columnsetparameter\c!n + \global\nofcolumns\getvalue{\??mc\OTRSETidentifier\c!n}% \global\rofcolumns\nofcolumns \global\lofcolumns\nofcolumns \global\tofcolumns\nofcolumns \fi \OTRSETassignwidths \global\mofcolumns\plusone - \page_set_cell_erase_grid} + \columnerasegridboxes} -% this is a first step in upgrading - -\installcorenamespace{columnset} - -\installframedcommandhandler \??columnset {columnset} \??columnset - -\setupcolumnset % todo, use the rather basic backgroundframed - [\c!direction=\v!right, - \c!balance=\v!no, - \c!distance=1.5\bodyfontsize, - \c!n=2, - \c!nleft=\columnsetparameter\c!n, - \c!nright=\columnsetparameter\c!n, - \c!width=\v!fit, - \c!lines=0, - \c!start=0, - \c!frame=\v!off, - \c!offset=\v!overlay, - \c!frame=\v!off, - \c!align=, - \c!lines=0] - -\let\page_set_setup_saved\setupcolumnset - -\newconditional\c_page_set_defining - -\appendtoks - \ifconditional\c_page_set_defining \else - \settrue\c_page_set_defining - \dorecurse{\columnsetparameter\c!nleft} - {\normalexpanded{\definecolumnset[\currentcolumnset:\recurselevel][\currentcolumnset]}}% - \dorecurse{\columnsetparameter\c!nright} - {\normalexpanded{\definecolumnset[\currentcolumnset:\recurselevel][\currentcolumnset]}}% - \normalexpanded{\page_set_setup_saved[\currentcolumnset:1][\c!distance=\zeropoint]}% - \setfalse\c_page_set_defining - \fi -\to \everydefinecolumnset +% vanaf hier: + +\unexpanded\def\definecolumnset + {\dodoubleargument\dodefinecolumnset} + +\def\dodefinecolumnset[#1][#2]% + {\getparameters[\??mc#1] + [\c!direction=\v!right, + \c!balance=\v!no, + \c!distance=1.5\bodyfontsize, % controleren + \c!n=2, + \c!nleft=\getvalue{\??mc#1\c!n}, + \c!nright=\getvalue{\??mc#1\c!n}, + \c!width=\v!fit, + \c!lines=0, + \c!start=0, + #2]% + \dorecurse{\getvalue{\??mc#1\c!nleft}} % todo + {\dododefinecolumnset[#1][\recurselevel]}% + \dorecurse{\getvalue{\??mc#1\c!nright}} % todo + {\dododefinecolumnset[#1][\recurselevel]}% + % redo framed settings + \setupcolumnset[#1][1][\c!distance=\!!zeropoint]} + +\def\dododefinecolumnset[#1][#2]% + {\presetlocalframed + [\??mc#1#2]% + \setupcolumnset + [#1][#2] + [\c!offset=\v!overlay, + \c!frame=\v!off, + \c!align=, + \c!lines=0,% really needed since c!regels is now part of framed + \c!width=\getvalue{\??mc#1\c!width}, + \c!distance=\getvalue{\??mc#1\c!distance}]} \unexpanded\def\setupcolumnset - {\dotripleargument\page_set_setup} + {\dotripleargument\dosetupcolumnset} -\def\page_set_setup[#1][#2][#3]% +\def\dosetupcolumnset[#1][#2][#3]% {\ifthirdargument - \unexpanded\def\page_set_setup_step##1% + \def\docommand##1% {\doifelse{##1}\v!each - {\dorecurse{\namedcolumnsetparameter{#1}\c!n}{\page_set_setup_step\recurselevel}} - {\normalexpanded{\page_set_setup_saved[#1:\recurselevel]}[#3]}}% - \processcommalist[#2]\page_set_setup_step + {\dorecurse{\getvalue{\??mc#1\c!n}}{\docommand\recurselevel}} + {\getparameters[\??mc#1##1][#3]}}% + \processcommalist[#2]\docommand \else - \page_set_setup_saved[#1][#2]% + \getparameters[\??mc#1][#2]% \fi} - -\definecolumnset - [\s!default] - + +\definecolumnset[\s!default][\c!n=2] % fallback + \unexpanded\def\page_set_command_next_page {\page_otr_fill_and_eject_page \relax\ifnum\mofcolumns>\plusone @@ -1507,6 +1470,7 @@ \let\page_set_command_next_page_and_inserts\page_set_command_next_page + \def\OTRSETgotocolumn {\dosingleempty\doOTRSETgotocolumn} @@ -1536,7 +1500,7 @@ \currenthcell\mofcolumns \currentvcell#1\advance\currentvcell \minusone \dorecurse\currentvcell - {\page_set_cell_doifelse\mofcolumns\recurselevel\donothing + {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing {\advance\scratchcounter\plusone}} \getnoflines\pagetotal \advance\scratchcounter-\noflines @@ -1583,7 +1547,7 @@ % \currenthcell\mofcolumns % \currentvcell#2\advance\currentvcell \minusone % \dorecurse\currentvcell -% {\page_set_cell_doifelse\mofcolumns\recurselevel\donothing +% {\OTRSETdoifcellelse\mofcolumns\recurselevel\donothing % {\advance\scratchcounter\plusone}} % \getnoflines\pagetotal % \advance\scratchcounter-\noflines @@ -1646,7 +1610,7 @@ % \stoptext \def\OTRSETflushleftovers % new per 13/4/2006 - {\page_set_cell_doifelse\plusone\plusone + {\OTRSETdoifcellelse{1}{1} {\bgroup \OTRSETcentergridcells \OTRSETbalancemethod\plusone @@ -1679,7 +1643,7 @@ \fi \fi \global\setfalse\OTRSETfinish - \ifconditional\c_page_floats_some_waiting + \ifsomefloatwaiting \page_otr_command_set_vsize \pagebreak \page_otr_command_set_vsize @@ -1761,8 +1725,8 @@ {\doifsomething\OTRSETlist {\getfromcommacommand[\OTRSETlist][1]% \global\let\OTRSETidentifier\commalistelement - \xdef\currentcolumnset{\commalistelement}% - \checkcolumnsetparent + \doifundefined{\??mc\OTRSETidentifier\c!n} + {\globallet\OTRSETidentifier\s!default}% \let\newcommalistelement\empty \doglobal\replaceincommalist\OTRSETlist1% \OTRSETrestart}} @@ -1788,8 +1752,8 @@ \OTRSETsetcorrectnofcells\currentcolumnstartcell \advance\scratchcounter \minusone \dorecurse\scratchcounter - {\page_set_cell_doifelse\mofcolumns\recurselevel - \donothing{\page_set_cell_set\mofcolumns\recurselevel\copy\placeholderboxe}}% + {\OTRSETdoifcellelse\mofcolumns\recurselevel + \donothing{\OTRSETsetgridcell\mofcolumns\recurselevel\copy\placeholderboxe}}% \egroup}} \unexpanded\def\page_set_command_routine @@ -1814,13 +1778,13 @@ % new: raw \OTRSETsetcolumnmaxcells % direction - \doifelse{\columnsetparameter\c!direction}\v!right + \doifelsevalue{\??mc\OTRSETidentifier\c!direction}\v!right {\columndirection\zerocount} {\columndirection\plusone}% % balancing \OTRSETbalancemethod\zerocount \processaction - [\columnsetparameter\c!balance] + [\getvalue{\??mc\OTRSETidentifier\c!balance}] [ \v!yes=>\OTRSETbalancemethod\plusone, \v!top=>\OTRSETbalancemethod\plustwo, \v!bottom=>\OTRSETbalancemethod\plusthree]} @@ -1839,46 +1803,46 @@ \ifx\lastskipinotr\undefined \newskip\lastskipinotr \fi \installoutputroutine\OTRSETflushpreposttext - {\global\setbox\b_page_set_preceding\vbox + {\global\setbox\precolumnbox\vbox {\unvbox\normalpagebox \global\lastskipinotr\lastskip}% \ifdim\lastskipinotr>\zeropoint - \global\setbox\b_page_set_preceding\hbox - {\lower\strutdepth\box\b_page_set_preceding}% + \global\setbox\precolumnbox\hbox + {\lower\strutdepth\box\precolumnbox}% \fi - \dp\b_page_set_preceding\strutdepth + \dp\precolumnbox\strutdepth \ifcarryoverfootnotes \else - \global\setbox\b_page_set_trailing\vbox{\placebottomnotes}% + \global\setbox\postcolumnbox\vbox{\placebottomnotes}% \fi} \let\precolumnlines \!!zerocount \let\postcolumnlines\!!zerocount \def\OTRSEThandlepreposttext - {\ifdim\ht\b_page_set_preceding>\zeropoint % new - \getnoflines{\ht\b_page_set_preceding}% + {\ifdim\ht\precolumnbox>\zeropoint % new + \getnoflines{\ht\precolumnbox}% \edef\precolumnlines{\the\noflines}% \doOTRSETsetgridcells {\copy\placeholderboxe} \plusone\plusone\nofcolumns\noflines % normal version (single column set) - % {\box\b_page_set_preceding}% + % {\box\precolumnbox}% % compensated for bodyfont change {\hbox {\OTRSETsetcorrectcellht - \raise\scratchdimen\box\b_page_set_preceding}}% + \raise\scratchdimen\box\precolumnbox}}% \else \let\precolumnlines\!!zerocount \fi - \ifdim\ht\b_page_set_trailing>\zeropoint % new, otherwise empty bottom line - \getnoflines{\ht\b_page_set_trailing}% + \ifdim\ht\postcolumnbox>\zeropoint % new, otherwise empty bottom line + \getnoflines{\ht\postcolumnbox}% \edef\postcolumnlines{\the\noflines}% \advance\columnfreecells -\noflines \advance\columnfreecells \plusone \doOTRSETsetgridcells {\copy\placeholderboxe} \plusone\columnfreecells\nofcolumns\noflines - {\box\b_page_set_trailing}% + {\box\postcolumnbox}% \else \let\postcolumnlines\!!zerocount \fi} @@ -1891,7 +1855,7 @@ \def\OTRSETcheckgrid {\topskip1\topskip - \ifforcecolumnsetgrid + \ifforcecolumngrid \widowpenalty\zerocount \clubpenalty\zerocount \brokenpenalty\zerocount @@ -1930,31 +1894,29 @@ % interface to footnotes -\installcorenamespace{columnsetwidth} - \def\OTRSETassignwidths {%\scratchdimen\makeupwidth \freezetextwidth \scratchdimen\textwidth % \scratchcounter\zerocount \dorecurse\nofcolumns - {\doifelse{\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!width}\v!fit - {\advance\scratchcounter \plusone} - {\advance\scratchdimen -\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!width}% - \advance\scratchdimen -\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}% + {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit + {\advance\scratchcounter \plusone } + {\advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}% + \advance\scratchdimen -\getvalue{\??mc\OTRSETidentifier\recurselevel\c!distance}}% \ifcase\scratchcounter\else \divide\scratchdimen \scratchcounter \fi - \global\setfalse\c_page_set_width_set + \setgvalue{\??mc\??mc\c!width}{0}% \dorecurse\nofcolumns - {\doifelse{\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!width}\v!fit + {\doifelsevalue{\??mc\OTRSETidentifier\recurselevel\c!width}\v!fit {\dimen0=\scratchdimen} - {\global\settrue\c_page_set_width_set - \dimen0=\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!width}% - \setxvalue{\??columnsetwidth\recurselevel}{\the\dimen0}}} + {\setgvalue{\??mc\??mc\c!width}{1}% + \dimen0=\getvalue{\??mc\OTRSETidentifier\recurselevel\c!width}}% + \setxvalue{\??mc\recurselevel\??mc\c!width}{\the\dimen0}}} \def\OTRSETlocalwidth#1% - {\getvalue{\??columnsetwidth\number#1}} + {\getvalue{\??mc\number#1\??mc\c!width}} \newbox\placeholderboxa \newbox\placeholderboxb @@ -1968,7 +1930,7 @@ {\setbox\scratchbox\hbox to \hsize {\iftracecolumnset \hskip-.5ex% - \startcolor[columnset:#2]\vrule\s!width\exheight\s!height.5\exheight\s!depth.5\exheight\stopcolor + \startcolor[columnset:#2]\vrule\!!width1ex\!!height.5ex\!!depth.5ex\stopcolor \fi \hss}% \ifcase#1\relax @@ -2022,14 +1984,14 @@ \def\page_set_place_float_bottom{\def\floatmethod{BOTS}\page_set_place_float_slot} % check \def\OTRSETflushfloatbox % nog verder doorvoeren en meer info in marge - {\box\floatbox} + {\iftestfloatbox\ruledhbox\fi{\box\floatbox}} \def\page_set_place_float_slot {\setbox\floatbox\vbox{\page_otr_command_flush_float_box}% \dp\floatbox\strutdp \@EA\uppercasestring\floatmethod\to\floatmethod \OTRSETstoreincolumnslot\floatmethod\floatbox - \page_floats_report_total} + \doinsertfloatinfo} % kind of new, looks much like OTRONE, but not entirely @@ -2037,7 +1999,7 @@ \unexpanded\def\page_set_command_set_top_insertions {\bgroup - \ifconditional\c_page_floats_some_waiting + \ifsomefloatwaiting \noffloatinserts\zerocount \let\totaltopinserted\!!zeropoint \OTRSETdodosettopinserts @@ -2058,9 +2020,9 @@ \egroup} \def\OTRSETdodosettopinserts - {\ifnum\noffloatinserts<\c_page_floats_n_of_top - \page_floats_get - \ifdim\d_page_floats_inserted_top=\zeropoint\relax + {\ifnum\noffloatinserts<\noftopfloats + \dogetfloat + \ifdim\topinserted=\zeropoint\relax \settrue\c_page_set_top_of_insert \else \setfalse\c_page_set_top_of_insert @@ -2076,28 +2038,25 @@ \fi \page_otr_command_flush_float_box \blank[\rootfloatparameter\c!spaceafter]}% - \global\advance\d_page_floats_inserted_top \ht\scratchbox\relax - \ifdim\d_page_floats_inserted_top>\vsize % was \textheight\relax + \global\advance\topinserted \ht\scratchbox\relax + \ifdim\topinserted>\vsize % was \textheight\relax \OTRSETresavebox\floatbox - \noffloatinserts\c_page_floats_n_of_top\relax - \global\advance\d_page_floats_inserted_top -\ht\scratchbox + \noffloatinserts\noftopfloats\relax + \global\advance\topinserted -\ht\scratchbox \let\OTRSETdodosettopinserts\relax % to be tested \else - \xdef\totaltopinserted{\the\d_page_floats_inserted_top}% - \insert\namedinsertionnumber\s!topfloat\bgroup - \forgetall - \box\scratchbox - \egroup - \ifconditional\c_page_floats_some_waiting + \xdef\totaltopinserted{\the\topinserted}% + \insert\topins{\forgetall\box\scratchbox}% interlineskip ? + \ifsomefloatwaiting \advance\noffloatinserts \plusone \else - \noffloatinserts\c_page_floats_n_of_top\relax + \noffloatinserts\noftopfloats\relax \fi - \page_floats_report_flushed + \dofloatflushedinfo \fi \else - \ifconditional\c_page_floats_some_waiting - \showmessage\m!floatblocks6{\the\c_page_floats_n_of_top}% + \ifsomefloatwaiting + \showmessage\m!floatblocks6{\the\noftopfloats}% \fi \let\OTRSETdodosettopinserts\relax \fi @@ -2105,66 +2064,67 @@ \unexpanded\def\page_set_command_set_bottom_insertions {\bgroup - \ifconditional\c_page_floats_some_waiting + \ifsomefloatwaiting \noffloatinserts\zerocount \OTRSETdodosetbotinserts \fi \egroup} \def\OTRSETdodosetbotinserts - {\ifnum\noffloatinserts<\c_page_floats_n_of_bottom\relax - \page_floats_get - \global\advance\d_page_floats_inserted_bottom\dimexpr\ht\floatbox+\dp\floatbox+\d_strc_floats_top\relax - \ifdim\d_page_floats_inserted_bottom<\pagegoal\relax - \insert\namedinsertionnumber\s!bottomfloat\bgroup - \forgetall - \blank[\rootfloatparameter\c!spacebefore]% - \page_otr_command_flush_float_box - \egroup - \ifconditional\c_page_floats_some_waiting + {\ifnum\noffloatinserts<\nofbotfloats\relax + \dogetfloat + \global\advance\botinserted \ht\floatbox\relax + \global\advance\botinserted \dp\floatbox\relax + \global\advance\botinserted \floattopskip\relax + \ifdim\botinserted<\pagegoal\relax + \insert\botins + {\forgetall + \blank[\rootfloatparameter\c!spacebefore]% + \page_otr_command_flush_float_box}% + \ifsomefloatwaiting \advance\noffloatinserts \plusone \else - \noffloatinserts\c_page_floats_n_of_bottom + \noffloatinserts\nofbotfloats \fi - \page_floats_report_flushed + \dofloatflushedinfo \else \OTRSETresavebox\floatbox - \noffloatinserts\c_page_floats_n_of_bottom\relax + \noffloatinserts\nofbotfloats\relax \fi - \global\settrue\c_page_floats_not_permitted % vgl topfloats s! + \global\nofloatpermittedtrue % vgl topfloats s! \else - \ifconditional\c_page_floats_some_waiting - \showmessage\m!floatblocks7{\the\c_page_floats_n_of_bottom}% + \ifsomefloatwaiting + \showmessage\m!floatblocks7{\the\nofbotfloats}% \fi \let\OTRSETdodosetbotinserts\relax \fi \OTRSETdodosetbotinserts} \unexpanded\def\page_set_command_flush_top_insertions - {\ifvoid\namedinsertionnumber\s!topfloat\else + {\ifvoid\topins\else \ifvoid\columntopbox\mofcolumns - \columnsettopbox\mofcolumns\box\namedinsertionnumber\s!topfloat + \columnsettopbox\mofcolumns\box\topins \else \columnsettopbox\mofcolumns\vbox % temp, must be better {\forgetall \offinterlineskip \box\columntopbox\mofcolumns - \box\namedinsertionnumber\s!topfloat} + \box\topins} \fi \fi - \global\d_page_floats_inserted_top\zeropoint\relax} % goes away + \global\topinserted\zeropoint\relax} % goes away \unexpanded\def\page_set_command_flush_bottom_insertions - {\ifvoid\namedinsertionnumber\s!bottomfloat \else - \columnsetbotbox\mofcolumns\box\namedinsertionnumber\s!bottomfloat + {\ifvoid\botins \else + \columnsetbotbox\mofcolumns\box\botins % \else % \columnsetbotbox\mofcolumns\vbox % temp, must be better % {\forgetall % \offinterlineskip -% \box\namedinsertionnumber\s!bottomfloat +% \box\botins % \box\columnbotbox\mofcolumns} \fi - \global\d_page_floats_inserted_bottom\zeropoint\relax} % goes away + \global\botinserted\zeropoint\relax} % goes away % set ipv text @@ -2175,8 +2135,6 @@ % links rechts => odd, even, n, named -\definesystemvariable {mt} % MulTicolumn - \unexpanded\def\definecolumntextarea {\dotripleempty\dodefinecolumntextarea} @@ -2353,7 +2311,7 @@ \c!height=\!!heighta]% {\copy\scratchbox}% \fi}% - \page_set_cell_set\!!counta\!!countb\box0 + \OTRSETsetgridcell\!!counta\!!countb\box0 \ifcase\!!countc\else \advance\!!counta \columntextareaparameter\c!nx \advance\!!counta -\!!countc @@ -2370,7 +2328,7 @@ \c!height=\!!heighta,% \c!hoffset=\!!widthb]% {\copy\scratchbox}}% - \page_set_cell_set\!!counta\!!countb\box0% + \OTRSETsetgridcell\!!counta\!!countb\box0% \fi} \unexpanded\def\setupcolumntextareatext @@ -2408,7 +2366,7 @@ \fi \advance\!!counta \plusone \dostepwiserecurse\!!counta\!!countb\plusone - {\advance\!!widtha\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}% + {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}% \!!widthb\!!widtha \advance\!!widthb -\!!countc\textwidth \ifodd\realpageno \else % tricky, assumes that we keep there @@ -2418,7 +2376,7 @@ \advance\!!widtha \namedlayoutparameter\v!odd \c!backspace \advance\!!widthb \namedlayoutparameter\v!even\c!backspace \dorecurse\!!countc - {\advance\!!widtha\namedcolumnsetparameter{\currentcolumnset:\recurselevel}\c!distance}% + {\advance\!!widtha\OTRSETgetparameter\c!distance\recurselevel}% \fi \fi} @@ -2428,12 +2386,12 @@ {\!!counta#1\!!countb#2\docalculatecolumnsetspan \edef\columnsetspanhsize{\the\!!widtha}} -\unexpanded\def\page_set_command_set_float_hsize % this helper has to be moved to strc-flt +\unexpanded\def\page_set_command_set_float_hsize {\hsize % maybe checking optional - \ifdim\d_strc_float_temp_width>\makeupwidth + \ifdim\tempfloatwidth>\makeupwidth \makeupwidth \else - \d_strc_float_temp_width + \tempfloatwidth \fi} \unexpanded\def\definecolumnsetspan @@ -2580,12 +2538,12 @@ % \stopcolumnset \unexpanded\def\page_set_command_flush_saved_floats % rather similar to _one_ ut this might change - {\global\d_page_floats_inserted_top\zeropoint - \global\d_page_floats_inserted_bottom\zeropoint - \ifconditional\c_page_floats_flushing \else + {\global\topinserted\zeropoint + \global\botinserted\zeropoint + \ifflushingfloats \else \page_set_command_set_top_insertions \page_set_command_set_bottom_insertions - \ifconditional\c_page_floats_some_waiting + \ifsomefloatwaiting \doif{\rootfloatparameter\c!cache}\v!no\page_set_command_flush_floats % could be _otr_ \fi \fi} |