summaryrefslogtreecommitdiff
path: root/tex/context/base/page-ini.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/page-ini.tex')
-rw-r--r--tex/context/base/page-ini.tex76
1 files changed, 44 insertions, 32 deletions
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
index f43d38fbd..1574832f3 100644
--- a/tex/context/base/page-ini.tex
+++ b/tex/context/base/page-ini.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ filefile=page-ini,
+%D [ file=page-ini,
%D version=2000.10.20,
%D title=\CONTEXT\ Page Macros,
%D subtitle=Initializations,
@@ -1354,46 +1354,58 @@
\newif\ifpaginageblokkeerd \paginageblokkeerdfalse
-\chardef\testpagemethod=0
+\def\testpage {\dotripleempty\dotestpage[\plusone]}
+\def\testpageonly {\dotripleempty\dotestpage[\plustwo]}
-\def\testpage
- {\dodoubleempty\dotestpage}
+\chardef\testpagemethod=0 % todo: \testnewpage[method=,lines=,voffset=]
-\def\dotestpage[#1][#2]%
+\def\dotestpage[#1][#2][#3]%
{%\relax % needed before \if
\endgraf
- \ifpaginageblokkeerd \else \ifdim\pagegoal<\maxdimen
- \ifdim\pagetotal<\pagegoal % \relax
- \scratchdimen\lineheight
- \multiply\scratchdimen#1\relax
- \advance\scratchdimen \pagetotal
- \ifdim\lastskip<\parskip
- \advance\scratchdimen \parskip
- \fi
- \ifsecondargument
- \advance\scratchdimen#2\relax
- \fi
- % quite inaccurate, better pagegoal 1pt or so
- \ifcase\testpagemethod
- \ifdim\scratchdimen>.99\pagegoal
- \penalty-\!!tenthousand\relax
+ \ifpaginageblokkeerd
+ % do nothing
+ \else
+% \ifnum#1=\plusone\synchronizeoutput\fi
+ \ifdim\pagegoal<\maxdimen \relax
+ \ifdim\pagetotal<\pagegoal \relax
+ \scratchdimen\lineheight
+ \multiply\scratchdimen#2\relax
+ \advance\scratchdimen \pagetotal
+ \ifdim\lastskip<\parskip
+ \advance\scratchdimen \parskip
\fi
- \or
- \advance\scratchdimen-\pagegoal
- \ifdim\scratchdimen>-\lineheight
- \penalty-\!!tenthousand\relax
+ \ifthirdargument
+ \advance\scratchdimen#3\relax
\fi
- \or
- \getnoflines\pagegoal
- \advance\scratchdimen-\noflines\lineheight \relax
- \ifdim\scratchdimen>-\lineheight
- \penalty-\!!tenthousand\relax
+ \ifcase\testpagemethod
+ \ifdim\scratchdimen>.99\pagegoal
+ \vfill\eject % \penalty-\!!tenthousand\relax
+ \fi
+ \or
+ \advance\scratchdimen-\pagegoal
+ \ifdim\scratchdimen>-\lineheight
+ \vfill\eject % \penalty-\!!tenthousand\relax
+ \fi
+ \or
+ \getnoflines\pagegoal
+ \advance\scratchdimen-\noflines\lineheight \relax
+ \ifdim\scratchdimen>-\lineheight
+ \vfill\eject % \penalty-\!!tenthousand\relax
+ \fi
+ \or % same as 0 but more accurate
+ \advance\scratchdimen-10\s!sp\relax
+ \ifdim\scratchdimen>\pagegoal
+ \vfill\eject % \penalty-\!!tenthousand\relax
+ \fi
\fi
+ \else
+ % force page break / new
+ % \vfill\eject % \penalty-\!!tenthousand\relax
\fi
+ \else
+ \ifnum#1=\plusone\goodbreak\fi
\fi
- \else
- \goodbreak
- \fi \fi}
+ \fi}
\def\testcolumn
{\dodoubleempty\dotestcolumn}