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.tex265
1 files changed, 149 insertions, 116 deletions
diff --git a/tex/context/base/core-spa.tex b/tex/context/base/core-spa.tex
index aca3a84f9..13b89f1e1 100644
--- a/tex/context/base/core-spa.tex
+++ b/tex/context/base/core-spa.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ filefile=core-spa,
+%D [ file=core-spa,
%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=Spacing,
@@ -1958,10 +1958,10 @@
{\processaction
[#1]
[ \v!yes=>\setstrut,
- \v!no=>\setnostrut,
+ \v!no=>\setnostrut,
\v!cap=>\setcapstrut,
- \v!fit=>\setfontstrut,
- \v!line=>\setstrut,
+ \v!fit=>\setfontstrut,
+ \v!line=>\setstrut,
\s!default=>\setstrut,
\s!unknown=>\setcharstrut\commalistelement]}
@@ -2325,86 +2325,44 @@
\def\dosetraggedvbox#1%
{\processaction
[#1]
- [ \v!left=>\let\raggedbox\lbox,
- \v!right=>\let\raggedbox\rbox,
+ [ \v!left=>\let\raggedbox\lbox,
+ \v!right=>\let\raggedbox\rbox,
\v!middle=>\let\raggedbox\cbox,
- \v!inner=>\let\raggedbox\ibox,
- \v!outer=>\let\raggedbox\obox,
- \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=},
+ \v!inner=>\let\raggedbox\ibox,
+ \v!outer=>\let\raggedbox\obox,
+ \v!flushleft=>\let\raggedbox\rbox,
+ \v!flushright=>\let\raggedbox\lbox,
+ \v!center=>\let\raggedbox\cbox,
+ \v!no=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=},
\s!default=>\let\raggedbox\vbox,
\s!unknown=>\let\raggedbox\vbox]}
\def\dosetraggedhbox#1%
{\processaction % slow
[#1]
- [ \v!left=>\def\raggedbox{\doregelplaats\v!left },
- \v!right=>\def\raggedbox{\doregelplaats\v!right},
+ [ \v!left=>\def\raggedbox{\doregelplaats\v!left },
+ \v!right=>\def\raggedbox{\doregelplaats\v!right },
\v!middle=>\def\raggedbox{\doregelplaats\v!middle},
- \v!inner=>\def\raggedbox{\doregelplaats\v!inner},
- \v!outer=>\def\raggedbox{\doregelplaats\v!outer},
- \v!normal=>\let\raggedbox\hbox,
+ \v!inner=>\def\raggedbox{\doregelplaats\v!inner },
+ \v!outer=>\def\raggedbox{\doregelplaats\v!outer },
+ \v!flushleft=>\def\raggedbox{\doregelplaats\v!right },
+ \v!flushright=>\def\raggedbox{\doregelplaats\v!left },
+ \v!center=>\def\raggedbox{\doregelplaats\v!middle},
+ \v!normal=>\let\raggedbox\hbox,
\s!default=>\let\raggedbox\hbox,
\s!unknown=>\let\raggedbox\hbox]}
-% \def\dosetraggedcommand#1% ook ruim,rechts en zo
-% {\processaction
-% [#1]
-% [ \v!links=>\def\raggedcommand{\raggedleft},
-% \v!rechts=>\def\raggedcommand{\raggedright},
-% \v!midden=>\def\raggedcommand{\raggedcenter},
-% \v!nee=>\def\raggedcommand{\raggedright},
-% \v!normaal=>\let\raggedcommand\relax,
-% \s!default=>\def\raggedcommand{\raggedcenter},
-% \s!unknown=>\let\raggedcommand\relax]}
-
\def\dosetraggedcommand#1%
{\expanded{\dodosetraggedcommand{#1}}}
-% \def\dodosetraggedcommand#1%
-% {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
-% \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
-% \let\raggedcommand\relax
-% \let\raggedtopcommand\empty
-% \let\raggedbottomcommand\empty
-% \!!donectrue
-% \ExpandFirstAfter\processallactionsinset
-% [#1]
-% [ \v!links=>\if!!donea \def\raggedcommand{\veryraggedleft}%
-% \else \def\raggedcommand{\raggedleft}%
-% \fi
-% \!!donecfalse, % {\v!links,\v!midden}
-% \v!rechts=>\if!!donea \def\raggedcommand{\veryraggedright}%
-% \else \def\raggedcommand{\raggedright}%
-% \fi
-% \!!donecfalse, % {\v!rechts,\v!midden}
-% \v!midden=>\if!!donec
-% \if!!doneb \def\raggedcommand{\raggedwidecenter}%
-% \else\if!!donea \def\raggedcommand{\veryraggedcenter}%
-% \else \def\raggedcommand{\raggedcenter}%
-% \fi\fi
-% \!!donecfalse % {\v!midden,\v!midden}
-% \else
-% \let\raggedbottomcommand\vfilll % bonus, pretty strong
-% \let\raggedtopcommand \vfilll % used with \framed for
-% \fi, % instance in tables
-% \v!hoog=>\let\raggedbottomcommand\vfilll, % and since we lack a
-% \v!laag=>\let\raggedtopcommand \vfilll, % proper keyword, but
-% \v!laho=>\let\raggedbottomcommand\vfilll % we do support the
-% \let\raggedtopcommand \vfilll, % ugly laho (lohi)
-% \v!nee=>\def\raggedcommand{\raggedright},
-% \v!ja=>\let\raggedcommand\notragged, % was \relax
-% \v!normaal=>\let\raggedcommand\notragged]} % was \relax
-%
-% much faster and important since TABLE uses them a lot:
-
\def\dodosetraggedcommand#1% beware: #1=empty is ignored, keep that!
{\let\raggedcommand\relax
\let\raggedtopcommand\empty
\let\raggedbottomcommand\empty
\chardef\raggedoneliner\zerocount
\doifsomething{#1}
- {\doifinsetelse\v!broad {#1}\!!doneatrue\!!doneafalse
- \doifinsetelse\v!wide{#1}\!!donebtrue\!!donebfalse
+ {\doifinsetelse\v!broad{#1}\!!doneatrue\!!doneafalse
+ \doifinsetelse\v!wide {#1}\!!donebtrue\!!donebfalse
\!!donectrue
\rawprocesscommalist[#1]\dododosetraggedcommand}}
@@ -2437,6 +2395,10 @@
\let\raggedtopcommand \vfilll % used with \framed for
\fi} % instance in tables
+\setvalue{\@@ragged@@command\v!flushleft }{\getvalue{\@@ragged@@command\v!right }}
+\setvalue{\@@ragged@@command\v!flushright}{\getvalue{\@@ragged@@command\v!left }}
+\setvalue{\@@ragged@@command\v!center }{\getvalue{\@@ragged@@command\v!middle}}
+
\setvalue{\@@ragged@@command\v!high}%
{\let\raggedbottomcommand\vfilll} % and since we lack a
@@ -2513,7 +2475,7 @@
% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
% een \penalty v¢¢r witruimte worden geplaatst.
-\def\removelastskip% a redefinition of plain
+\def\removelastskip % a redefinition of plain
{\ifvmode\ifdim\lastskip=\zeropoint\else\vskip-\lastskip\fi\fi}
% first version:
@@ -3376,7 +3338,6 @@
\newif\if@@asragged \@@asraggedtrue % old method
-
% todo
%
% \setuplayout[grid=yes,lines=44] \showgrid
@@ -3384,43 +3345,109 @@
% test \vfill test \endgraf \strut \endgraf \vskip-\lineheight \removedepth \pagina test
% \stoptext
-\def\dodosetupalign[#1]%
- {\doifinsetelse\v!broad {#1}\!!doneatrue\!!doneafalse
- \doifinsetelse\v!wide{#1}\!!donebtrue\!!donebfalse
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!line=>\baselinebottom,
- \v!bottom=>\raggedbottom,
- \v!height=>\normalbottom,
- \v!width=>\notragged,
- \v!normal=>\notragged,
- \v!yes=>\notragged,
- \v!no=>\raggedright,
-\if@@asragged\v!inner\else\v!outer\fi
- =>\setraggedparagraphmode\raggedleft\raggedright,
-\if@@asragged\v!outer\else\v!inner\fi
- =>\setraggedparagraphmode\raggedright\raggedleft,
-\if@@asragged\v!left\else\v!right\fi
- =>\if!!donea\veryraggedleft \else\raggedleft \fi,
-\if@@asragged\v!right\else\v!left\fi
- =>\if!!donea\veryraggedright \else\raggedright \fi,
- \v!middle=>\if!!doneb\raggedwidecenter\else
- \if!!donea\veryraggedcenter\else\raggedcenter\fi\fi,
- \v!hanging=>\enableprotruding,
- \v!nothanging=>\disableprotruding,
- \v!hz=>\enableadjusting,
- \v!nohz=>\disableadjusting,
- \v!hyphenated=>\dohyphens,
-\v!nothyphenated=>\nohyphens,
- \v!new=>\@@asraggedfalse, % so new will give you consistency
- \v!reset=>\notragged\normalbottom]}
-
-\def\dosetupalign[#1]%
- {\expanded{\dodosetupalign[#1]}}
+% Keep this one:
+%
+% \def\setupalign
+% {\dosingleargument\dosetupalign}
+%
+% \def\dosetupalign[#1]%
+% {\expanded{\dodosetupalign[#1]}}
+%
+% \def\dodosetupalign[#1]%
+% {\doifinsetelse\v!broad {#1}\!!doneatrue\!!doneafalse
+% \doifinsetelse\v!wide{#1}\!!donebtrue\!!donebfalse
+% \ExpandFirstAfter\processallactionsinset % expansion redundant
+% [#1]
+% [ \v!line=>\baselinebottom,
+% \v!bottom=>\raggedbottom,
+% \v!height=>\normalbottom,
+% \v!width=>\notragged,
+% \v!normal=>\notragged,
+% \v!yes=>\notragged,
+% \v!no=>\raggedright,
+% \if@@asragged\v!inner\else\v!outer\fi=>\setraggedparagraphmode\raggedleft\raggedright,
+% \if@@asragged\v!outer\else\v!inner\fi=>\setraggedparagraphmode\raggedright\raggedleft,
+% \if@@asragged\v!left \else\v!right\fi=>\if!!donea\veryraggedleft \else\raggedleft \fi,
+% \if@@asragged\v!right\else\v!left \fi=>\if!!donea\veryraggedright \else\raggedright \fi,
+% \v!middle=>\if!!doneb\raggedwidecenter\else\if!!donea\veryraggedcenter\else\raggedcenter\fi\fi,
+% \v!flushleft=>\if!!donea\veryraggedright \else\raggedright \fi,
+% \v!flushright=>\if!!donea\veryraggedleft \else\raggedleft \fi,
+% \v!center=>\if!!doneb\raggedwidecenter\else\if!!donea\veryraggedcenter\else\raggedcenter\fi\fi,
+% \v!hanging=>\enableprotruding,
+% \v!nothanging=>\disableprotruding,
+% \v!hz=>\enableadjusting,
+% \v!nohz=>\disableadjusting,
+% \v!hyphenated=>\dohyphens,
+% \v!nothyphenated=>\nohyphens,
+% \v!new=>\@@asraggedfalse, % so new will give you consistency
+% \v!reset=>\notragged\normalbottom]}
+%
+% The next one is more than three times faster:
+
+\setvalue{@@align@@\v!line }{\baselinebottom}
+\setvalue{@@align@@\v!bottom }{\raggedbottom}
+\setvalue{@@align@@\v!height }{\normalbottom}
+\setvalue{@@align@@\v!width }{\notragged}
+\setvalue{@@align@@\v!normal }{\notragged}
+\setvalue{@@align@@\v!yes }{\notragged}
+\setvalue{@@align@@\v!no }{\raggedright}
+\setvalue{@@align@@\v!inner }{\if@@asragged
+ \setraggedparagraphmode\raggedleft\raggedright
+ \else
+ \setraggedparagraphmode\raggedright\raggedleft
+ \fi}
+\setvalue{@@align@@\v!outer }{\if@@asragged
+ \setraggedparagraphmode\raggedright\raggedleft
+ \else
+ \setraggedparagraphmode\raggedleft\raggedright
+ \fi}
+\setvalue{@@align@@\v!left }{\if@@asragged
+ \if!!donea\veryraggedleft\else\raggedleft\fi
+ \else
+ \if!!donea\veryraggedright\else\raggedright\fi
+ \fi}
+\setvalue{@@align@@\v!right }{\if@@asragged
+ \if!!donea\veryraggedright\else\raggedright\fi
+ \else
+ \if!!donea\veryraggedleft\else\raggedleft\fi
+ \fi}
+\setvalue{@@align@@\v!middle }{\if!!doneb\raggedwidecenter\else\if!!donea\veryraggedcenter\else\raggedcenter\fi\fi}
+\setvalue{@@align@@\v!flushleft }{\if!!donea\veryraggedright \else\raggedright \fi}
+\setvalue{@@align@@\v!flushright }{\if!!donea\veryraggedleft \else\raggedleft \fi}
+\setvalue{@@align@@\v!center }{\if!!doneb\raggedwidecenter\else\if!!donea\veryraggedcenter\else\raggedcenter\fi\fi}
+\setvalue{@@align@@\v!hanging }{\enableprotruding}
+\setvalue{@@align@@\v!nothanging }{\disableprotruding}
+\setvalue{@@align@@\v!hz }{\enableadjusting}
+\setvalue{@@align@@\v!nohz }{\disableadjusting}
+\setvalue{@@align@@\v!hyphenated }{\dohyphens}
+\setvalue{@@align@@\v!nothyphenated}{\nohyphens}
+\setvalue{@@align@@\v!new }{\@@asraggedfalse} % so new will give you consistency
+\setvalue{@@align@@\v!reset }{\notragged\normalbottom}
+
+\setvalue{@@ngila@@\v!broad }{\!!doneatrue}
+\setvalue{@@ngila@@\v!wide }{\!!donebtrue}
+
+\def\dodosetupalign#1{\getvalue{@@align@@#1}}
+\def\dodosetupngila#1{\getvalue{@@ngila@@#1}}
\def\setupalign
{\dosingleargument\dosetupalign}
+\def\dosetupalign[#1]%
+ {\!!doneafalse
+ \!!donebfalse
+ \processcommacommand[#1]\dodosetupngila
+ \processcommacommand[#1]\dodosetupalign}
+
+% \setupalign[flushleft] \input ward \par % lijnlinks
+% \setupalign[right] \input ward \par
+
+% \setupalign[flushright] \input ward \par % lijnrechts
+% \setupalign[left] \input ward \par
+
+% \setupalign[middle] \input ward \par % centreer
+% \setupalign[center] \input ward \par
+
\def\startalignment
{\bgroup
\setupalign}
@@ -3447,16 +3474,20 @@
% directe commando's
\def\leftaligned {\doalignline \relax \hss }
-\def\midaligned{\doalignline \hss \hss }
+\def\midaligned {\doalignline \hss \hss }
\def\rightaligned{\doalignline \hss \relax}
-\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}}
+\def\regelbegrensd#1{\limitatetext{#1}{\hsize}{\unknown}} % to be translated
% indirecte commando's
-\setvalue{\s!do\v!line\v!left }{\doalignline \relax \hss }
-\setvalue{\s!do\v!line\v!right}{\doalignline \hss \relax}
-\setvalue{\s!do\v!line\v!middle}{\doalignline \hss \hss }
+\letvalue{\s!do\v!line\v!left }\leftaligned
+\letvalue{\s!do\v!line\v!right }\rightaligned
+\letvalue{\s!do\v!line\v!middle}\midaligned
+
+\letvalue{\s!do\v!line\v!flushleft }\rightaligned
+\letvalue{\s!do\v!line\v!flushright}\leftaligned
+\letvalue{\s!do\v!line\v!center }\midaligned
\def\doregelplaats#1{\csname\s!do\v!line#1\endcsname}
@@ -3501,17 +3532,17 @@
\setvalue{\s!do\v!line\v!inner }{\doxalignline\doxcheckline++\zeropoint \relax\hss }
\setvalue{\s!do\v!line\v!outer }{\doxalignline\doxcheckline++\zeropoint \hss \relax}
-\setvalue{\s!do\v!line\v!innermargin }{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!outermargin }{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
+\setvalue{\s!do\v!line\v!innermargin}{\doxalignline\doxcheckline-+\innermargintotal\relax\hss }
+\setvalue{\s!do\v!line\v!outermargin}{\doxalignline\doxcheckline+-\outermargintotal\hss \relax}
\setvalue{\s!do\v!line\v!inneredge }{\doxalignline\doxcheckline-+\inneredgetotal \relax\hss }
\setvalue{\s!do\v!line\v!outeredge }{\doxalignline\doxcheckline+-\outeredgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
-\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
+\setvalue{\s!do\v!line\v!backspace }{\doxalignline\doxcheckline-+\backspace \relax\hss }
+\setvalue{\s!do\v!line\v!cutspace }{\doxalignline\doxcheckline+-\cutspace \hss \relax}
\setvalue{\s!do\v!line\v!leftmargin }{\doxalignline\donefalse --\leftmargintotal \hss \relax}
\setvalue{\s!do\v!line\v!rightmargin}{\doxalignline\donefalse ++\rightmargintotal\relax\hss }
-\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
-\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
+\setvalue{\s!do\v!line\v!leftedge }{\doxalignline\donefalse --\leftedgetotal \hss \relax}
+\setvalue{\s!do\v!line\v!rightedge }{\doxalignline\donefalse ++\rightedgetotal \relax\hss }
% ! ! ! beware, redefining \doalignline gives the wrong results ! ! !
%
@@ -3536,16 +3567,16 @@
{\doifinsetelse\v!vertical{#1}%
{\ExpandFirstAfter\processallactionsinset
[#1]
- [\v!verystrict=>\def\bottomtolerance{},
- \v!strict=>\def\bottomtolerance{.050},
+ [ \v!verystrict=>\def\bottomtolerance{},
+ \v!strict=>\def\bottomtolerance{.050},
\v!tolerant=>\def\bottomtolerance{.075},
\v!verytolerant=>\def\bottomtolerance{.100}]}%
{\ExpandFirstAfter\processallactionsinset
[#1]
- [ \v!stretch=>\emergencystretch\bodyfontsize,
- \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
- \v!verystrict=>\tolerance 200,
- \v!strict=>\tolerance1500,
+ [ \v!stretch=>\emergencystretch\bodyfontsize,
+ \v!space=>\spaceskip.5em\!!plus.25em\!!minus.25em\relax,
+ \v!verystrict=>\tolerance 200,
+ \v!strict=>\tolerance1500,
\v!tolerant=>\tolerance3000,
\v!verytolerant=>\tolerance4500]}}
@@ -3791,6 +3822,8 @@
% \vskip10pt
% \hrule width10cm \endgraf
+% etex only, evt splitskip macro gebruiken (syst-new)
+
\newskip\simplifiedskip
\newskip\simplifiedcounter