summaryrefslogtreecommitdiff
path: root/tex/context/base/page-mul.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-mul.tex')
-rw-r--r--tex/context/base/page-mul.tex754
1 files changed, 409 insertions, 345 deletions
diff --git a/tex/context/base/page-mul.tex b/tex/context/base/page-mul.tex
index c5efdb741..b29597af6 100644
--- a/tex/context/base/page-mul.tex
+++ b/tex/context/base/page-mul.tex
@@ -15,10 +15,10 @@
%D This module is mostly a copy from the original multi column
%D routine as implemented in \type {core-mul}. When the main
-%D OTR macro's were isolated in modules and when Kluwer
-%D Academic Publishers needed more advanced footnote support,
-%D this module became part of the OTR modules. As a result this
-%D module is no longer generic.
+%D OTR macro's were isolated in modules and column sets were
+%D introduced, this module became part of the OTR modules. As
+%D a result this module is no longer generic. It also needs
+%D an overhaul.
\unprotect
@@ -38,6 +38,12 @@
\let\OTRMULflushsavedfloats \relax
\newtoks \OTRMULoutput
+
+\def\OTRMULgotonextpage
+ {\ejectpage}
+
+\def\OTRMULgotonextpageX % will become obsolete
+ {\superejectpage}
% check \count<insert> multiplications
@@ -189,10 +195,10 @@
% %D In fact, the column height and width are set by means of
% %D two macro's. One can change their meaning if needed:
%
-% \def\setcolumntextheight%
+% \def\setcolumntextheight
% {\def\columntextheight{\teksthoogte}}
%
-% \def\setcolumntextwidth%
+% \def\setcolumntextwidth
% {\def\columntextwidth{\zetbreedte}}
%D Both macros are redefined in \CONTEXT\ when backgrounds
@@ -207,21 +213,20 @@
\newdimen\columnwidth
\newdimen\gutterwidth
-\def\determinecolumnwidth%
+\def\determinecolumnwidth
{\bgroup
- \setbox\scratchbox=\hbox
+ \setbox\scratchbox\hbox
{\setcolumnhsize
- \global\columnwidth=\usercolumnwidth
- \global\gutterwidth=\intercolumnwidth}%
+ \global\columnwidth\usercolumnwidth
+ \global\gutterwidth\intercolumnwidth}%
\egroup}
%D Going to a new columns is done by means of a
%D \type{\ejectcolumn}. The following definition does not
%D always work.
-\def\ejectcolumn%
- {\goodbreak
- \showmessage{\m!columns}{2}{}}
+\def\ejectcolumn
+ {\goodbreak\showmessage\m!columns2\empty}
%D The next macro should never be called so let's deal with it.
%D There were several solutions to these kind of errors. First
@@ -246,58 +251,127 @@
%D routines, every (although seldom) warning gives me the
%D creeps!
-\def\balancingerror%
- {\showmessage{\m!columns}{3}{}%
+\def\balancingerror
+ {\showmessage\m!columns3\empty
\finaloutput\unvbox\normalpagebox}
-\def\OTRMULsometopsfloat{\showmessage{\m!columns}{4}{}\someherefloat}
-\def\OTRMULsomebotsfloat{\showmessage{\m!columns}{5}{}\someherefloat}
+\def\OTRMULsometopsfloat{\showmessage\m!columns4\empty \someherefloat}
+\def\OTRMULsomebotsfloat{\showmessage\m!columns5\empty \someherefloat}
\def\OTRMULsomeherefloat{\OTRONEsomeherefloat}
%D The local column width is available in the dimension
%D register \type{\localcolumnwidth}, which is calculated as:
-\def\setcolumnhsize% beware, this one is available for use in macros
- {\setbox0=\hbox
- {\parindent\!!zeropoint\betweencolumns}%
- \intercolumnwidth=\wd0
- \localcolumnwidth=\columntextwidth
- \advance\localcolumnwidth by -\leftskip
- \advance\localcolumnwidth by -\rightskip
- \advance\localcolumnwidth by -\nofcolumns\intercolumnwidth
- \advance\localcolumnwidth by \intercolumnwidth
- \divide\localcolumnwidth by \nofcolumns
+\def\setcolumnhsize % beware, this one is available for use in macros
+ {\setbox0\hbox
+ {\parindent\zeropoint\betweencolumns}%
+ \intercolumnwidth\wd0
+ \localcolumnwidth\columntextwidth
+ \advance\localcolumnwidth -\leftskip
+ \advance\localcolumnwidth -\rightskip
+ % new
+ \advance\localcolumnwidth -\colleftskip
+ \advance\localcolumnwidth -\colrightskip
+ %
+ \advance\localcolumnwidth -\nofcolumns\intercolumnwidth
+ \advance\localcolumnwidth \intercolumnwidth
+ \divide\localcolumnwidth \nofcolumns
\dimen0=\columntextoffset
- \multiply\dimen0 by 2
- \advance\localcolumnwidth by -\dimen0
- \usercolumnwidth=\localcolumnwidth
- \hsize=\localcolumnwidth} % we don't do it \global
+ \multiply\dimen0 2
+ \advance\localcolumnwidth -\dimen0
+ \usercolumnwidth\localcolumnwidth
+ \hsize\localcolumnwidth} % we don't do it \global
+
+%D Torture test:
+%D
+%D \startbuffer
+%D \startbuffer[b]
+%D \startkolommen
+%D \input tufte
+%D \stopkolommen
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startsmaller
+%D \input tufte
+%D \stopsmaller
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startkolommen \startsmaller
+%D \input tufte
+%D \stopsmaller \stopkolommen
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startsmaller \startkolommen
+%D \input tufte
+%D \stopkolommen \stopsmaller
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startkolommen \startsmaller[left]
+%D \input tufte
+%D \stopsmaller \stopkolommen
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startsmaller[left] \startkolommen
+%D \input tufte
+%D \stopkolommen \stopsmaller
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startsmaller \startkolommen \startsmaller
+%D \input tufte
+%D \stopsmaller\stopkolommen \stopsmaller
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D
+%D \startbuffer[b]
+%D \startsmaller[left] \startkolommen \startsmaller
+%D \input tufte
+%D \stopsmaller\stopkolommen \stopsmaller
+%D \stopbuffer
+%D \typebuffer[b] \haalbuffer[b]
+%D \stopbuffer
+%D
+%D \start
+%D \def\postprocesscolumnline#1{\ruledhbox{\strut\box#1}\hss}
+%D \haalbuffer
+%D \stop
%D One should be aware that when font related dimensions are
%D used in typesetting the in||between material, these
%D dimensions are influenced by bodyfont switches inside
%D multi||column mode.
-\def\setcolumnvsize%
- {%\global\vsize=\columntextheight
- \global\vsize=-\columntextoffset
- \global\multiply\vsize by 2
- \global\advance\vsize by \columntextheight
+\def\setcolumnvsize
+ {%\global\vsize\columntextheight
+ \global\vsize-\columntextoffset
+ \global\multiply\vsize 2
+ \global\advance\vsize \columntextheight
\ifdim\precolumnboxheight>\zeropoint
- \global\advance\vsize by -\precolumnboxheight
+ \global\advance\vsize -\precolumnboxheight
\fi
%\getinsertionheights\to\dimen0\\%
- %\global\advance\vsize by -\dimen0
+ %\global\advance\vsize -\dimen0
\settotalinsertionheight
\global\advance\vsize -\totalinsertionheight
%%%\ifgridsnapping % evt altijd, nog testen, testing now, see columned tocs
\getnoflines\vsize
- \vsize=\noflines\openlineheight
- \advance\vsize by .5\openlineheight % collect enough data
+ \vsize\noflines\openlineheight
+ \advance\vsize .5\openlineheight % collect enough data
%%%\fi
- \global\vsize=\nofcolumns\vsize
- \global\pagegoal=\vsize} % let's do it only here
+ \global\vsize\nofcolumns\vsize
+ \global\pagegoal\vsize} % let's do it only here
%D It really starts here. After some checks and initializations
%D we change the output routine to continous multi||column
@@ -316,60 +390,68 @@
%D Watch the trick with the \type{\vbox}. This way we get the
%D right interlining and white space.
-\def\beginmulticolumns%
+\def\beginmulticolumns
{\par
\flushnotes
\xdef\precolumndepth{\the\prevdepth}%
\begingroup
+ % new
+ \leftskip1\leftskip
+ \rightskip1\rightskip
+ \edef\colleftskip {\the\leftskip}%
+ \edef\colrightskip{\the\rightskip}%
+ \leftskip\zeropoint
+ \rightskip\zeropoint
+ %
\dontshowcomposition
%\setcolumntextwidth\relax
%\setcolumntextheight\relax
- \widowpenalty=0 % is gewoon beter
- \clubpenalty=0 % zeker bij grids
+ \widowpenalty\zerocount % is gewoon beter
+ \clubpenalty \zerocount % zeker bij grids
\ifsomefloatwaiting
- \showmessage{\m!columns}{6}{\the\savednoffloats}%
- \global\setbox\savedfloatlist=\box\floatlist
+ \showmessage\m!columns6{\the\savednoffloats}%
+ \global\setbox\savedfloatlist\box\floatlist
\xdef\restoresavedfloats%
- {\global\savednoffloats=\the\savednoffloats
- \global\setbox\floatlist=\box\savedfloatlist
+ {\global\savednoffloats\the\savednoffloats
+ \global\setbox\floatlist\box\savedfloatlist
\global\noexpand\somefloatwaitingtrue}%
- \global\savednoffloats=0
+ \global\savednoffloats\zerocount
\global\somefloatwaitingfalse
\else
- \global\let\restoresavedfloats=\relax
+ \global\let\restoresavedfloats\relax
\fi
- \dimen0=\pagetotal
- \advance\dimen0 by \parskip
- \advance\dimen0 by \openlineheight
+ \dimen0\pagetotal
+ \advance\dimen0 \parskip
+ \advance\dimen0 \openlineheight
\ifdim\dimen0<\pagegoal
\allowbreak
\else
\break % Sometimes fails
\fi
- \appendtoks\topskip=1\topskip\to\everybodyfont
+ \appendtoks\topskip1\topskip\to\everybodyfont
\the\everybodyfont
\initializecolumns\nofcolumns
- \hangafter=0
- \hangindent=\!!zeropoint
- \everypar{}%
+ \hangafter\zerocount
+ \hangindent\zeropoint
+ \everypar\emptytoks
\ifdim\pagetotal=\zeropoint \else
\vbox{\forgetall\strut}%
\vskip-\openlineheight
\fi
- \global\savedpagetotal=\pagetotal
- \global\singlecolumnout=\output
-% \global\output={\global\setbox\precolumnbox=\vbox{\unvbox\normalpagebox}}%
-\global\output={\global\setbox\precolumnbox=\vbox{\dotopinsertions\unvbox\normalpagebox}}%
+ \global\savedpagetotal\pagetotal
+ \global\singlecolumnout\output
+ %\global\output{\global\setbox\precolumnbox\vbox{\unvbox\normalpagebox}}%
+ \global\output{\global\setbox\precolumnbox\vbox{\dotopinsertions\unvbox\normalpagebox}}%
\eject % no \holdinginserts=1, can make footnote disappear !
- \global\precolumnboxheight=\ht\precolumnbox
- \global\output={\continuousmulticolumnsout}%
+ \global\precolumnboxheight\ht\precolumnbox
+ \global\output{\continuousmulticolumnsout}%
\setcolumnfloats
\dohandleallcolumns
- {\global\setbox\currenttopcolumnbox=\box\voidb@x}%
+ {\global\setbox\currenttopcolumnbox\box\voidb@x}%
\checkbegincolumnfootnotes
-\activateotr{MUL}{ONE}% todo ! ! ! !
- \let\sethsize=\setcolumnhsize
- \let\setvsize=\setcolumnvsize
+ \activateotr{MUL}{ONE}% todo ! ! ! !
+ \let\sethsize\setcolumnhsize
+ \let\setvsize\setcolumnvsize
\sethsize
\setvsize
\showcomposition}
@@ -389,7 +471,7 @@
%D e.g. when there is no text given between \type{\begin..}
%D and \type{\end..}. The \type{\par} is needed!
-\def\endmulticolumns%
+\def\endmulticolumns
{%\par
\vskip\lineheight\vskip-\lineheight % take footnotes into account
\dontshowcomposition
@@ -398,22 +480,22 @@
\flushnotes % before start of columns
\par
\ifbalancecolumns
- \global\output={\continuousmulticolumnsout}%
+ \global\output{\continuousmulticolumnsout}%
\goodbreak
- \global\output={\balancedmulticolumnsout}%
+ \global\output{\balancedmulticolumnsout}%
\else
\goodbreak
\fi
\eject % the prevdepth is important, try e.g. toclist in
- \prevdepth\!!zeropoint % columns before some noncolumned text text
- \global\output=\singlecolumnout
-\global\output={\the\mainoutput}% % % % % todo
+ \prevdepth\zeropoint % columns before some noncolumned text text
+ \global\output\singlecolumnout
+ \global\output{\the\mainoutput}% % % % % todo
\ifvoid\precolumnbox\else
\unvbox\precolumnbox
\fi
- \global\precolumnboxheight=\!!zeropoint
+ \global\precolumnboxheight\zeropoint
\endgroup % here
- \nofcolumns=1
+ \nofcolumns\plusone
\setvsize % the outer one!
\checkendcolumnfootnotes
\dosomebreak\allowbreak
@@ -456,14 +538,14 @@
%D {\maxcolumndepth} when generating material between columns
%D as well as postprocessing column lines.
-\let\maxcolumnheight=\!!zeropoint
-\let\maxcolumndepth =\!!zeropoint
+\let\maxcolumnheight=\zeropoint
+\let\maxcolumndepth =\zeropoint
\newbox\columnpagebox
-\def\setmaxcolumndimensions%
- {\let\maxcolumnheight=\!!zeropoint
- \let\maxcolumndepth =\!!zeropoint
+\def\setmaxcolumndimensions
+ {\let\maxcolumnheight\!!zeropoint
+ \let\maxcolumndepth \!!zeropoint
\dohandleallcolumns
{\ifdim\ht\currentcolumnbox>\maxcolumnheight
\edef\maxcolumnheight{\the\ht\currentcolumnbox}%
@@ -472,7 +554,7 @@
\edef\maxcolumndepth{\the\dp\currentcolumnbox}%
\fi}}
-\def\flushcolumnedpage%
+\def\flushcolumnedpage
{\bgroup
\forgetall
\setmulticolumnsout
@@ -480,17 +562,18 @@
\setmaxcolumndimensions
\postprocesscolumns
\dohandleallcolumns % \hbox i.v.m. \showcomposition
- {\global\setbox\currentcolumnbox=\hbox to \localcolumnwidth
+ {\global\setbox\currentcolumnbox\hbox to \localcolumnwidth
{\box\currentcolumnbox
- \global\wd\currentcolumnbox=\localcolumnwidth
+ \global\wd\currentcolumnbox\localcolumnwidth
\ifheightencolumns
- \global\ht\currentcolumnbox=\fixedcolumnheight
+ \global\ht\currentcolumnbox\fixedcolumnheight
\fi}}%
\setmaxcolumndimensions
\overlaycolumnfootnotes
- \setbox\columnpagebox=\vbox
+ \setbox\columnpagebox\vbox
{\hbox to \finalcolumntextwidth
- {\ifreversecolumns
+ {\hskip\colleftskip\relax % new, \relax needed
+ \ifreversecolumns
\@EA\dohandlerevcolumns
\else
\@EA\dohandleallcolumns
@@ -499,53 +582,58 @@
{\ifx\finishcolumnbox\relax\else\strut\fi
\box\currentcolumnbox}}%
\hfil}%
- \unskip}}%
- \scratchdimen=\!!zeropoint
+ \unskip
+ \hskip\colrightskip}}% new
+ \scratchdimen\zeropoint
\dohandleallcolumns
{\ifdim-\ht\currenttopcolumnbox<\scratchdimen
- \scratchdimen=-\ht\currenttopcolumnbox
+ \scratchdimen-\ht\currenttopcolumnbox
\fi
- \global\setbox\currenttopcolumnbox=\box\voidb@x}%
- \advance\scratchdimen by \ht\columnpagebox
- \setbox\scratchbox=\hbox to \columntextwidth
+ \global\setbox\currenttopcolumnbox\box\voidb@x}%
+ \advance\scratchdimen \ht\columnpagebox
+ \setbox\scratchbox\hbox to \columntextwidth
{\vrule
- \!!width\!!zeropoint
+ \!!width\zeropoint
\!!height\scratchdimen
\!!depth\dp\columnpagebox
- \dostepwiserecurse{2}{\nofcolumns}{1}{\hfil\betweencolumns}\hfil}%
- \setbox\columnpagebox=\hbox
+ \dostepwiserecurse2\nofcolumns1{\hfil\betweencolumns}\hfil}%
+ \setbox\columnpagebox\hbox
{\box\columnpagebox
\hskip-\columntextwidth
\restoretextcolor{\box\scratchbox}}%
\postprocesscolumnpagebox % new, acts upon \box\columnpagebox
- \ifvoid\precolumnbox \else
- \ifgridsnapping % do you believe this junk?
- \scratchdimen=\savedpagetotal
- \advance\scratchdimen by -\ht\precolumnbox
- \advance\scratchdimen by -\dp\precolumnbox
- \advance\scratchdimen by -\topskip
- \box\precolumnbox
- \kern\scratchdimen
+ \ifvoid\precolumnbox
+ \else
+ % next some incredible crappy code
+ \ifgridsnapping
+ % somehow this junk fails in pascal
+ \scratchdimen\savedpagetotal
+ \advance\scratchdimen -\ht\precolumnbox
+ \advance\scratchdimen -\dp\precolumnbox
+ \advance\scratchdimen -\topskip
+ \box\precolumnbox
+ \kern\scratchdimen
\else
\unvbox\precolumnbox
\fi
\fi
- \global\precolumnboxheight=\!!zeropoint
+ \global\precolumnboxheight\zeropoint
\setvsize
\dosomebreak\nobreak
-% wrong ! ! ! ! !
-% \ifgridsnapping \else
-% \scratchdimen=\topskip
-% \advance\scratchdimen by -\openstrutheight
-% \nointerlineskip
-% \vskip-\scratchdimen
-% \fi
+ % wrong, but keep it as a reminder
+ % \ifgridsnapping \else
+ % \scratchdimen\topskip
+ % \advance\scratchdimen -\openstrutheight
+ % \nointerlineskip
+ % \vskip-\scratchdimen
+ % \fi
+ % so that we don't add it again
\prevdepth\openstrutdepth
\nointerlineskip
- \dp\columnpagebox=\!!zeropoint
- \global\finalcolumnheights=\ht\columnpagebox
+ \dp\columnpagebox\zeropoint
+ \global\finalcolumnheights\ht\columnpagebox
\getnoflines\finalcolumnheights
- \global\finalcolumnlines=\noflines
+ \global\finalcolumnlines\noflines
\box\columnpagebox
\egroup}
@@ -596,31 +684,32 @@
%D This feature is implemented using the reshape macros
%D presented in \type{supp-box}.
-\def\postprocesscolumns%
+\def\postprocesscolumns
{\ifx\postprocesscolumnline\undefined \else
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vtop
+ {\global\setbox\currentcolumnbox\vtop
{\beginofshapebox
\unvbox\currentcolumnbox
\unskip\unskip
\endofshapebox
\reshapebox
- {\dimen0=\ht\shapebox
- \dimen2=\dp\shapebox
- \setbox\shapebox=\hbox to \hsize
+ {\dimen0\ht\shapebox
+ \dimen2\dp\shapebox
+ \setbox\shapebox\hbox to \hsize
{\postprocesscolumnline\shapebox}%
- \ht\shapebox=\dimen0
- \dp\shapebox=\dimen2
+ \ht\shapebox\dimen0
+ \dp\shapebox\dimen2
\box\shapebox}%
\flushshapebox
- \everypar{}\parskip\!!zeropoint % = \forgetall
+ \everypar\emptytoks
+ \parskip\zeropoint % = \forgetall
\strut\endgraf
\vskip-\lineheight
\vfil}}%
\fi
\ifx\postprocesscolumnbox\undefined \else
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\hbox
+ {\global\setbox\currentcolumnbox\hbox
{\postprocesscolumnbox\currentcolumnbox}}
\fi}
@@ -652,14 +741,15 @@
\def\splitcolumn#1from \box#2to \dimen#3 top \box#4%
{\bgroup
\ifdim\ht#4>\zeropoint
- \dimen0=\dimen#3\relax
- \dimen2=\dimen0
- \advance\dimen0 by -\ht#4%
+ \dimen0\dimen#3\relax
+ \dimen2\dimen0
+ \advance\dimen0 -\ht#4%
\columnfootnotecorrection{#1}{\dimen0}%
- \setbox0=\vsplit#2 to \dimen0
- \global\setbox#1=\vbox to \dimen2
+ \setbox0\vsplit#2 to \dimen0
+ \global\setbox#1\vbox to \dimen2
{\ifgridsnapping
- \dimen0=-\openstrutheight\advance\dimen0 by \topskip
+ \dimen0-\openstrutheight
+ \advance\dimen0 \topskip
\vskip\dimen0\copy#4\vskip-\dimen0
\else
\unvcopy#4%
@@ -669,13 +759,13 @@
\else
\ifcleverfootnotes
\columnfootnotecorrection{#1}{\dimen#3}%
- \setbox0=\vsplit#2 to \dimen#3%
- \global\setbox#1=\vbox to \dimen#3%
+ \setbox0\vsplit#2 to \dimen#3%
+ \global\setbox#1\vbox to \dimen#3%
{\fuzzysnappedbox\unvbox0
\fakecolumnfootnotes{#1}}%
\else
- \global\setbox#1=\vsplit#2 to \dimen#3%
- \global\setbox#1=\vbox
+ \global\setbox#1\vsplit#2 to \dimen#3%
+ \global\setbox#1\vbox
{\fuzzysnappedbox\unvbox{#1}}% % or \box ?
\fi
\fi
@@ -688,7 +778,7 @@
{\splitcolumn\firstcolumnbox from \box#1 to \dimen#2 top \box\firsttopcolumnbox}
\def\splitlastcolumn from \box#1to \dimen#2%
- {\global\setbox\lastcolumnbox=\vbox
+ {\global\setbox\lastcolumnbox\vbox
{\unvcopy\lasttopcolumnbox
\fuzzysnappedbox\unvbox{#1}%
\fakecolumnfootnotes\lastcolumnbox}}
@@ -712,24 +802,24 @@
\fi
\fi}
-\def\overlaycolumnfootnotes% VERVANGEN !!!
+\def\overlaycolumnfootnotes % VERVANGEN !!!
{\relax
\ifcleverfootnotes
\checknotepresence
\ifnotespresent
\bgroup
- \scratchdimen=\ht\firstcolumnbox
- \advance\scratchdimen by -\openstrutdepth % \dp\strutbox
+ \scratchdimen\ht\firstcolumnbox
+ \advance\scratchdimen -\openstrutdepth % \dp\strutbox
\getnoflines\scratchdimen
- \advance\noflines by -2
- \scratchdimen=\noflines\lineheight
- \advance\scratchdimen by \topskip
- \setbox0=\hbox
+ \advance\noflines -2
+ \scratchdimen\noflines\lineheight
+ \advance\scratchdimen \topskip
+ \setbox0\hbox
{\lower\scratchdimen\vbox{\placefootnoteinserts}}%
\ht0=\openstrutheight % \ht\strutbox
\dp0=\openstrutdepth % \dp\strutbox
- \scratchdimen=\ht\lastcolumnbox
- \global\setbox\lastcolumnbox=\vbox to \scratchdimen
+ \scratchdimen\ht\lastcolumnbox
+ \global\setbox\lastcolumnbox\vbox to \scratchdimen
{\box\lastcolumnbox
\vskip-\scratchdimen
\restoretextcolor{\box0}}%
@@ -743,40 +833,40 @@
%D mode was entered, or floats that migrate to next columns.
%D Flushing floats is a delicate process.
-\def\continuousmulticolumnsout%
+\def\continuousmulticolumnsout
{\bgroup
\forgetall
\setmulticolumnsout
\dontshowcomposition
\dimen0=\columntextheight
- \advance\dimen0 by -\precolumnboxheight
+ \advance\dimen0 -\precolumnboxheight
\settotalinsertionheight
- \advance\dimen0 by -\totalinsertionheight
+ \advance\dimen0 -\totalinsertionheight
\ifgridsnapping % evt altijd, nog testen
\getnoflines{\dimen0}
\dimen0=\noflines\openlineheight
\fi
\dohandleallcolumns
{\splitcurrentcolumn from \box\normalpagebox to \dimen0}
- \setbox\restofpage=\vbox{\unvbox\normalpagebox}%
+ \setbox\restofpage\vbox{\unvbox\normalpagebox}%
\ifinheritcolumns
\ifr@ggedbottom % vreemd
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vbox to \ht\firstcolumnbox
- {\dimen0=\dp\currentcolumnbox
+ {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
+ {\dimen0\dp\currentcolumnbox
\unvbox\currentcolumnbox
\vskip-\dimen0
\vskip\openstrutdepth % \dp\strutbox
\prevdepth\openstrutdepth % \dp\strutbox
\vfill}}%
\ifbottomnotes \else
- \dimen0=\ht\firstcolumnbox
+ \dimen0\ht\firstcolumnbox
\fi
\fi
\ifn@rmalbottom
- \advance\dimen0 by \maxdepth
+ \advance\dimen0 \maxdepth
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vbox to \dimen0
+ {\global\setbox\currentcolumnbox\vbox to \dimen0
{\unvbox\currentcolumnbox}}%
\fi
\ifb@selinebottom
@@ -784,7 +874,7 @@
\fi
\else
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vbox to \dimen0
+ {\global\setbox\currentcolumnbox\vbox to \dimen0
{\ifstretchcolumns
\unvbox\currentcolumnbox
\else
@@ -792,9 +882,9 @@
\vfill
\fi}}%
\dohandleallcolumns
- {\global\ht\currentcolumnbox=\dimen0}%
+ {\global\ht\currentcolumnbox\dimen0}%
\fi
- \setbox\precolumnbox=\vbox{\flushcolumnedpage}%
+ \setbox\precolumnbox\vbox{\flushcolumnedpage}%
\finaloutput\box\precolumnbox
\sethsize
\setvsize
@@ -811,22 +901,22 @@
%D \type{\box4} garantees a more robust check when skips are
%D used.
-\def\balancedmulticolumnsout%
+\def\balancedmulticolumnsout
{\bgroup
\setmulticolumnsout
\dontshowcomposition
- \widowpenalty=0
- \setbox0=\vbox{\unvbox\normalpagebox}%
+ \widowpenalty\zerocount
+ \setbox0\vbox{\unvbox\normalpagebox}%
\ifdim\ht0>\openlineheight % at least one line
\ifnum\minbalancetoplines<2 % balance anyway
\donetrue
\else % check criterium to available lines
\getnoflines{\ht0}%
- \divide\noflines by \nofcolumns \relax
+ \divide\noflines \nofcolumns \relax
\ifnum\noflines<\minbalancetoplines \relax
- \dimen0=\ht0
- \advance\dimen0 by \ht\firsttopcolumnbox
- \advance\dimen0 by \openlineheight \relax % let's play safe
+ \dimen0\ht0
+ \advance\dimen0 \ht\firsttopcolumnbox
+ \advance\dimen0 \openlineheight \relax % let's play safe
\ifdim\dimen0>\columntextheight % column exceeding text height
\donetrue
\else % it seems to fit
@@ -841,40 +931,40 @@
\fi
\ifdone % start balancing
%\ifdim\ht0>\openlineheight
- \dimen0=\ht0
- \advance\dimen0 by \topskip
- \advance\dimen0 by -\baselineskip
+ \dimen0\ht0
+ \advance\dimen0 \topskip
+ \advance\dimen0 -\baselineskip
\dohandleallcolumns
- {\advance\dimen0 by \ht\currenttopcolumnbox}%
- \divide\dimen0 by \nofcolumns
- \vbadness=\!!tenthousand\relax
- \count255=0
+ {\advance\dimen0 \ht\currenttopcolumnbox}%
+ \divide\dimen0 \nofcolumns
+ \vbadness\!!tenthousand\relax
+ \count255=\zerocount
\bgroup
\ifgridsnapping
- \dimen2=\lineheight
+ \dimen2\lineheight
\else
\dimen2=\!!onepoint % RUBISH
\dimen2=\spacingfactor\dimen2
\fi
\loop
- \advance\count255 by 1
- \global\setbox\restofpage=\copy0\relax
+ \advance\count255 \plusone
+ \global\setbox\restofpage\copy0\relax
\splitfirstcolumn from \box\restofpage to \dimen0
\dohandlemidcolumns
{\splitcurrentcolumn from \box\restofpage to \dimen0}%
\splitlastcolumn from \box\restofpage to \dimen0
- \setbox2=\vbox{\unvcopy\firstcolumnbox}%
- \dimen4=\!!zeropoint
+ \setbox2\vbox{\unvcopy\firstcolumnbox}%
+ \dimen4\zeropoint
\dohandleallcolumns
- {\setbox4=\vbox
+ {\setbox4\vbox
{\unvcopy\currentcolumnbox
%rather new, test this on pdftex-z.tex
\unpenalty\unskip\unpenalty\unskip}% maybe better in main splitter
%\writestatus{balance}{\the\currentcolumnbox: \the\ht4}%
- \dimen6=\ht4
+ \dimen6\ht4
\ifdim\dimen6>\dimen4 \dimen4=\dimen6 \fi}%
-\advance\dimen4 by -.0005pt % get rid of accurracy problem, pretty new
- \ifnum\count255>100\relax
+ \advance\dimen4 -.0005pt % get rid of accurracy problem, pretty new
+ \ifnum\count255>100
\donefalse
\else\ifdim\dimen4>\ht2
\donetrue
@@ -882,35 +972,35 @@
\donefalse
\fi\fi
\ifdone
- \advance\dimen0 by \dimen2\relax
+ \advance\dimen0 \dimen2\relax
\repeat
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vbox{\unvcopy\currentcolumnbox}}% NIEUW
+ {\global\setbox\currentcolumnbox\vbox{\unvcopy\currentcolumnbox}}% NIEUW
\ifnum\count255>100\relax
- \showmessage{\m!columns}{7}{}%
+ \showmessage\m!columns7\empty
\else
- \showmessage{\m!columns}{8}{\the\count255\space}%
+ \showmessage\m!columns8{\the\count255\space}%
\fi
\egroup
\ifinheritcolumns
- \dimen0=\ht\firstcolumnbox
- \dimen2=\ht\firstcolumnbox
- \advance\dimen2 by -\openlineheight
+ \dimen0\ht\firstcolumnbox
+ \dimen2\ht\firstcolumnbox
+ \advance\dimen2 -\openlineheight
\dohandleallcolumns
- {\dimen4=\ht\currentcolumnbox
+ {\dimen4\ht\currentcolumnbox
\dimen6=10\openlineheight
- \global\setbox\currentcolumnbox=\vbox to \dimen0
+ \global\setbox\currentcolumnbox\vbox to \dimen0
{\unvbox\currentcolumnbox
\ifdim\dimen4>\dimen6
\ifdim\dimen4<\dimen0
\ifdim\dimen4>\dimen2
- \vskip\!!zeropoint % !!
+ \vskip\zeropoint % !!
\else
\vskip\openlineheight
\vfill
\fi
\else
- \vskip\!!zeropoint
+ \vskip\zeropoint
\fi
\else
\vskip\openlineheight
@@ -919,20 +1009,20 @@
\else
\bgroup
\ifstretchcolumns
- \dimen0=\ht\firstcolumnbox
+ \dimen0\ht\firstcolumnbox
\dimen2=\bottomtolerance\ht\firstcolumnbox
- \setbox0=\vbox{\unvcopy\lastcolumnbox}%
- \advance\dimen0 by -\ht0\relax
- \advance\dimen0 by -\dp0\relax
+ \setbox0\vbox{\unvcopy\lastcolumnbox}%
+ \advance\dimen0 -\ht0\relax
+ \advance\dimen0 -\dp0\relax
\ifdim\dimen0>\openlineheight\relax
\ifdim\dimen0>\dimen2\relax
% \stretchcolumnsfalse % beter goed slecht dan slecht goed
- \showmessage{\m!columns}{9}{}%
+ \showmessage\m!columns9\empty
\fi
\fi
\fi
\dohandleallcolumns
- {\global\setbox\currentcolumnbox=\vbox to \ht\firstcolumnbox
+ {\global\setbox\currentcolumnbox\vbox to \ht\firstcolumnbox
{\ifstretchcolumns
\unvbox\currentcolumnbox
\else
@@ -942,10 +1032,10 @@
\egroup
\fi
\else
- \showmessage{\m!columns}{10}{}%
- \global\setbox\firstcolumnbox=\vbox{\unvbox0}%
+ \showmessage\m!columns{10}\empty
+ \global\setbox\firstcolumnbox\vbox{\unvbox0}%
\fi
- \global\output={\balancingerror}%
+ \global\output{\balancingerror}%
\b@selinebottomtrue % forces depth in separation rule
\flushcolumnedpage
\allowbreak
@@ -997,42 +1087,42 @@
%D When all those floats are flushed, we switch to the local
%D flushing routine.
-\def\setcolumnfloats%
+\def\setcolumnfloats
{\xdef\globalsavednoffloats{\the\savednoffloats}%
- \ifnum\globalsavednoffloats>0
+ \ifnum\globalsavednoffloats>\zerocount
\setglobalcolumnfloats
\else
\setlocalcolumnfloats
\fi}
-\def\setglobalcolumnfloats%
+\def\setglobalcolumnfloats
{\everypar\emptytoks
- \let\flushcolumnfloat=\relax
- %\let\doroomfloat=\relax
- \let\docheckiffloatfits=\relax
- \let\flushcolumnfloats=\noflushcolumnfloats}
+ \let\flushcolumnfloat\relax
+ %\let\doroomfloat\relax
+ \let\docheckiffloatfits\relax
+ \let\flushcolumnfloats\noflushcolumnfloats}
-\def\setlocalcolumnfloats%
- {\everypar=
+\def\setlocalcolumnfloats
+ {\everypar
{\flushnotes\flushcolumnfloat\flushmargincontents\checkindentation}%
- \let\flushcolumnfloat=\doflushcolumnfloat
- %\let\doroomfloat=\docolumnroomfloat
- \let\docheckiffloatfits=\docolumnroomfloat
- \let\flushcolumnfloats=\doflushcolumnfloats
+ \let\flushcolumnfloat\doflushcolumnfloat
+ %\let\doroomfloat\docolumnroomfloat
+ \let\docheckiffloatfits\docolumnroomfloat
+ \let\flushcolumnfloats\doflushcolumnfloats
\let\doflushfloats\doflushcolumnfloats % new
- \let\dosetbothinserts=\relax
- \let\dotopinsertions=\relax}
+ \let\dosetbothinserts\relax
+ \let\dotopinsertions\relax}
-\def\noflushcolumnfloats%
+\def\noflushcolumnfloats
{\bgroup
\xdef\localsavednoffloats{\the\savednoffloats}%
- \global\savednoffloats=\globalsavednoffloats
+ \global\savednoffloats\globalsavednoffloats
\dotopinsertions
\xdef\globalsavenoffloats{\the\savednoffloats}%
- \ifnum\globalsavednoffloats=0
+ \ifnum\globalsavednoffloats=\zerocount
\setlocalcolumnfloats
\fi
- \global\savednoffloats=\localsavednoffloats
+ \global\savednoffloats\localsavednoffloats
\egroup}
%D We need to calculate the amount of free space in a columns.
@@ -1046,20 +1136,20 @@
\def\getcolumnstatus\column#1\total#2\goal#3\\%
{\dimen0=\ifdim\pagegoal<\maxdimen \pagetotal \else \zeropoint \fi
- \dimen2=\!!zeropoint
- \count255=0
+ \dimen2=\zeropoint
+ \count255=\zerocount
\dimen8=\columntextheight
- \advance\dimen8 by -\precolumnboxheight
- \def\dogetcolumnstatus%
- {\advance\count255 by 1
- \advance\dimen2 by \ht\currenttopcolumnbox
- \advance\dimen2 by \dp\currenttopcolumnbox
- \dimen4=\dimen2
- \advance\dimen4 by \dimen0
+ \advance\dimen8 -\precolumnboxheight
+ \def\dogetcolumnstatus
+ {\advance\count255 \plusone
+ \advance\dimen2 \ht\currenttopcolumnbox
+ \advance\dimen2 \dp\currenttopcolumnbox
+ \dimen4\dimen2
+ \advance\dimen4 \dimen0
\dimen6=\count255\dimen8
\ifdim\dimen4>\dimen6
\else
- \let\dogetcolumnstatus=\relax
+ \let\dogetcolumnstatus\relax
\fi}%
\dohandleallcolumns{\dogetcolumnstatus}%
\ifnum\count255=0 \count255=1 \fi
@@ -1071,14 +1161,14 @@
{\ifdim\pagegoal<\maxdimen
\bgroup
\dimen0=\columntextheight
- \advance\dimen0 by -\pagegoal
+ \advance\dimen0 -\pagegoal
\xdef\insertionheight{\the\dimen0}%
\egroup
\else
\global\let\insertionheight=\zeropoint
\fi}
-\def\docolumnroomfloat%
+\def\docolumnroomfloat
{\ifpostponecolumnfloats
\global\roomforfloatfalse
\else\ifnofloatpermitted
@@ -1086,17 +1176,17 @@
\else
\bgroup
\getcolumnstatus\column\count255\total\dimen0\goal\dimen2\\%
- \advance\dimen0 by 2\openlineheight % nog nodig ?
+ \advance\dimen0 2\openlineheight % nog nodig ?
%\ifnum\count255=\nofcolumns
% \getinsertionheight
% %\message{\insertionheight}\wait
- % \advance\dimen0 by \insertionheight
+ % \advance\dimen0 \insertionheight
%\fi
- \setbox\scratchbox=\vbox % tricky met objecten ?
+ \setbox\scratchbox\vbox % tricky met objecten ?
{\blanko[\@@bkvoorwit]
\snaptogrid\vbox{\copy\floatbox}}%
- \advance\dimen0 by \ht\scratchbox
- \advance\dimen0 by .5\lineheight % needed because goal a bit higher
+ \advance\dimen0 \ht\scratchbox
+ \advance\dimen0 .5\lineheight % needed because goal a bit higher
%\message{column: \the\count255; total: \the\dimen0; goal: \the\dimen2}\wait
\ifdim\dimen0>\dimen2
\global\roomforfloatfalse
@@ -1104,7 +1194,7 @@
\global\roomforfloattrue
\fi
\ifdim\wd\floatbox>\hsize
- \showmessage{\m!columns}{11}{}%
+ \showmessage\m!columns{11}\empty
\global\roomforfloatfalse
\fi
\egroup
@@ -1174,11 +1264,11 @@
% \egroup
% \fi\fi\fi\fi}
-\def\doflushcolumnfloat%
+\def\doflushcolumnfloat
{\ifpostponecolumnfloats\else\ifflushingcolumnfloats\ifprocessingverbatim\else\ifsomefloatwaiting
\bgroup
\forgetall
- \let\doflushcolumnfloat=\relax
+ \let\doflushcolumnfloat\relax
\getcolumnstatus\column\mofcolumns\total\dimen0\goal\dimen2\\%
\ifdim\dimen0>\zeropoint
\dogetfloat
@@ -1192,32 +1282,32 @@
\setbox2=\vbox
{\blanko[\@@bkvoorwit]
\snaptogrid\vbox{\copy\floatbox}}%
- \advance\dimen0 by \ht2
+ \advance\dimen0 \ht2
\ifdim\dimen0>\dimen2
\ifnum\mofcolumns<\nofcolumns
- \advance\mofcolumns by 1
+ \advance\mofcolumns \plusone
%% bug %% \edef\currenttopcolumnbox{\getvalue{\@@topcol\the\count255}}%
\ifdim\ht\currenttopcolumnbox=\zeropoint
- \global\setbox\currenttopcolumnbox=\vbox
+ \global\setbox\currenttopcolumnbox\vbox
{\snaptogrid\vbox{\copy\floatbox}
\witruimte % nodig ?
\blanko[\@@bknawit]}%
\dimen4=\ht\currenttopcolumnbox
- \advance\dimen4 by \dp\currenttopcolumnbox
- \global\advance\vsize by -\dimen4
- \advance\dimen4 by -\pagegoal
- \global\pagegoal=-\dimen4
- \showmessage{\m!columns}{12}{a}%
+ \advance\dimen4 \dp\currenttopcolumnbox
+ \global\advance\vsize -\dimen4
+ \advance\dimen4 -\pagegoal
+ \global\pagegoal-\dimen4
+ \showmessage\m!columns{12}a%
\else
- \showmessage{\m!columns}{12}{b}%
+ \showmessage\m!columns{12}b%
\doresavefloat
\fi
\else
- \showmessage{\m!columns}{12}{c}%
+ \showmessage\m!columns{12}c%
\doresavefloat
\fi
\else
- \ifhmode{\setbox0=\lastbox}\fi% waar is die er in geslopen
+ \ifhmode{\setbox0\lastbox}\fi% waar is die er in geslopen
\par
\ifdim\prevdepth<\zeropoint \else % anders bovenaan kolom witruimte
\nobreak
@@ -1246,18 +1336,18 @@
%D When handling lots of (small) floats spacing can get worse
%D because of lining out the columns.
-\def\doflushcolumnfloats%
+\def\doflushcolumnfloats
{\ifpostponecolumnfloats\else
\bgroup
\forgetall
\ifsomefloatwaiting
- \dimen8=\!!zeropoint
- \dimen4=\!!zeropoint
- \count0=0 % count0 can be used local
- \count2=\nofcolumns % count2 can be used local
+ \dimen8\zeropoint
+ \dimen4\zeropoint
+ \count0\zerocount % count0 can be used local
+ \count2\nofcolumns % count2 can be used local
\dohandleallcolumns
- {\ifnum\count0>0\relax % the wide one's reserved space
- \global\setbox\currenttopcolumnbox=\vbox
+ {\ifnum\count0>\zerocount % the wide one's reserved space
+ \global\setbox\currenttopcolumnbox\vbox
{\snaptogrid\vbox
{\copy\currenttopcolumnbox
\hbox{\vphantom{\copy\floatbox}}}
@@ -1269,23 +1359,23 @@
\global\setbox\floatbox=\hbox to \finalcolumntextwidth{\hss\box\floatbox\hss}%
\fi % otherwise the graphic may disappear
\ifdim\wd\floatbox>\hsize
- \dimen0=\wd\floatbox
- \advance\dimen0 by \intercolumnwidth
- \dimen2=\hsize
- \advance\dimen2 by \intercolumnwidth
- \advance\dimen0 by .5pt % hm, why 1
- \advance\dimen2 by .5pt % hm, why 2
- \divide\dimen0 by \dimen2
- \count0=\dimen0
- \advance\count0 by 1
+ \dimen0\wd\floatbox
+ \advance\dimen0 \intercolumnwidth
+ \dimen2\hsize
+ \advance\dimen2 \intercolumnwidth
+ \advance\dimen0 .5pt % hm, why 1
+ \advance\dimen2 .5pt % hm, why 2
+ \divide\dimen0 \dimen2
+ \count0\dimen0
+ \advance\count0 \plusone
\ifnum\count0>\count2
\doresavefloat
- \count0=0
+ \count0\zerocount
\else
\dimen0=\count0\hsize
- \advance\dimen0 by \count0\intercolumnwidth
- \advance\dimen0 by -\intercolumnwidth
- \global\setbox\floatbox=\hbox to \dimen0
+ \advance\dimen0 \count0\intercolumnwidth
+ \advance\dimen0 -\intercolumnwidth
+ \global\setbox\floatbox\hbox to \dimen0
%{\hss\hbox{\copy\floatbox}\hss}%
{\processaction[\@@bkplaats] % how easy to forget
[ \v!links=>\copy\floatbox\hss,
@@ -1293,30 +1383,30 @@
\s!default=>\hss\copy\floatbox\hss,
\s!unknown=>\hss\copy\floatbox\hss]}%
\fi
- \showmessage{\m!columns}{13}{}%
+ \showmessage\m!columns{13}\empty
\else
- % \showmessage{\m!columns}{13}{}%
+ % \showmessage\m!columns{13}\empty
\fi
\ifdim\ht\floatbox>\zeropoint\relax
- \global\setbox\currenttopcolumnbox=\vbox
+ \global\setbox\currenttopcolumnbox\vbox
{\snaptogrid\vbox
{\copy\currenttopcolumnbox
\copy\floatbox}
\witruimte % nodig ?
\blanko[\@@bknawit]}%
\fi
- \dimen6=\ht\currenttopcolumnbox
- \advance\dimen6 by \dp\currenttopcolumnbox
+ \dimen6\ht\currenttopcolumnbox
+ \advance\dimen6 \dp\currenttopcolumnbox
\fi
\ifdim\dimen4<\ht\currenttopcolumnbox
- \dimen4=\ht\currenttopcolumnbox
+ \dimen4\ht\currenttopcolumnbox
\fi
- \advance\dimen8 by \dimen6
- \advance\count2 by -1
- \advance\count0 by -1 }%
+ \advance\dimen8 \dimen6
+ \advance\count2 \minusone
+ \advance\count0 \minusone }%
\setvsize
- \global\advance\vsize by -\dimen8
- \global\pagegoal=\vsize
+ \global\advance\vsize -\dimen8
+ \global\pagegoal\vsize
\else
%\doflushfloats % does not snap!
\fi
@@ -1349,20 +1439,20 @@
\binnenkolommenfalse
-\def\stelkolommenin%
+\def\stelkolommenin
{\dodoubleargument\dostelkolommenin}
\def\stelkolommenin[#1]%
{\getparameters[\??kl][#1]%
- \nofcolumns=\@@kln\relax
+ \nofcolumns\@@kln\relax
\processaction
[\@@kllijn]
- [ \v!aan=>\let\betweencolumns=\linebetweencolumns,
- \v!uit=>\let\betweencolumns=\spacebetweencolumns,
- \s!default=>\let\betweencolumns=\spacebetweencolumns,
- \s!unknown=>\let\betweencolumns=\@@kllijn]}
+ [ \v!aan=>\let\betweencolumns\linebetweencolumns,
+ \v!uit=>\let\betweencolumns\spacebetweencolumns,
+ \s!default=>\let\betweencolumns\spacebetweencolumns,
+ \s!unknown=>\let\betweencolumns\@@kllijn]}
-\def\linebetweencolumns%
+\def\linebetweencolumns
{\bgroup
\startcolorpage
\ifdim\@@klafstand>\zeropoint
@@ -1370,7 +1460,7 @@
\else
\dimen0=\linewidth
\fi
- \advance\dimen0 by -\linewidth
+ \advance\dimen0 -\linewidth
\hskip.5\dimen0
\vrule
\!!width\linewidth
@@ -1379,16 +1469,16 @@
\stopcolorpage
\egroup}
-\def\spacebetweencolumns%
+\def\spacebetweencolumns
{\hskip\@@klafstand}
\presetlocalframed[\??kl]
-\def\backgroundfinishcolumnbox%
- {\doifinsetelse{\@@kloffset}{\v!geen,\v!overlay}
+\def\backgroundfinishcolumnbox
+ {\doifinsetelse\@@kloffset{\v!geen,\v!overlay}
{\let\@@kloffset\!!zeropoint}
- {\scratchdimen=\@@kloffset
- \advance\scratchdimen by -\@@kllijndikte
+ {\scratchdimen\@@kloffset
+ \advance\scratchdimen -\@@kllijndikte
\edef\@@kloffset{\the\scratchdimen}}%
\localframed
[\??kl]
@@ -1403,28 +1493,28 @@
\def\complexstartkolommen[#1]% %% \startkolommen
{\bgroup
- \let\stopkolommen=\egroup
+ \let\stopkolommen\egroup
\ifbinnenkolommen
\else
\stelkolommenin[#1]%
\ifnum\@@kln>1\relax
\witruimte
\begingroup
- \doif{\@@kloptie}{\v!achtergrond}
- {\let\finishcolumnbox=\backgroundfinishcolumnbox
- \let\columntextoffset=\@@kloffset}%
+ \doif\@@kloptie\v!achtergrond
+ {\let\finishcolumnbox\backgroundfinishcolumnbox
+ \let\columntextoffset\@@kloffset}%
\ifx\@@klcommando\empty\else
\let\postprocesscolumnline\@@klcommando
\fi
- \doifelsenothing{\@@klhoogte}
- {\heightencolumnsfalse}
- {\heightencolumnstrue}%
- \doifelse{\@@klrichting}{\v!rechts}
- {\reversecolumnsfalse}
- {\reversecolumnstrue}%
- \doifelse{\@@klbalanceren}{\v!ja}
- {\balancecolumnstrue}
- {\balancecolumnsfalse}%
+ \doifelsenothing\@@klhoogte
+ \heightencolumnsfalse
+ \heightencolumnstrue
+ \doifelse\@@klrichting\v!rechts
+ \reversecolumnsfalse
+ \reversecolumnstrue
+ \doifelse\@@klbalanceren\v!ja
+ \balancecolumnstrue
+ \balancecolumnsfalse
\processaction % ook nog: laatsteuitlijnen
[\@@kluitlijnen]
[ \v!ja=>\stretchcolumnstrue
@@ -1439,7 +1529,7 @@
%
\savecurrentblanko
\savecurrentwitruimte
- \def\restorecolumnsettings%
+ \def\restorecolumnsettings
{\boxmaxdepth\maxdimen % done elsewhere
\restorecurrentblanko
\restorecurrentwitruimte}%
@@ -1451,7 +1541,7 @@
\ifdim\tussenwit>\zeropoint\relax
\stelwitruimtein[\@@klblanko]%
\fi
- \def\stopkolommen%
+ \def\stopkolommen
{\endmulticolumns
\global\binnenkolommenfalse
\endgroup
@@ -1460,43 +1550,17 @@
\beginmulticolumns
\fi
\fi}
-
-%\def\kolom%
-% {\ifbinnenkolommen
-% \ejectcolumn
-% \fi}
-
-\def\preferredejectcolumn%
+
+\installcolumnbreakhandler {MUL} \v!voorkeur
{\goodbreak}
-% \def\forcedejectcolumn%
-% {\vfil
-% \penalty-200
-% \prevdepth=-1000pt % signals top of column to \blanko
-% \vfilneg}
-
-\def\forcedejectcolumn%
- {\par % todo: since
- {\testrulewidth\!!zeropoint\ruledvskip\teksthoogte} % we misuse a
- \penalty-200 % side effect
+\installcolumnbreakhandler {MUL} \v!ja
+ {\par % todo: since
+ {\testrulewidth\zeropoint\ruledvskip\teksthoogte} % we misuse a
+ \penalty-200 % side effect
\vskip-\teksthoogte
- \prevdepth=-1000pt} % signals top of column to \blanko
-
-\def\kolom%
- {\dosingleempty\dokolom}
-
-\def\dokolom[#1]%
- {\ifbinnenkolommen
- \iffirstargument
- \processaction
- [#1]
- [ \v!ja=>\forcedejectcolumn,
- \v!voorkeur=>\preferredejectcolumn]%
- \else
- \preferredejectcolumn
- \fi
- \fi}
-
+ \prevdepth-\thousandpoint} % signals top of column to \blanko
+
\stelkolommenin
[\c!n=2,
\c!nboven=1,
@@ -1515,17 +1579,17 @@
%D Undocumented and still under development.
-\def\startsimplecolumns%
+\def\startsimplecolumns
{\dosingleempty\dostartsimplecolumns}
\def\dostartsimplecolumns[#1]%
{\bgroup
\getparameters[\??kl][\c!breedte=\hsize,\c!afstand=1em,\c!n=2,#1]%
\setrigidcolumnhsize\@@klbreedte\@@klafstand\@@kln
- \setbox\scratchbox=\vbox\bgroup
+ \setbox\scratchbox\vbox\bgroup
\forgetall} % \blanko[\v!blokkeer]
-\def\stopsimplecolumns%
+\def\stopsimplecolumns
{\removebottomthings
\egroup
\rigidcolumnbalance\scratchbox