summaryrefslogtreecommitdiff
path: root/tex/context/base/core-spa.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/core-spa.tex')
-rw-r--r--tex/context/base/core-spa.tex253
1 files changed, 219 insertions, 34 deletions
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index f00a96e14..9c5293304 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -629,6 +629,165 @@
\newsignal\noblanksignal
+% \def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
+% {\global\blankoresetfalse
+% \global\blankoblokkeerfalse
+% \global\blankogeenwitfalse
+% \global\lokaalblankoflexibelfalse
+% \global\lokaalblankovastfalse
+% \global\blankoskip\zeropoint
+% \global\blankoforceerfalse
+% \blankobuitenfalse
+% \expanded{\rawprocesscommalist[#1]}\doblanko
+% \ifdim\blankoskip=\zeropoint\relax
+% \iflokaalblankoflexibel
+% \doglobal\advance\blankoskip \currentblanko
+% \else\iflokaalblankovast
+% \doglobal\advance\blankoskip \currentblanko
+% \fi\fi
+% \fi
+% \ifblankobuiten
+% \else
+% \par
+% \ifvmode %in pos fonts gaat dit mis
+% \ifblankoforceer%\ifdim\prevdepth>\zeropoint\else
+% % -1000pt signals top of page or column (\ejectcolumn)
+% \vbox{\strut}\kern-\lineheight
+% \fi
+% \ifblankoblokkeer
+% \global\doeblankofalse
+% \ifgridsnapping
+% \ifdim\prevdepth<\zeropoint
+% % brrr
+% \else
+% % dirty trick: smaller blanks are ignored after
+% % a larger one, so 10 lines is probably safe; first make
+% % sure that we honor penalties
+% \scratchcounter\lastpenalty
+% % now comes the trick (cross our fingers that this works
+% % well in multi columns; maybe an ifinner test is needed
+% % \vskip-10\lineheight
+% % \ifnum\scratchcounter=\zerocount \else \penalty\lastpenalty \fi
+% % \vskip 10\lineheight
+% % allas, this leads to overfull pages, so we try this:
+% \kern-\noblanksignal
+% \ifnum\scratchcounter=\zerocount
+% \else
+% \penalty\lastpenalty
+% \fi
+% \kern\noblanksignal
+% % end-of-dirty-trick
+% \fi
+% \else
+% \ifdim\prevdepth<\zeropoint
+% % brrr
+% \else
+% % ensure at least a proper prevdepth, this should be
+% % an option
+% \vskip-\prevdepth
+% \vskip\strutdepth
+% \prevdepth\strutdepth
+% \fi
+% % the old crappy piece of code
+% \edef\oldprevdepth{\the\prevdepth}%
+% \prevdepth\newprevdepth
+% \fi
+% \else
+% \global\doeblankotrue
+% \fi
+% \ifblankoreset
+% \global\doeblankotrue
+% \ifgridsnapping
+% % let's play safe and not fool around with the depth, if
+% % only because it took a lot of effort to sort out the grid
+% % stuff in the first place
+% \else
+% \ifdim\prevdepth=\newprevdepth
+% \prevdepth\oldprevdepth
+% \fi
+% \fi
+% \fi
+% \ifdoeblanko
+% \ifdim1\lastskip<1\blankoskip\relax
+% % else when \blanko[2*groot] + \blanko[3*groot] with parskip
+% % equaling 1*groot, gives a groot=\parskip so adding a small
+% % value makes it distinguishable; can also be done at parskip
+% % setting time (better)
+% \global\advance\blankoskip \mindimen\relax % = skip
+% % test this on 2* + 3* and parskip groot
+% \ifblankogeenwit
+% \global\advance\blankoskip -\parskip
+% \else
+% \ifdim\lastskip=\parskip
+% \else % force this due to previous comment
+% \ifdim\parskip>\zeropoint\relax
+% \ifdim\blankoskip<\parskip\relax
+% \global\blankoskip\zeropoint
+% \else
+% \global\advance\blankoskip -\parskip
+% \fi
+% \fi
+% \fi
+% \fi
+% \ifblankoflexibel \else
+% \blankoskip1\blankoskip
+% \fi
+% \iflokaalblankovast
+% \blankoskip1\blankoskip
+% \fi
+% \iflokaalblankoflexibel
+% \blankoskip1\blankoskip
+% \!!plus\skipgluefactor\blankoskip
+% \!!minus\skipgluefactor\blankoskip
+% \fi
+% \ifgridsnapping
+% \ifdim\lastkern=\noblanksignal
+% \global\doeblankofalse
+% \fi
+% \else
+% \ifdim\prevdepth=\newprevdepth
+% \global\doeblankofalse
+% \fi
+% \fi
+% \ifdoeblanko
+% \iffuzzyvskip
+% \removelastfuzzyvskip
+% \fuzzyvskip\blankoskip\relax
+% \else
+% \removelastskip
+% \vskip\blankoskip\relax
+% \fi
+% \fi
+% \else
+% \iffuzzyvskip
+% \removelastfuzzyvskip
+% \fuzzyvskip\blankoskip\relax
+% \else
+% % new, test this on pascal
+% \ifdim\blankoskip<\zeropoint
+% \advance\blankoskip-\lastskip
+% \removelastskip
+% \ifdim\blankoskip>\zeropoint
+% \vskip\blankoskip
+% \else
+% \vskip\zeropoint
+% \fi
+% \else
+% % also new
+% \ifdim\blankoskip=\zeropoint
+% \ifblankogeenwit
+% \geenwitruimte
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \fi
+% \global\fuzzyvskipfalse
+% \presetindentation}
+
\def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
{\global\blankoresetfalse
\global\blankoblokkeerfalse
@@ -740,15 +899,22 @@
\!!plus\skipgluefactor\blankoskip
\!!minus\skipgluefactor\blankoskip
\fi
- \ifgridsnapping
- \ifdim\lastkern=\noblanksignal
- \global\doeblankofalse
- \fi
- \else
- \ifdim\prevdepth=\newprevdepth
- \global\doeblankofalse
- \fi
- \fi
+% \ifgridsnapping
+% \ifdim\lastkern=\noblanksignal
+% \global\doeblankofalse
+% \fi
+% \else
+% \ifdim\prevdepth=\newprevdepth
+% \global\doeblankofalse
+% \fi
+% \fi
+%
+ \ifdim\lastkern=\noblanksignal % controled and grid
+ \global\doeblankofalse
+ \else\ifgridsnapping\else\ifdim\prevdepth=\newprevdepth
+ \global\doeblankofalse
+ \fi\fi\fi
+%
\ifdoeblanko
\iffuzzyvskip
\removelastfuzzyvskip
@@ -788,6 +954,9 @@
\global\fuzzyvskipfalse
\presetindentation}
+\def\doinhibitblank
+ {\kern\noblanksignal}
+
%D For a long time we had:
%D
%D \starttypen
@@ -944,7 +1113,7 @@
\v!altijd=>\parindent\voorwit\relax, % geen \indent !
\v!nooit=>\parindent\zeropoint\relax]}
-\def\inspringen%
+\def\inspringen
{\dosingleargument\doinspringen}
\def\nietinspringen{\inspringen[\v!nee,\v!volgende]}
@@ -980,18 +1149,34 @@
\definecomplexorsimple\stelspatieringin
-\bgroup
-\catcode`\~=\@@active % eigenlijk is ~ al actief
-\gdef\fixedspaces% % in Plain \TeX, maar we weten
- {\catcode`\~=\@@active % nooit wat er inmiddels is
- \def~{\fixedspace}} % gebeurd, vandaar.
-\egroup
-
-\def\space { }
-\def\fixedspace {\hskip.5em\relax}
-\def\removelastspace {\ifhmode\unskip\fi}
-\def\nospace {\removelastspace\ignorespaces}
-\def\removeunwantedspaces{\ifhmode\unskip\unskip\unskip\unskip\unskip\fi}
+\catcode`\~=\@@active % to be sure
+
+\unexpanded\def~{\nonbreakablespace}
+
+\def\space { }
+\def\removelastspace{\ifhmode\unskip\fi}
+\def\nospace {\removelastspace\ignorespaces}
+
+% in tables we need:
+%
+% \def\fixedspace {\hskip.5em\relax}
+%
+% but, since not all fonts have .5em digits:
+
+\def\fixedspace
+ {\setbox\scratchbox\hbox\ifmmode{$0$}\else{0}\fi
+ \hskip\wd\scratchbox\relax}
+
+\def\fixedspaces
+ {\catcode`\~=\@@active
+ \def~{\fixedspace}}
+
+% \def\removeunwantedspaces{\ifhmode\unskip\unskip\unskip\unskip\unskip\fi}
+
+\def\removeunwantedspaces
+ {\ifhmode
+ \doloop{\ifdim\lastskip>\zeropoint\unskip\else\exitloop\fi}%
+ \fi}
% better, but not done:
%
@@ -1390,7 +1575,7 @@
\def\corrigeerwitruimte
{\dowithnextbox
{\startbaselinecorrection
- \box\nextbox
+ \flushnextbox
\stopbaselinecorrection}%
\vbox}
@@ -1710,12 +1895,12 @@
%D The plain ones:
\def\offinterlineskip
- {\baselineskip-1000\p@
+ {\baselineskip-\thousandpoint
\lineskip\zeropoint
\lineskiplimit\maxdimen}
\def\nointerlineskip
- {\prevdepth-1000\p@}
+ {\prevdepth-\thousandpoint}
\let\normaloffinterlineskip=\offinterlineskip % knuth's original
@@ -2039,26 +2224,26 @@
\let\checkindentation=\relax
-\def\donoindentation%
+\def\donoindentation
{\ifdim\parindent=\zeropoint \else
\bgroup \setbox\scratchbox\lastbox \egroup
\fi}
-\def\noindentation% made global
+\def\noindentation % made global
{\ifinpagebody \else
\global\indentationfalse
- \gdef\checkindentation%
+ \gdef\checkindentation
{\donoindentation
\gdef\checkindentation{\global\indentationtrue}}%
\fi}
-\def\nonoindentation% bv bij floats
+\def\nonoindentation % bv bij floats
{\ifinpagebody \else
\global\indentationtrue
\gdef\checkindentation{\global\indentationtrue}%
\fi}
-\def\indentation%
+\def\indentation
{\ifvmode \ifdim\parindent=\zeropoint \else
% was : \hskip\parindent
% can be: \indent
@@ -2068,18 +2253,18 @@
% vergeten
-%\def\forgeteverypar%
+%\def\forgeteverypar
% {\everypar\emptytoks}
-\def\forgeteverypar%
+\def\forgeteverypar
{\everypar{\the\neverypar}}
-%\def\forgetparindent%
+%\def\forgetparindent
% {\forgeteverypar
% \indentfirstparagraphtrue % recently added
% \stelinspringenin[\v!geen]}
-%\def\forgetparskip%
+%\def\forgetparskip
% {\stelwitruimtein[\v!geen]}
\def\forgetparindent