summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/tabl-ntb.mkxl
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/tabl-ntb.mkxl')
-rw-r--r--tex/context/base/mkxl/tabl-ntb.mkxl309
1 files changed, 171 insertions, 138 deletions
diff --git a/tex/context/base/mkxl/tabl-ntb.mkxl b/tex/context/base/mkxl/tabl-ntb.mkxl
index 33e68a4cb..d36d113e1 100644
--- a/tex/context/base/mkxl/tabl-ntb.mkxl
+++ b/tex/context/base/mkxl/tabl-ntb.mkxl
@@ -321,6 +321,9 @@
\installcorenamespace{naturaltablesqueeze}
\installcorenamespace{naturaltabletok}
+% \integerdefcsname
+% \dimensiondefcsname
+
\letcsname\??naturaltablesqueeze \endcsname\donefalse
\letcsname\??naturaltablesqueeze\v!fit \endcsname\donetrue
\letcsname\??naturaltablesqueeze\v!fixed\endcsname\donetrue
@@ -336,20 +339,25 @@
\def\tabl_ntb_set_nob#1{\letcsname\??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone}
\def\tabl_ntb_get_nob#1{\ifcsname\??naturaltablenob\m_tabl_tbl_level:\number#1\endcsname\plusone\else\zerocount\fi}
-%def\tabl_ntb_set_tag#1#2{\edefcsname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_col#1#2{\edefcsname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_row#1#2{\edefcsname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+%def\tabl_ntb_set_tag#1#2{\expandafter\integerdef\csname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_set_col#1#2{\expandafter\integerdef\csname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_set_row#1#2{\expandafter\integerdef\csname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_tag#1#2{\letcsname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_col#1#2{\letcsname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_let_row#1#2{\letcsname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-%def\tabl_ntb_set_wd#1#2{\xdefcsname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
-\def\tabl_ntb_set_ht#1#2{\xdefcsname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+% \let\tabl_ntb_let_col\tabl_ntb_set_col
+% \let\tabl_ntb_let_row\tabl_ntb_set_row
+
+%def\tabl_ntb_set_wd#1#2{\global\expandafter\dimensiondef\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+\def\tabl_ntb_set_ht#1#2{\global\expandafter\dimensiondef\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
%def\tabl_ntb_let_wd#1#2{\letcsname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
\def\tabl_ntb_let_ht#1#2{\letcsname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname} % global !
+% \let\tabl_ntb_let_ht\tabl_ntb_set_ht
+
\def\tabl_ntb_get_tag#1#2{\csname\??naturaltabletag\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_col#1#2{\csname\??naturaltablecol\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_row#1#2{\csname\??naturaltablerow\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -357,24 +365,27 @@
%def\tabl_ntb_get_wd#1#2{\csname\??naturaltablewd\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_ht#1#2{\csname\??naturaltableht\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_wid#1{\xdefcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_hei#1{\xdefcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_dis#1{\xdefcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
-\def\tabl_ntb_set_aut#1{\xdefcsname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_wid#1{\global\expandafter\dimensiondef\csname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_hei#1{\global\expandafter\dimensiondef\csname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_dis#1{\global\expandafter\dimensiondef\csname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+\def\tabl_ntb_set_aut#1{\global\expandafter\dimensiondef\csname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_wid#1{\gletcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_hei#1{\gletcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_dis#1{\gletcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
\def\tabl_ntb_let_aut#1{\gletcsname\??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname} % {#2} global !
+% \let\tabl_ntb_let_wid\tabl_ntb_set_wid
+% \let\tabl_ntb_let_hei\tabl_ntb_set_hei
+% \let\tabl_ntb_let_dis\tabl_ntb_set_dis
+% \let\tabl_ntb_let_aut\tabl_ntb_set_aut
+
\def\tabl_ntb_get_wid#1{\ifcsname\??naturaltablewid\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_hei#1{\ifcsname\??naturaltablehei\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_dis#1{\ifcsname\??naturaltabledis\m_tabl_tbl_level:\number#1\endcsname\lastnamedcs\else\zeropoint\fi}
\def\tabl_ntb_get_aut#1{\csname \??naturaltableaut\m_tabl_tbl_level:\number#1\endcsname}
-% \i ntegerdef
-
-\def\tabl_ntb_let_bck#1#2{\global\expandafter\chardef\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
+\def\tabl_ntb_let_bck#1#2{\global\expandafter\integerdef\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
\def\tabl_ntb_get_bck#1#2{\csname\??naturaltablebck\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -408,11 +419,18 @@
%def\tabl_ntb_get_ref #1#2{\ifcsname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname\csname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname\fi}
\def\tabl_ntb_get_ref #1#2{\begincsname\??naturaltableref\m_tabl_tbl_level:\number#1:\number#2\endcsname}
-\def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname \!!plusone}
-\def\tabl_ntb_spn_doifelse#1{\ifcase0\csname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\relax % could be inlined
- \expandafter\secondoftwoarguments % unset
- \else
+% \def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname \!!plusone}
+% \def\tabl_ntb_spn_doifelse#1{\ifcase0\csname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\relax % could be inlined
+% \expandafter\secondoftwoarguments % unset
+% \else
+% \expandafter\firstoftwoarguments % a span
+% \fi}
+
+\def\tabl_ntb_set_spn #1{\letcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname\plusone}
+\def\tabl_ntb_spn_doifelse#1{\ifcsname\??naturaltablespn\m_tabl_tbl_level:\number#1\endcsname
\expandafter\firstoftwoarguments % a span
+ \else
+ \expandafter\secondoftwoarguments % unset
\fi}
\protected\def\tabl_ntb_set_txt_process#1#2#3#4#5#6%
@@ -508,15 +526,25 @@
\letcsname\??naturaltablesetupthree\s!unknown\endcsname\tabl_ntb_setup_un
\letcsname\??naturaltablesetuptwo \s!unknown\endcsname\tabl_ntb_setup_ux
-\letcsnamecsname\csname\??naturaltablesetupthree r\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree c\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree y\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetupthree x\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree r\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree c\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree y\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetupthree x\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+
+% \letcsnamecsname\csname\??naturaltablesetuptwo r\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo c\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo y\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+% \letcsnamecsname\csname\??naturaltablesetuptwo x\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+
+\letcsname\??naturaltablesetupthree r\expandafter\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+\letcsname\??naturaltablesetupthree c\expandafter\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
+\letcsname\??naturaltablesetupthree y\expandafter\endcsname\csname\??naturaltablesetupthree \v!row\endcsname
+\letcsname\??naturaltablesetupthree x\expandafter\endcsname\csname\??naturaltablesetupthree\v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo r\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo c\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo y\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
-\letcsnamecsname\csname\??naturaltablesetuptwo x\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+\letcsname\??naturaltablesetuptwo r\expandafter\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+\letcsname\??naturaltablesetuptwo c\expandafter\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
+\letcsname\??naturaltablesetuptwo y\expandafter\endcsname\csname\??naturaltablesetuptwo \v!row\endcsname
+\letcsname\??naturaltablesetuptwo x\expandafter\endcsname\csname\??naturaltablesetuptwo \v!column\endcsname
\def\tabl_ntb_parameters_set[#1][#2]%
{\ifappendTBLsetups
@@ -598,10 +626,12 @@
{\tabl_ntb_setup_section % already forgotten
\edef\m_tabl_ntb_positive_row{\number#1}%
\edef\m_tabl_ntb_positive_col{\number#2}%
- \edef\m_tabl_ntb_negative_row{\the\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone\relax}%
- \edef\m_tabl_ntb_negative_col{\the\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone\relax}%
+% \edef\m_tabl_ntb_negative_row{\the\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone\relax}%
+% \edef\m_tabl_ntb_negative_col{\the\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone\relax}%
+ \edef\m_tabl_ntb_negative_row{\number\numexpr-\c_tabl_ntb_maximum_row+#1+\minusone}%
+ \edef\m_tabl_ntb_negative_col{\number\numexpr-\c_tabl_ntb_maximum_col+#2+\minusone}%
% saves tokens (no speed gain)
- \edef\m_tabl_ntb_prefix{\??naturaltableset\m_tabl_tbl_level:}%
+ \edef\m_tabl_ntb_prefix{\??naturaltableset\m_tabl_tbl_level:}% can move to \tabl_ntb_next_level etc
% each each
\begincsname\m_tabl_ntb_prefix\c!x\v!each\c!y\v!each\endcsname
\begincsname\m_tabl_ntb_prefix\c!y\v!each\endcsname
@@ -754,10 +784,10 @@
\else
\tabl_ntb_td_pass_m{#1}%
\fi
- \doloop % skip over columns that result from earlier span
+ \localcontrolledloop\plusone\maxcard\plusone % skip over columns that result from earlier span
{\advance\c_tabl_ntb_running_col\plusone
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\endcsname \else
- \exitloop
+ \quitloop
\fi}%
% fill r*c cells and set span
\c_tabl_ntb_nx\naturaltableparameter\c!nx\relax
@@ -775,8 +805,8 @@
\fi
% set values
\tabl_ntb_let_tag\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_nx}%
- \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_ny}%
+ \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_nx
+ \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_ny
% the action key will change!
\tabl_ntb_set_ref\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\naturaltableparameter\c!action}%
% save text
@@ -789,10 +819,10 @@
\def\tabl_ntb_td_nop[#1]#2\eTD
{\global\advance\c_tabl_ntb_spn\plusone\relax
- \doloop
+ \localcontrolledloop\plusone\maxcard\plusone
{\advance\c_tabl_ntb_running_col\plusone
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\endcsname \else
- \exitloop
+ \quitloop
\fi}%
\c_tabl_ntb_nx\plusone
\c_tabl_ntb_ny\plusone
@@ -800,8 +830,8 @@
\c_tabl_ntb_maximum_col\c_tabl_ntb_running_col
\fi
\tabl_ntb_let_tag\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_nx}%
- \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_ny}%
+ \tabl_ntb_set_col\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_nx
+ \tabl_ntb_set_row\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\c_tabl_ntb_ny
\tabl_ntb_let_ref\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col\empty
\normalexpanded
{\tabl_ntb_set_txt_process\c_tabl_ntb_maximum_row\c_tabl_ntb_running_col{\the\c_tabl_ntb_maximum_row}{\the\c_tabl_ntb_running_col}}%
@@ -825,7 +855,7 @@
\def\tabl_ntb_td_pass_m#1%
{\scratchcounter\numexpr\m_tabl_ntb_m-\c_tabl_ntb_running_col+\minusone-\c_tabl_ntb_spn\relax
- \dorecurse\scratchcounter{\normalexpanded{\tabl_ntb_td[\c!n=,\c!m=]}\eTD}%
+ \localcontrolledloop\plusone\scratchcounter\plusone{\normalexpanded{\tabl_ntb_td[\c!n=,\c!m=]}\eTD}%
% can be sped up
\letnaturaltableparameter\c!ny\m_tabl_ntb_default_nr
\letnaturaltableparameter\c!nx\m_tabl_ntb_default_nc
@@ -838,7 +868,7 @@
\def\tabl_ntb_cell_preset
{\c_tabl_ntb_current_row\c_tabl_ntb_maximum_row
\c_tabl_ntb_current_col\c_tabl_ntb_running_col
- \dorecurse\c_tabl_ntb_ny\tabl_ntb_cell_preset_rows
+ \localcontrolledloop\plusone\c_tabl_ntb_ny\plusone{\tabl_ntb_cell_preset_rows}%
% check max column
\advance\c_tabl_ntb_current_col\minusone
\ifnum\c_tabl_ntb_current_col>\c_tabl_ntb_maximum_col\relax
@@ -847,11 +877,11 @@
\def\tabl_ntb_cell_preset_rows
{\c_tabl_ntb_current_col\c_tabl_ntb_running_col
- \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_nx}%
+ \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_nx
\ifnum\c_tabl_ntb_nx>\c_tabl_ntb_maximum_row_span\relax
\c_tabl_ntb_maximum_row_span\c_tabl_ntb_nx
\fi
- \dorecurse\c_tabl_ntb_nx\tabl_ntb_cell_preset_cells
+ \localcontrolledloop\plusone\c_tabl_ntb_nx\plusone{\tabl_ntb_cell_preset_cells}%
\advance\c_tabl_ntb_current_row\plusone}
\def\tabl_ntb_cell_preset_cells
@@ -1057,7 +1087,7 @@
{% tricky and dirty order -)
\setfalse\c_tabl_ntb_okay
% head
- \doifelsesometoks\t_tabl_ntb_head % slow, better a flag
+ \doifelsesometoks\t_tabl_ntb_head % slow, better a flag \iftok
{\c_tabl_ntb_head\numexpr\c_tabl_ntb_maximum_row+\plusone\relax
\the\t_tabl_ntb_head
\c_tabl_ntb_n_of_head_lines\c_tabl_ntb_maximum_row\relax
@@ -1088,11 +1118,11 @@
\ifcase\c_tabl_ntb_maximum_col\else
\startTBLprocessing
\tabl_ntb_table_start
- \dorecurse\c_tabl_ntb_maximum_row
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
{\tabl_ntb_row_start
- \c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\c_tabl_ntb_current_col\recurselevel\relax
+ \c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\normalexpanded{\tabl_ntb_cell{\the\c_tabl_ntb_current_row}{\the\c_tabl_ntb_current_col}}}%
\tabl_ntb_row_stop}%
\removeunwantedspaces % only if hmode
@@ -1106,10 +1136,10 @@
% tracing
% \iftrue
% \blank \tttf
- % \dorecurse\c_tabl_ntb_maximum_row
- % {\c_tabl_ntb_current_row\recurselevel\relax
- % \dorecurse\c_tabl_ntb_maximum_col
- % {\c_tabl_ntb_current_col\recurselevel\relax
+ % \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ % {\c_tabl_ntb_current_row\currentloopiterator\relax
+ % \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ % {\c_tabl_ntb_current_col\currentloopiterator\relax
% [r=\the\c_tabl_ntb_current_row,c=\the\c_tabl_ntb_current_col,h=\the\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row\c_tabl_ntb_current_col,w=\the\dimexpr\tabl_ntb_get_wd\c_tabl_ntb_current_row\c_tabl_ntb_current_col]}%
% \par}%
% \blank
@@ -1119,14 +1149,14 @@
\tabl_ntb_table_pop}
\def\tabl_ntb_loop_one
- {\dorecurse\c_tabl_ntb_maximum_row{\tabl_ntb_loop_one_rows}}
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone{\tabl_ntb_loop_one_rows}}
\def\tabl_ntb_loop_one_rows
- {\c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col\tabl_ntb_loop_one_cells}
+ {\c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone{\tabl_ntb_loop_one_cells}}
\def\tabl_ntb_loop_one_cells
- {\c_tabl_ntb_current_col\recurselevel\relax
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row\c_tabl_ntb_current_col\endcsname \else
\tabl_ntb_loop_one_cells_indeed
\fi}
@@ -1135,25 +1165,25 @@
{\c_tabl_ntb_current_col_two\c_tabl_ntb_current_col
\c_tabl_ntb_current_row_two\c_tabl_ntb_current_row
\c_tabl_ntb_current_row_one\c_tabl_ntb_current_row
- \doloop
+ \localcontrolledloop\plusone\maxcard\plusone
{\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col
- \doloop
+ \localcontrolledloop\plusone\maxcard\plusone
{\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\endcsname
- \exitloop
+ \quitloop
\else
\advance\c_tabl_ntb_current_col_one\plusone
\ifnum\c_tabl_ntb_current_col_one>\c_tabl_ntb_maximum_col\relax
- \exitloop
+ \quitloop
\fi
\fi}%
\ifcsname\tabl_ntb_tag_pattern\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\endcsname
- \exitloop
+ \quitloop
\else
\c_tabl_ntb_current_row_two\c_tabl_ntb_current_row_one
\c_tabl_ntb_current_col_two\c_tabl_ntb_current_col_one
\advance\c_tabl_ntb_current_row_one\plusone
\ifnum\c_tabl_ntb_current_row_one>\c_tabl_ntb_maximum_row
- \exitloop
+ \quitloop
\fi
\fi}%
\ifnum\c_tabl_ntb_current_row_two>\c_tabl_ntb_maximum_row\c_tabl_ntb_current_row_two\c_tabl_ntb_maximum_row\fi
@@ -1161,16 +1191,16 @@
\c_tabl_ntb_current_row_two\numexpr\c_tabl_ntb_current_row_two-\c_tabl_ntb_current_row+\plusone\relax
\c_tabl_ntb_current_col_two\numexpr\c_tabl_ntb_current_col_two-\c_tabl_ntb_current_col+\plusone\relax
\c_tabl_ntb_current_row_one\c_tabl_ntb_current_row
- \dorecurse\c_tabl_ntb_current_row_two
+ \localcontrolledloop\plusone\c_tabl_ntb_current_row_two\plusone
{\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col
- \tabl_ntb_set_col\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one{\the\c_tabl_ntb_current_col_two}%
- \dorecurse\c_tabl_ntb_current_col_two
+ \tabl_ntb_set_col\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\c_tabl_ntb_current_col_two
+ \localcontrolledloop\plusone\c_tabl_ntb_current_col_two\plusone
{\tabl_ntb_let_tag\c_tabl_ntb_current_row_one\c_tabl_ntb_current_col_one\c_tabl_ntb_none
\advance\c_tabl_ntb_current_col_one\plusone}%
\advance\c_tabl_ntb_current_row_one\plusone}%
\tabl_ntb_let_tag\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_cell
- \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_col_two}%
- \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_row_two}%
+ \tabl_ntb_set_col\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_current_col_two
+ \tabl_ntb_set_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col\c_tabl_ntb_current_row_two%
\ifautoTBLemptycell
\normalexpanded
{\tabl_ntb_set_txt_process\c_tabl_ntb_current_row\c_tabl_ntb_current_col{\the\c_tabl_ntb_current_row}{\the\c_tabl_ntb_current_col}}%
@@ -1178,14 +1208,14 @@
\fi}
\def\tabl_ntb_loop_two
- {\dorecurse\c_tabl_ntb_maximum_row\tabl_ntb_loop_two_rows}
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone{\tabl_ntb_loop_two_rows}}
\def\tabl_ntb_loop_two_rows
- {\c_tabl_ntb_current_row\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col\tabl_ntb_loop_two_cells}
+ {\c_tabl_ntb_current_row\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone{\tabl_ntb_loop_two_cells}}
\def\tabl_ntb_loop_two_cells
- {\c_tabl_ntb_current_col\recurselevel\relax
+ {\c_tabl_ntb_current_col\currentloopiterator\relax
\ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row\c_tabl_ntb_current_col\endcsname
\scratchcounter\numexpr\c_tabl_ntb_maximum_row-\c_tabl_ntb_current_row+\plusone\relax
\ifnum\tabl_ntb_get_row\c_tabl_ntb_current_row\c_tabl_ntb_current_col>\scratchcounter
@@ -1270,8 +1300,8 @@
% \prelocateTBLrows{1000} % may speed up large tables
\permanent\protected\def\prelocateTBLrows#1% we start at zero so we have one to much, better play safe anyway
- {\dostepwiserecurse\c_tabl_prelocated_rows{#1}\plusone
- {\expandafter\newtoks\csname\??naturaltabletok\recurselevel\endcsname}%
+ {\localcontrolledloop\c_tabl_prelocated_rows#1\plusone
+ {\expandafter\newtoks\csname\??naturaltabletok\the\currentloopiterator\endcsname}%
\def\tabl_ntb_row_start
{\ifnum\c_tabl_ntb_row<\c_tabl_prelocated_rows\relax
\tabl_ntb_prelocate_okay
@@ -1428,7 +1458,7 @@
\protected\def\tabl_ntb_span#1%
{\hskip\tabl_ntb_get_dis\c_tabl_ntb_col
- \dorecurse{#1}
+ \localcontrolledloop\plusone#1\plusone
{\hskip\tabl_ntb_get_wid\c_tabl_ntb_col\relax
\global\advance\c_tabl_ntb_col\plusone}}
@@ -1476,15 +1506,15 @@
\scratchcounter\c_tabl_ntb_col
\scratchcounterone\tabl_ntb_get_col{#1}{#2}\relax
\ifcase\scratchcounterone\or
- \advance\d_tabl_ntb_width\dimexpr
+ \advance\d_tabl_ntb_width\dimexpr % no need for dimexpr
\tabl_ntb_get_wid\scratchcounter
\relax
\advance\scratchcounter\plusone
\else
- \dorecurse\scratchcounterone
+ \localcontrolledloop\plusone\scratchcounterone\plusone
{\advance\d_tabl_ntb_width\dimexpr
\tabl_ntb_get_wid\scratchcounter
- \ifnum\recurselevel<\scratchcounterone
+ \ifnum\currentloopiterator<\scratchcounterone
+\d_tabl_ntb_columndistance
+\tabl_ntb_get_dis\scratchcounter
\fi
@@ -1492,11 +1522,11 @@
\advance\scratchcounter\plusone}%
\fi
\setbox\scratchbox\hbox{\tabl_ntb_get_txt{#1}{#2}}%
- \tabl_ntb_set_ht{#1}{#2}{\the\ht\scratchbox}%
- %tabl_ntb_set_wd{#1}{#2}{\the\wd\scratchbox}%
+ \tabl_ntb_set_ht{#1}{#2}\ht\scratchbox
+ %tabl_ntb_set_wd{#1}{#2}\wd\scratchbox
\ifdim\ht\scratchbox>\tabl_ntb_get_hei{#1}\relax
- \tabl_ntb_set_hei{#1}{\the\ht\scratchbox}%
- \fi}%
+ \tabl_ntb_set_hei{#1}\ht\scratchbox
+ \fi}
\def\tabl_ntb_pass_three#1 #2 %
{% height
@@ -1511,7 +1541,7 @@
% case: nc=maxcolumns
\else
\scratchcounter#1\relax
- \dorecurse\scratchcountertwo
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
{\advance\d_tabl_ntb_height\tabl_ntb_get_hei\scratchcounter
\advance\scratchcounter\plusone}%
\ifdim\d_tabl_ntb_height<\scratchheight\relax
@@ -1527,10 +1557,10 @@
\relax
\advance\scratchcounter\plusone
\else
- \dorecurse\scratchcounterone
+ \localcontrolledloop\plusone\scratchcounterone\plusone
{\advance\d_tabl_ntb_width\dimexpr
\tabl_ntb_get_wid\scratchcounter
- \ifnum\recurselevel<\scratchcounterone
+ \ifnum\currentloopiterator<\scratchcounterone
+\d_tabl_ntb_columndistance
+\tabl_ntb_get_dis\scratchcounter
\fi
@@ -1573,7 +1603,7 @@
\def\tabl_ntb_cell_finalize_indeed
{\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax
\ifdim\localwidth>\scratchdimen
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\localwidth\relax
\fi}
\let\tabl_ntb_preroll\relax
@@ -1606,19 +1636,19 @@
% \letnaturaltablelocalparameter\c!align\v!no
% \inheritednaturaltablelocalframed{\strut}}%
%\edef\minimalcellheight{\the\ht\scratchbox}% not used
- \dorecurse\c_tabl_ntb_maximum_col
- {\tabl_ntb_let_aut\recurselevel\zeropoint
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\tabl_ntb_let_aut\currentloopiterator\zeropoint
% new
- \c_tabl_ntb_current_col_one\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_row
- {%tabl_ntb_let_wd\recurselevel\c_tabl_ntb_current_col_one\zeropoint
- \tabl_ntb_let_ht\recurselevel\c_tabl_ntb_current_col_one\zeropoint}%
+ \c_tabl_ntb_current_col_one\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {%tabl_ntb_let_wd\currentloopiterator\c_tabl_ntb_current_col_one\zeropoint
+ \tabl_ntb_let_ht\currentloopiterator\c_tabl_ntb_current_col_one\zeropoint}%
% till here
- \tabl_ntb_let_tal\recurselevel\zerocount
- \tabl_ntb_let_wid\recurselevel\zeropoint
- \tabl_ntb_let_dis\recurselevel\zeropoint}%
- \dorecurse\c_tabl_ntb_maximum_row
- {\tabl_ntb_let_hei\recurselevel\maxdimen}%
+ \tabl_ntb_let_tal\currentloopiterator\zerocount
+ \tabl_ntb_let_wid\currentloopiterator\zeropoint
+ \tabl_ntb_let_dis\currentloopiterator\zeropoint}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {\tabl_ntb_let_hei\currentloopiterator\maxdimen}%
\tabl_ntb_let_gal\zerocount
\tabl_ntb_preroll\relax
\c_tabl_tbl_pass\plusone
@@ -1693,12 +1723,12 @@
-\d_tabl_ntb_rightmargindistance
+\d_tabl_ntb_columndistance
\relax
- \dorecurse\c_tabl_ntb_maximum_col
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
{\advance\scratchdimenfour\dimexpr
- \tabl_ntb_get_wid\recurselevel
+ \tabl_ntb_get_wid\currentloopiterator
\relax
\advance\scratchdimenfive\dimexpr
- -\tabl_ntb_get_dis\recurselevel
+ -\tabl_ntb_get_dis\currentloopiterator
-\d_tabl_ntb_columndistance
\relax}%
\relax
@@ -1706,8 +1736,9 @@
\ifdim\scratchdimenfour<\scratchdimenfive
\advance\scratchdimenfour-\scratchdimenfive
\divide\scratchdimenfour\c_tabl_ntb_maximum_col
- \dorecurse\c_tabl_ntb_maximum_col
- {\tabl_ntb_set_wid\recurselevel{\the\dimexpr\tabl_ntb_get_wid\recurselevel-\scratchdimenfour\relax}}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\dimexpr\tabl_ntb_get_wid\currentloopiterator-\scratchdimenfour\relax
+ \tabl_ntb_set_wid\currentloopiterator\scratchdimen}%
\fi
\fi}
@@ -1767,10 +1798,10 @@
\t_split_before{\m_tabl_ntb_before_split}% not used (yet)
\setbox\b_split_content\vbox{\tabl_ntb_flush_content}%
\ifmultipleTBLheads
- \dorecurse\c_tabl_ntb_n_of_head_lines
+ \localcontrolledloop\plusone\c_tabl_ntb_n_of_head_lines\plusone
{\setbox\scratchbox\vsplit\b_split_content to \lineheight
\setbox\b_split_head\vbox{\unvcopy\b_split_head\unvcopy\scratchbox}}% \vpack ?
- \dorecurse\c_tabl_ntb_n_of_next_lines
+ \localcontrolledloop\plusone\c_tabl_ntb_n_of_next_lines\plusone
{\setbox\scratchbox\vsplit\b_split_content to \lineheight
\setbox\b_split_next\vbox{\unvcopy\b_split_next\unvcopy\scratchbox}}% \vpack ?
\fi
@@ -1803,18 +1834,18 @@
-\d_tabl_ntb_rightmargindistance
-\d_tabl_ntb_columndistance
\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\scratchdimen\tabl_ntb_get_aut\recurselevel\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\tabl_ntb_get_aut\currentloopiterator
\advance\scratchdimenone\dimexpr
- -\tabl_ntb_get_dis\recurselevel
+ -\tabl_ntb_get_dis\currentloopiterator
-\d_tabl_ntb_columndistance
\relax
\ifdim\scratchdimen>\zeropoint\relax
\advance\scratchdimenone -\scratchdimen
\else
- \scratchdimen\tabl_ntb_get_wid\recurselevel\relax
+ \scratchdimen\tabl_ntb_get_wid\currentloopiterator\relax
\ifdim\scratchdimen>\d_tabl_ntb_maxwidth\relax
- \ifcase#1\else\tabl_ntb_let_wid\recurselevel\zeropoint\fi
+ \ifcase#1\else\tabl_ntb_let_wid\currentloopiterator\zeropoint\fi
\advance\scratchcounterone \plusone
\orelse\ifdim\scratchdimen>\zeropoint\relax
\advance\scratchdimenone -\scratchdimen
@@ -1826,15 +1857,15 @@
\fi}%
\ifconditional\c_tabl_ntb_trace_widths\tabl_ntb_show_widths M#1\fi
\ifcase\scratchcounterone \else \divide\scratchdimenone \scratchcounterone \fi
- \dorecurse\c_tabl_ntb_maximum_col
- {\scratchdimen\tabl_ntb_get_wid\recurselevel\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\scratchdimen\tabl_ntb_get_wid\currentloopiterator
\ifcase#1\relax
\ifdim\scratchdimen<\scratchdimenone % take natural width
- \tabl_ntb_set_aut\recurselevel{\the\scratchdimen}%
+ \tabl_ntb_set_aut\currentloopiterator\scratchdimen
\fi
\else
\ifzeropt\scratchdimen % auto set width
- \tabl_ntb_set_wid\recurselevel{\the\scratchdimenone}%
+ \tabl_ntb_set_wid\currentloopiterator\scratchdimenone
\fi
\fi}%
\ifconditional\c_tabl_ntb_trace_widths\tabl_ntb_show_widths E#1\fi}
@@ -1849,12 +1880,12 @@
\dimen0=\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three
% find nearest height in row
\dimen2=\zeropoint
- \dorecurse\c_tabl_ntb_maximum_col
- {\ifnum\recurselevel=\c_tabl_ntb_current_col_three\else
- \ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\recurselevel\endcsname
- \scratchcounterthree\tabl_ntb_get_row\c_tabl_ntb_current_row_three\recurselevel\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\ifnum\currentloopiterator=\c_tabl_ntb_current_col_three\else
+ \ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\the\currentloopiterator\endcsname
+ \scratchcounterthree\tabl_ntb_get_row\c_tabl_ntb_current_row_three\currentloopiterator\relax
\ifnum\scratchcounterthree=\plusone
- \dimen4=\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\recurselevel\relax
+ \dimen4=\tabl_ntb_get_ht\c_tabl_ntb_current_row_three\currentloopiterator\relax
\ifdim\dimen2<\dimen4
\dimen2=\dimen4
\fi
@@ -1866,11 +1897,11 @@
\dimen4=\dimen2
\scratchcounterthree\c_tabl_ntb_current_row_three
\advance\scratchcounterthree\minusone
- \dorecurse\scratchcountertwo
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
{\ifnum\c_tabl_ntb_current_row_four=\c_tabl_ntb_current_row_three\else
\advance\dimen4 \tabl_ntb_get_hei\c_tabl_ntb_current_row_four
\fi
- \ifnum\recurselevel=\scratchcountertwo\else
+ \ifnum\currentloopiterator=\scratchcountertwo\else
\tabl_ntb_set_nob\scratchcounterthree
\advance\scratchcounterthree\plusone
\fi
@@ -1881,30 +1912,30 @@
\advance\dimen0 -\dimen4
\divide\dimen0 \scratchcountertwo
\c_tabl_ntb_current_row_four\c_tabl_ntb_current_row_three
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_three{\the\dimen2}%
- \dorecurse\scratchcountertwo
- {\dorecurse\c_tabl_ntb_maximum_col
- {\ifnum\recurselevel=\c_tabl_ntb_current_col_three\else
- \scratchdimen\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row_four\recurselevel+\dimen0\relax
- \tabl_ntb_set_ht\c_tabl_ntb_current_row_four\recurselevel{\the\scratchdimen}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_three\dimen2\relax
+ \localcontrolledloop\plusone\scratchcountertwo\plusone
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\ifnum\currentloopiterator=\c_tabl_ntb_current_col_three\else
+ \scratchdimen\dimexpr\tabl_ntb_get_ht\c_tabl_ntb_current_row_four\currentloopiterator+\dimen0\relax
+ \tabl_ntb_set_ht\c_tabl_ntb_current_row_four\currentloopiterator\scratchdimen
\ifdim\tabl_ntb_get_hei\c_tabl_ntb_current_row_four<\scratchdimen
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_four{\the\scratchdimen}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_four\scratchdimen
\fi
\fi}%
\advance\c_tabl_ntb_current_row_four\plusone}%
\orelse\ifdim\dimen4>\dimen0
\iftightTBLrowspan
- \tabl_ntb_set_hei\c_tabl_ntb_current_row_three{\the\dimen2}%
+ \tabl_ntb_set_hei\c_tabl_ntb_current_row_three\dimen2\relax
\fi
\fi
\fi
\fi}
\def\tabl_ntb_check_heights_one
- {\dorecurse\c_tabl_ntb_maximum_row
- {\c_tabl_ntb_current_row_three\recurselevel\relax
- \dorecurse\c_tabl_ntb_maximum_col
- {\c_tabl_ntb_current_col_three\recurselevel\relax
+ {\localcontrolledloop\plusone\c_tabl_ntb_maximum_row\plusone
+ {\c_tabl_ntb_current_row_three\currentloopiterator\relax
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\c_tabl_ntb_current_col_three\currentloopiterator\relax
\ifcsname\tabl_ntb_row_pattern\c_tabl_ntb_current_row_three\c_tabl_ntb_current_col_three\endcsname
\tabl_ntb_check_heights_one_indeed
\fi}}}
@@ -1915,11 +1946,11 @@
\def\tabl_ntb_show_widths#1#2%
{\begingroup
\scratchdimen\zeropoint
- \dorecurse\c_tabl_ntb_maximum_col
- {\advance\scratchdimen\tabl_ntb_get_wid\recurselevel\relax}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\advance\scratchdimen\tabl_ntb_get_wid\currentloopiterator\relax}%
\writestatus\m!TABLE{#1 \ifcase#2trial\else real\fi: hsize: \the\hsize, total: \the\scratchdimen}%
- \dorecurse\c_tabl_ntb_maximum_col
- {\writestatus\m!TABLE{\space\space\recurselevel: \the\dimexpr\tabl_ntb_get_wid\recurselevel}}%
+ \localcontrolledloop\plusone\c_tabl_ntb_maximum_col\plusone
+ {\writestatus\m!TABLE{\space\space\the\currentloopiterator: \the\dimexpr\tabl_ntb_get_wid\currentloopiterator}}%
\endgroup}
\def\tabl_ntb_char_align % called often
@@ -1974,7 +2005,7 @@
\def\tabl_ntb_cell_process_a_check_span_two_nop
{\ifdim\tabl_ntb_get_wid\c_tabl_ntb_col<\wd\scratchbox
- \tabl_ntb_set_wid\c_tabl_ntb_col{\the\wd\scratchbox}%
+ \tabl_ntb_set_wid\c_tabl_ntb_col\wd\scratchbox
\fi}
\protected\def\tabl_ntb_cell_process_a#1#2[#3]#4% grouping added ! ! !
@@ -1988,7 +2019,7 @@
\setbox\scratchbox\hbox
{\scratchdimen\naturaltablelocalparameter\c!distance\relax
\ifdim\scratchdimen>\tabl_ntb_get_dis{#2}\relax
- \tabl_ntb_set_dis{#2}{\the\scratchdimen}%
+ \tabl_ntb_set_dis{#2}\scratchdimen
\fi
\anch_backgrounds_text_level_start
\inheritednaturaltablelocalframed{\tabl_ntb_cell_start\tabl_ntb_char_align{#1}{#2}#4\tabl_ntb_cell_stop\tabl_ntb_cell_finalize}%
@@ -2009,10 +2040,10 @@
\scratchcounter\numexpr\c_tabl_ntb_row+\plusone\relax
\scratchdimen\tabl_ntb_get_hei\scratchcounter\relax
\ifdim\ht\scratchbox<\scratchdimen
- \tabl_ntb_set_hei\scratchcounter{\the\ht\scratchbox}% auto set
+ \tabl_ntb_set_hei\scratchcounter\ht\scratchbox% auto set
\fi
- \tabl_ntb_set_ht{#1}{#2}{\the\ht\scratchbox}%
- %tabl_ntb_set_wd{#1}{#2}{\the\wd\scratchbox}%
+ \tabl_ntb_set_ht{#1}{#2}\ht\scratchbox
+ %tabl_ntb_set_wd{#1}{#2}\wd\scratchbox
\ifautoTBLcheckwidth
\ifdim\wd\scratchbox<.75\hsize % fuzzy guess
\ifdim\ht\scratchbox>2\openlineheight % honor width since this
@@ -2020,10 +2051,10 @@
\ifzeropt\scratchdimen
% side effect: when width is set to 0pt,
% we can force a span that fits the sum of spans widths
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\scratchdimen}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\scratchdimen
\orelse\ifdim\wd\scratchbox>\scratchdimen
% unless span
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\wd\scratchbox}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col\wd\scratchbox
% to be translated
\writestatus\m!TABLE{no auto width in (\number#1,\number#2)\space\the\wd\scratchbox/\the\hsize}%
\fi
@@ -2116,6 +2147,8 @@
\newtoks\everyresetTABLEyes
\newtoks\everyresetTABLEnop
+% todo : use \letTABLEparameter\c!width\v!fit ...
+
\appendtoks
\setupTABLE [%
%