summaryrefslogtreecommitdiff
path: root/tex/context/base/tabl-tab.mkiv
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/tabl-tab.mkiv')
-rw-r--r--tex/context/base/tabl-tab.mkiv174
1 files changed, 99 insertions, 75 deletions
diff --git a/tex/context/base/tabl-tab.mkiv b/tex/context/base/tabl-tab.mkiv
index b50be8531..b9b519620 100644
--- a/tex/context/base/tabl-tab.mkiv
+++ b/tex/context/base/tabl-tab.mkiv
@@ -80,7 +80,7 @@
\appendtoks
\parindent\zeropoint
\raggedright
- \rightskip\zeropoint \!!plus 4em \relax
+ \rightskip\zeropoint \s!plus 4em \relax
\to \everytableparbox
\newskip \tablelefttabskip
@@ -854,11 +854,8 @@
\lineskiplimit\zeropoint
\lineskip \zeropoint
\tabskip \zeropoint
- \doifelsenothing\@@titextwidth
- {\halign}
- {\doifelse\@@titextwidth\v!max
- {\halign to \hsize}
- {\halign to \@@titextwidth}}%
+ \edef\p_tabl_table_textwidth{\directtablesparameter\c!textwidth}%
+ \halign \ifx\p_tabl_table_textwidth\empty \else to \ifx\p_tabl_table_textwidth\v!max \hsize \else \p_tabl_table_textwidth \fi\fi
% \the\!taTableSpread
\bgroup
\span
@@ -878,9 +875,9 @@
\def\donormaltablelineformat#1#2%
{\vrule
- \!!width \zeropoint
- \!!height\dimexpr\tablestrutheightfactor\tablestrutunit+#1\tablestrutunit\relax
- \!!depth \dimexpr\tablestrutdepthfactor \tablestrutunit+#2\tablestrutunit\relax
+ \s!width \zeropoint
+ \s!height\dimexpr\tablestrutheightfactor\tablestrutunit+#1\tablestrutunit\relax
+ \s!depth \dimexpr\tablestrutdepthfactor \tablestrutunit+#2\tablestrutunit\relax
\relax
\cr}
@@ -977,7 +974,7 @@
\def\donormaltablefullrule
{\starttablenoalign
\!ttGetHalfRuleThickness
- \hrule\!!height\scratchdimen\!!depth\scratchdimen
+ \hrule\s!height\scratchdimen\s!depth\scratchdimen
\stoptablenoalign}
\def\donormaltableshortrule % was: \!ttShortHrule
@@ -986,7 +983,7 @@
\ifx\tablecurrenthrulecolor\empty\else
\switchtocolor[\tablecurrenthrulecolor]% see *DL*
\fi
- \leaders\hrule\!!height\scratchdimen\!!depth\scratchdimen\hfill
+ \leaders\hrule\s!height\scratchdimen\s!depth\scratchdimen\hfill
\emptyhbox
\ignorespaces}
@@ -1022,7 +1019,7 @@
% SetTableToWidth -> textwidth=dimension [to dimension]
% Expand -> textwidth=max [to \hsize]
% WidenTableBy -> [spread #1]
-% \tablelefttabskip\zeropoint\!!plus1fill
+% \tablelefttabskip\zeropoint\s!plus1\s!fill
% \tablerighttabskip\tablelefttabskip
% LongLines -> [spread \hsize]
@@ -1330,26 +1327,38 @@
\newconditional\tablerepeathead
\newconditional\tablerepeattail
-
\unexpanded\def\starttable
{\bgroup
\dodoubleempty\dostarttable}
\unexpanded\def\dostarttable[#1][#2]% preamble optional-settings
{\ifsecondargument
- \getparameters[\??ti][#2]%
+ \setupcurrenttables[#2]%
\fi
\let\stoptable\dostoptable
- \doif\@@tisplit\v!auto
- {\ifinsidesplitfloat\let\@@tisplit\v!yes\fi}%
- \doifinsetelse\@@tisplit{\v!yes,\v!repeat}
- {\unexpanded\def\stoptable{\stoptables\egroup}%
- \starttables}
- {\doifelsenothing\@@tiframe
- {\ifinsidefloat\else\startbaselinecorrection\fi}
- {\startframedcontent[\@@tiframe]}%
- \postponenotes
- \firststagestarttable}%
+ \edef\p_tabl_table_split{\directtablesparameter\c!split}%
+ \edef\p_tabl_table_frame{\directtablesparameter\c!frame}%
+ \ifx\p_tabl_table_split\v!auto
+ \ifinsidesplitfloat
+ \let\p_tabl_table_split\v!yes
+ \lettablesparameter\c!split\v!yes % might be used later, best make a proper mode
+ \fi
+ \fi
+ \ifx\p_tabl_table_split\v!yes
+ \def\stoptable{\dostoptables\egroup}% not \unexpanded as we look ahead
+ \expandafter\starttables
+ \else\ifx\p_tabl_table_split\v!repeat
+ \def\stoptable{\dostoptables\egroup}% not \unexpanded as we look ahead
+ \doubleexpandafter\starttables
+ \else
+ \ifx\p_tabl_table_frame\empty
+ \ifinsidefloat\else\startbaselinecorrection\fi
+ \else
+ \startframedcontent[\p_tabl_table_frame]%
+ \fi
+ \postponenotes
+ \doubleexpandafter\firststagestarttable
+ \fi\fi
[#1]}
% We cannot define \unexpanded\def\dostoptable a ssomehow lookahead
@@ -1365,12 +1374,14 @@
\globalletempty\dotabletail
\stoptablenoalign
\dofinishtable
- \doifelsenothing\@@tiframe
- {\ifinsidefloat\else
+ \ifx\p_tabl_table_frame\empty
+ \ifinsidefloat\else
\stopbaselinecorrection
\goodbreak % compensates all the nobreaks
- \fi}
+ \fi
+ \else
\stopframedcontent
+ \fi
\egroup}
%D Before we can grab the argument, we have to make sure that
@@ -1465,7 +1476,7 @@
% \def\doverysimpletableHL % todo
% {\starttablenoalign
-% \expandafter\donormaltablefullrule\@@tiHLheight
+% \normalexpanded{\noexpand\donormaltablefullrule\m_tabl_table_HLheight}%
% \stoptablenoalign}
\def\dorestarttable#1%
@@ -1565,9 +1576,14 @@
{\bgroup
\let\stoptables\dostoptables
\splittablestrue
- \doifelse\@@tisplit\v!repeat
- {\settrue \tablerepeathead\settrue \tablerepeattail}
- {\setfalse\tablerepeathead\setfalse\tablerepeattail}%
+ \edef\p_tabl_table_split{\directtablesparameter\c!split}%
+ \ifx\p_tabl_table_split\v!repeat
+ \settrue\tablerepeathead
+ \settrue\tablerepeattail
+ \else
+ \setfalse\tablerepeathead
+ \setfalse\tablerepeattail
+ \fi
\flushnotes
\setbox\tablecontentbox\vbox\bgroup
\forgetall
@@ -1575,7 +1591,7 @@
\let\stoptables\relax % needed for \noalign
-\def\dostoptables
+\def\dostoptables % not \unexpanded as we need the lookahead (brrr)
{\dochucktableautorow % AM: before the tail, else noalign problem
\ifconditional\tablerepeattail\else\doinserttabletail\fi
\dofinishtable
@@ -1899,7 +1915,7 @@
\def\dotablevrulecommand#1% global assignments
{\doifnumberelse{#1}
{\global\tablevrulethicknessfactor#1\relax
- \global\multiply\tablevrulethicknessfactor\@@tiVLwidth\relax}
+ \global\multiply\tablevrulethicknessfactor\m_tabl_table_VLwidth\relax}
{\xdef\tablecurrentvrulecolor{#1}}}
\unexpanded\def\dotableVL
@@ -1909,7 +1925,7 @@
\def\dodotableVL[#1]%
{\global\let\tablecurrentvrulecolor\empty
- \global\tablevrulethicknessfactor\@@tiVLwidth\relax
+ \global\tablevrulethicknessfactor\m_tabl_table_VLwidth\relax
\iffirstargument
\rawprocesscommalist[#1]\dotablevrulecommand
\fi
@@ -1933,7 +1949,7 @@
\def\dotablehrulecommand#1% global assignments
{\doifnumberelse{#1}
{\global\tablehrulethicknessfactor#1\relax
- \global\multiply\tablehrulethicknessfactor\@@tiHLheight\relax}
+ \global\multiply\tablehrulethicknessfactor\m_tabl_table_HLheight\relax}
{\xdef\tablecurrenthrulecolor{#1}}}
\unexpanded\def\dotableHL
@@ -1953,7 +1969,7 @@
\writestatus\m!TABLE{change \string\MR\space into \string\SR}%
\fi\fi
\bgroup
- \global\tablehrulethicknessfactor\@@tiHLheight\relax
+ \global\tablehrulethicknessfactor\m_tabl_table_HLheight\relax
\iffirstargument
\global\let\tablecurrenthrulecolor\empty
\rawprocesscommalist[#1]\dotablehrulecommand
@@ -2004,10 +2020,10 @@
{\dochucktableautorow
\dofinishtablerow
\starttablenoalign
- \dosingleempty\dotableTB}
+ \dosingleempty\dodotableTB}
-\def\dotableTB[#1]%
- {\blank[\iffirstargument#1\else\@@tiNL\fi]%
+\def\dodotableTB[#1]%
+ {\blank[\iffirstargument#1\else\directtablesparameter\c!NL\fi]%
\nobreak
\stoptablenoalign}
@@ -2056,7 +2072,7 @@
\global\tabledrulespan#1\relax
\else
\global\tablehrulethicknessfactor#1\relax
- \global\multiply\tablehrulethicknessfactor\@@tiVLwidth\relax
+ \global\multiply\tablehrulethicknessfactor\m_tabl_table_VLwidth\relax
\fi}
{\xdef\tablecurrenthrulecolor{#1}}}
@@ -2074,7 +2090,7 @@
\writestatus\m!TABLE{change \string\MR\space into \string\SR}%
\fi\fi
\dosettableaction\tableunknownstate
- \global\tablehrulethicknessfactor\@@tiHLheight\relax
+ \global\tablehrulethicknessfactor\m_tabl_table_HLheight\relax
\global\tabledrulespan\zerocount
\iffirstargument
\global\let\tablecurrenthrulecolor\empty
@@ -2136,17 +2152,28 @@
\let\REF \dotablereformat
\to \localtabledefinitions
-\setvalue{\??ti:\c!distance:\v!none }{\dotableOpenUp00\def\LOW{\Lower6 }}
-\setvalue{\??ti:\c!distance:\v!small }{\dotableOpenUp00\def\LOW{\Lower6 }} % == baseline
-\setvalue{\??ti:\c!distance:\v!medium}{\dotableOpenUp11\def\LOW{\Lower7 }}
-\setvalue{\??ti:\c!distance:\v!big }{\dotableOpenUp22\def\LOW{\Lower8 }}
+\installcorenamespace{tables}
+\installcorenamespace{tabledistance}
+\installcorenamespace{tablealign}
+
+\installsetuponlycommandhandler \??tables {tables} % some day we can have named tables
+
+\setvalue{\??tabledistance\v!none }{\dotableOpenUp00\def\LOW{\Lower6 }}
+\setvalue{\??tabledistance\v!small }{\dotableOpenUp00\def\LOW{\Lower6 }} % == baseline
+\setvalue{\??tabledistance\v!medium}{\dotableOpenUp11\def\LOW{\Lower7 }}
+\setvalue{\??tabledistance\v!big }{\dotableOpenUp22\def\LOW{\Lower8 }}
\appendtoks
- \getvalue{\??ti:\c!distance:\@@tidistance}%
+ \expandcheckedcsname\??tabledistance{\directtablesparameter\c!distance}\v!medium
\to \localtabledefinitions
+\setvalue{\??tablealign\v!right }{\def\dotableparalignment{\raggedright}}
+\setvalue{\??tablealign\v!left }{\def\dotableparalignment{\raggedleft}}
+\setvalue{\??tablealign\v!middle }{\def\dotableparalignment{\raggedcenter}}
+\setvalue{\??tablealign\s!unknown}{\def\dotableparalignment{\notragged}}
+
\appendtoks
- \doifelse\@@tidistance\v!none
+ \doifelse{\directtablesparameter\c!distance}\v!none
{\tablerowfactor\zerocount}
{\tablerowfactor\plustwo }%
\to \localtabledefinitions
@@ -2160,31 +2187,28 @@
\@EAEAEA\dotextmodebar
\fi\fi}
-\unexpanded\def\setuptables
- {\dosingleargument\dosetuptables}
-
-\def\dosetuptables[#1]%
- {\getparameters[\??ti][#1]%
- \processaction % we have a command for this
- [\@@tialign]
- [ \v!right=>\def\dotableparalignment{\raggedright},
- \v!left=>\def\dotableparalignment{\raggedleft},
- \v!middle=>\def\dotableparalignment{\raggedcenter},
- \s!default=>\def\dotableparalignment{\notragged},
- \s!unknown=>\def\dotableparalignment{\notragged}]%
- \assignalfadimension\@@tiVL\@@tiVLwidth 246%
- \assignalfadimension\@@tiHL\@@tiHLheight246}
+\appendtoks
+ \expandcheckedcsname\??tablealign{\directtablesparameter\c!align}\s!unknown
+ \assignalfadimension{\directtablesparameter\c!VL}\m_tabl_table_VLwidth 246%
+ \assignalfadimension{\directtablesparameter\c!HL}\m_tabl_table_HLheight246%
+\to \everysetuptables
\def\dolocaltablesetup
- {\@@ticommands\relax
- \doifsomething\@@tibodyfont{\switchtobodyfont[\@@tibodyfont]}%
- \tablelinethicknessunit\dimexpr\@@tirulethickness/\tablelinethicknessfactor\relax
- \doifelse\@@tiheight\v!strut
- {\let\tablestrutheightfactor\tablestrutheightfactor}
- {\let\tablestrutheightfactor\@@tiheight}%
- \doifelse\@@tidepth\v!strut
- {\let\tablestrutdepthfactor\tablestrutdepthfactor}
- {\let\tablestrutdepthfactor\@@tidepth}%
+ {\directtablesparameter\c!commands\relax
+ \doifsomething{\directtablesparameter\c!bodyfont}{\switchtobodyfont[\directtablesparameter\c!bodyfont]}%
+ \tablelinethicknessunit\dimexpr\directtablesparameter\c!rulethickness/\tablelinethicknessfactor\relax
+ \edef\p_tabl_table_height{\directtablesparameter\c!height}%
+ \edef\p_tabl_table_depth{\directtablesparameter\c!depth}%
+ \ifx\p_tabl_table_height\v!strut
+ \let\tablestrutheightfactor\tablestrutheightfactor
+ \else
+ \let\tablestrutheightfactor\p_tabl_table_height
+ \fi
+ \ifx\p_tabl_table_depth\v!strut
+ \let\tablestrutdepthfactor\tablestrutdepthfactor
+ \else
+ \let\tablestrutdepthfactor\p_tabl_table_depth
+ \fi
\edef\tablestrutheightfactor{\withoutpt\the\dimexpr10\dimexpr\tablestrutheightfactor\points}%
\edef\tablestrutdepthfactor {\withoutpt\the\dimexpr10\dimexpr\tablestrutdepthfactor \points}%
\tablestrutunit\dimexpr\normalbaselineskip/12\relax % 12 is default bodyfont
@@ -2243,9 +2267,9 @@
%D \stopcombination
\setuptables
- [HL=\v!medium,
- VL=\v!medium,
- NL=\v!small,
+ [\c!HL=\v!medium,
+ \c!VL=\v!medium,
+ \c!NL=\v!small,
\c!frame=,
\c!align=\v!right,
\c!depth=.40, % \v!strut
@@ -2256,8 +2280,8 @@
\c!distance=\v!medium,
\c!bodyfont=,
\c!commands=,
- \c!background=\v!screen,
- \c!backgroundscreen=\@@rsscreen,
+ \c!background=\v!screen, % huh?
+ \c!backgroundscreen=\defaultbackgroundscreen,
\c!backgroundcolor=,
\c!split=\v!auto]