summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tex/context/base/attr-lay.lua13
-rw-r--r--tex/context/base/attr-lay.mkiv71
-rw-r--r--tex/context/base/attr-neg.mkiv10
-rw-r--r--tex/context/base/buff-par.mkiv151
-rw-r--r--tex/context/base/buff-par.mkvi131
-rw-r--r--tex/context/base/context-version.pdfbin4141 -> 4140 bytes
-rw-r--r--tex/context/base/context-version.pngbin106570 -> 106292 bytes
-rw-r--r--tex/context/base/mult-sys.mkiv1
-rw-r--r--tex/context/base/node-fin.lua3
-rw-r--r--tex/context/base/status-files.pdfbin24465 -> 24507 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin182162 -> 182165 bytes
-rw-r--r--tex/context/base/status-mkiv.lua10
-rw-r--r--tex/context/base/tabl-ntb.mkiv13
13 files changed, 191 insertions, 212 deletions
diff --git a/tex/context/base/attr-lay.lua b/tex/context/base/attr-lay.lua
index bcdc541f7..75505d4c4 100644
--- a/tex/context/base/attr-lay.lua
+++ b/tex/context/base/attr-lay.lua
@@ -150,9 +150,6 @@ function viewerlayers.setfeatures(hasorder)
end
function viewerlayers.start(name)
--- if not enabled then
--- viewerlayers.enable(true)
--- end
insert(stack,texgetattribute(a_viewerlayer))
local a = register(name) or unsetvalue
if global or scopes[name] == v_global then
@@ -166,7 +163,9 @@ end
function viewerlayers.stop()
local a = remove(stack)
- if a >= 0 then
+ if not a then
+ -- error
+ elseif a >= 0 then
if global or scopes[a] == v_global then
texsetattribute("global",a_viewerlayer,a)
else
@@ -197,9 +196,9 @@ function viewerlayers.define(settings)
end
end
-commands.defineviewerlayer = viewerlayers.define
-commands.startviewerlayer = viewerlayers.start
-commands.stopviewerlayer = viewerlayers.stop
+commands.defineviewerlayer = viewerlayers.define
+commands.startviewerlayer = viewerlayers.start
+commands.stopviewerlayer = viewerlayers.stop
function commands.definedviewerlayer(settings)
viewerlayers.define(settings)
diff --git a/tex/context/base/attr-lay.mkiv b/tex/context/base/attr-lay.mkiv
index 67cd204e2..2542ca5af 100644
--- a/tex/context/base/attr-lay.mkiv
+++ b/tex/context/base/attr-lay.mkiv
@@ -19,45 +19,38 @@
% needs to work over stopitemize grouping etc
-% \def\registerviewerlayer#1#2% global !
-% {\setxvalue{\??ql:#1}{\global\attribute\viewerlayerattribute\ctxlua{tex.write(attributes.viewerlayers.register('#2'))} }}
-%
-% \setevalue{\??ql:}{\global\attribute\viewerlayerattribute\attributeunsetvalue}
+\installcorenamespace{viewerlayer}
-\getparameters
- [\??lr]
+\installcommandhandler \??viewerlayer {viewerlayer} \??viewerlayer
+
+\setupviewerlayer
[\c!state=\v!start,
\c!title=,
\c!printable=\v!yes,
\c!scope=\v!local, % maybe global but needs checking with layout
\c!method=\v!none]
-\def\defineviewerlayer
- {\dodoubleargument\dodefineviewerlayer}
-
-\def\dodefineviewerlayer[#1][#2]% document wide properties
- {\begingroup
- \getparameters[\??lr][#2]%
- \ctxcommand{defineviewerlayer{
- tag = "#1",
- title = "\@@lrtitle",
- visible = "\@@lrstate",
- editable = "\v!yes",
- printable = "\@@lrprintable",
- scope = "\@@lrscope"
- }}%
- \doif\@@lrmethod\v!command
- {\setugvalue{\e!start#1}{\startviewerlayer[#1]}%
- \setugvalue{\e!stop #1}{\stopviewerlayer }}%
- \endgroup}
-
-\unexpanded\def\startviewerlayer[#1]{\ctxcommand{startviewerlayer("#1")}} % not grouped
-\unexpanded\def\stopviewerlayer {\ctxcommand{stopviewerlayer()}} % not grouped
+\appendtoks
+ \ctxcommand{defineviewerlayer{
+ tag = "\currentviewerlayer",
+ title = "\viewerlayerparameter\c!title",
+ visible = "\viewerlayerparameter\c!state",
+ editable = "\v!yes",
+ printable = "\viewerlayerparameter\c!printable",
+ scope = "\viewerlayerparameter\c!scope"
+ }}%
+ \doif{\viewerlayerparameter\c!method}\v!command
+ {\setuxvalue{\e!start#1}{\startviewerlayer[\currentviewerlayer]}%
+ \setuxvalue{\e!stop #1}{\stopviewerlayer}}%
+\to \everydefineviewerlayer
+
+\unexpanded\def\startviewerlayer[#1]{\ctxcommand{startviewerlayer("#1")}} % not grouped
+\unexpanded\def\stopviewerlayer {\ctxcommand{stopviewerlayer()}} % not grouped
\unexpanded\def\viewerlayer [#1]{\groupedcommand{\startviewerlayer[#1]}{\stopviewerlayer}} % grouped
% some day we will keep this at the lua end as the info is only needed there
-\let\currentviewerlayer\empty \newtoks\currentviewerlayertoks % soon we can set macros at the lua end
+\newtoks\currentviewerlayertoks % soon we can set macros at the lua end
\def\currentviewerlayer{\the\currentviewerlayertoks}
@@ -67,7 +60,9 @@
% layout components are implemented rather directly (speed)
-\def\doinitializelayoutcomponent#1%
+\installcorenamespace{layoutcomponentattribute}
+
+\def\attr_layoutcomponent_initialize#1%
{\edef\layoutcomponentboxattribute{\ctxcommand{definedviewerlayer{%
tag = "#1",
title = utilities.strings.nice("#1"), % only here as in steps we have step:<number>
@@ -76,24 +71,24 @@
printable = "\v!yes"
}}}%
\edef\layoutcomponentboxattribute{attr \viewerlayerattribute \layoutcomponentboxattribute\relax}%
- \expandafter\glet\csname\??lr:a:#1\endcsname\layoutcomponentboxattribute}
+ \expandafter\glet\csname\??layoutcomponentattribute#1\endcsname\layoutcomponentboxattribute}
-\def\dosetlayoutcomponentattribute#1% make this faster
- {\expandafter\let\expandafter\layoutcomponentboxattribute\csname\??lr:a:#1\endcsname
+\def\attr_layoutcomponent_set#1% make this faster
+ {\expandafter\let\expandafter\layoutcomponentboxattribute\csname\??layoutcomponentattribute#1\endcsname
\ifx\layoutcomponentboxattribute\relax
- \doinitializelayoutcomponent{#1}% get rid of { }
+ \attr_layoutcomponent_initialize{#1}% get rid of { }
\fi}
-\def\doresetlayoutcomponentattribute
+\def\attr_layoutcomponent_reset
{\let\layoutcomponentboxattribute\empty}
\let\setlayoutcomponentattribute \gobbleoneargument
\let\resetlayoutcomponentattribute\relax
\let\layoutcomponentboxattribute \empty
-\def\showlayoutcomponents
- {\ctxlua{attributes.viewerlayers.enable()}% will go
- \let\setlayoutcomponentattribute \dosetlayoutcomponentattribute
- \let\resetlayoutcomponentattribute\doresetlayoutcomponentattribute}
+\unexpanded\def\showlayoutcomponents
+ {%\ctxlua{attributes.viewerlayers.enable()}% automatic
+ \let\setlayoutcomponentattribute \attr_layoutcomponent_set
+ \let\resetlayoutcomponentattribute\attr_layoutcomponent_reset}
\protect \endinput
diff --git a/tex/context/base/attr-neg.mkiv b/tex/context/base/attr-neg.mkiv
index 0fc5070f1..102b220ba 100644
--- a/tex/context/base/attr-neg.mkiv
+++ b/tex/context/base/attr-neg.mkiv
@@ -19,12 +19,12 @@
% positive and negative are preregistered
-\def\dotriggernegative#1{\ctxcommand{triggernegative('#1')}}
+\unexpanded\def\startnegative{\attr_trigger_negative\v!negative}
+\unexpanded\def\stopnegative {\attr_trigger_negative\v!positive}
-\unexpanded\def\startnegative{\dotriggernegative\v!negative}
-\unexpanded\def\stopnegative {\dotriggernegative\v!positive}
+\unexpanded\def\startpositive{\attr_trigger_negative\v!positive}
+\unexpanded\def\stoppositive {\attr_trigger_negative\v!negative}
-\unexpanded\def\startpositive{\dotriggernegative\v!positive}
-\unexpanded\def\stoppositive {\dotriggernegative\v!negative}
+\def\attr_trigger_negative#1{\ctxcommand{triggernegative('#1')}}
\protect \endinput
diff --git a/tex/context/base/buff-par.mkiv b/tex/context/base/buff-par.mkiv
deleted file mode 100644
index 7d35676bd..000000000
--- a/tex/context/base/buff-par.mkiv
+++ /dev/null
@@ -1,151 +0,0 @@
-%D \module
-%D [ file=buff-par,
-%D version=2010.12.05,
-%D title=\CONTEXT\ Buffer Macros,
-%D subtitle=Parallel,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{ConTeXt Buffer Macros / Parallel}
-
-\registerctxluafile{buff-par}{1.001}
-
-%D This module is developped for Thomas Schmitz as part of
-%D a project.
-
-\unprotect
-
-\letvalue{\??px:}\empty
-
-\def\parallelparameter#1%
- {\csname\??px:%
- \ifcsname\??px:\currentparallel:\currentparallelinstance:#1\endcsname
- \currentparallel:\currentparallelinstance:#1%
- \else\ifcsname\??px:\currentparallel:#1\endcsname
- \currentparallel:#1%
- \else\ifcsname\??px:#1\endcsname
- #1%
- \fi\fi\fi
- \endcsname}
-
-\unexpanded\def\defineparallel
- {\dodoubleargument\dodefineparallel}
-
-\def\dodefineparallel[#1][#2]%
- {\ctxcommand{defineparallel("#1","#2")}%
- \processcommalist[#2]\dododefineparallel
- \setuvalue{\e!start#1}{\dostartparallelset{#1}}%
- \setuvalue{\e!stop #1}{\dostopparallelset}}
-
-\def\dododefineparallel#1%
- {\definebuffer[#1]%%
- \setuvalue{\e!stop#1}{\dowithparallel{#1}}}
-
-\def\dostartparallelset#1%
- {\def\currentparallel{#1}%
- \ctxcommand{nextparallel("\currentparallel")}}
-
-\def\dostopparallelset#1%
- {}
-
-\def\dowithparallel#1% defined moet ook aan de lua kant kunnen
- {\ctxcommand{saveparallel("\currentparallel","#1",buffers.raw("\thedefinedbuffer{#1}"))}}
-
-\unexpanded\def\placeparallel
- {\dotripleempty\doplaceparallel}
-
-\def\doplaceparallel[#1][#2][#3]%
- {\begingroup
- \def\currentparallel{#1}%
- \ctxcommand{placeparallel("\currentparallel","#2","#3")}%
- \endgroup}
-
-% was: \parallelparameter\c!command}
-
-\def\doflushparallel#1#2#3#4#5% {instance}{status}{line}{label}{content}
- {\begingroup
- \def\currentparallelinstance{#1}%
- \def\currentparallelnumber {#2}%
- \def\currentparallelline {#3}%
- \def\currentparallellabel {#4}%
- \def\currentparallelcontent {#5}%
- \ifcase#2\relax
- \expandafter\noflushparalleldefault
- \or
- \expandafter\doflushparalleldefault
- \fi
- \endgroup}
-
-\def\noflushparalleldefault{}
-\def\doflushparalleldefault{\directsetup{\parallelparameter\c!setups}}
-
-\startsetups parallel:place:default
- \hangafter\plusone
- \hangindent4em
- \dontleavehmode
- \hbox to 3em \bgroup
- \hss
- \bf
- \doifsomething \currentparallellabel {
- \textreference[\currentparallellabel]{\currentparallelline}
- }
- \currentparallelline
- \quad
- \egroup
- \currentparallelcontent
- \par
-\stopsetups
-
-\unexpanded\def\setupparallel
- {\dotripleempty\dosetupparallel}
-
-\def\dosetupparallel[#1][#2][#3]%
- {\ifthirdargument
- \getparameters[\??px:#1:#2:][#3]%
- \else\ifsecondargument
- \getparameters[\??px:#1:][#2]%
- \else
- \getparameters[\??px:][#1]% maybe no : here
- \fi\fi}
-
-\setupparallel
-% [\c!command=\doflushparalleldefault]
- [\c!setups=parallel:place:default]
-
-\def\doifelseparallel#1#2%
- {\cldcontext{commands.doifelseparallel("#1","#2")}}
-
-\def\resetparallel
- {\dodoubleempty\doresetparallel}
-
-\def\resetparallel[#1][#2]%
- {\ctxcommand{resetparallel("#1","#2"))}}
-
-% default
-
-% \def\doflushparalleldefault#1#2#3#4% todo: setups instead
-% {\ifcase#1\or
-% \begingroup
-% \hangafter1
-% \hangindent4em
-% \dontleavehmode
-% \hbox to 3em{\hss\bf\doifsomething{#3}{\textreference[#3]{#2}}#2\quad}#4\par
-% \endgroup
-% \fi}
-
-\protect \endinput
-
-% \def\dododefineparallel#1%
-% {\setuvalue{\e!stop #1}{}%
-% \setuvalue{\e!start#1}{\dostartparallel{#1}}}
-%
-% \def\dostartparallel#1%
-% {\grabuntil{\e!stop#1}{\dododostartparallel{#1}}}
-%
-% \def\dododostartparallel#1#2%
-% {\ctxcommand{saveparallel("\currentparallel","#1",\!!bs\detokenize{#2}\!!es)}}
diff --git a/tex/context/base/buff-par.mkvi b/tex/context/base/buff-par.mkvi
new file mode 100644
index 000000000..0dd072f04
--- /dev/null
+++ b/tex/context/base/buff-par.mkvi
@@ -0,0 +1,131 @@
+%D \module
+%D [ file=buff-par,
+%D version=2010.12.05,
+%D title=\CONTEXT\ Buffer Macros,
+%D subtitle=Parallel,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{ConTeXt Buffer Macros / Parallel}
+
+\registerctxluafile{buff-par}{1.001}
+
+%D This module is developped for Thomas Schmitz as part of
+%D a project. There is no documentation yet.
+%D
+%D \starttyping
+%D \defineparallel[main][one,two]
+%D
+%D \startmain
+%D \startone
+%D first 1
+%D [reference] first 2
+%D first 3
+%D \stopone
+%D \starttwo
+%D second 1
+%D \stoptwo
+%D \stopmain
+%D
+%D \placeparallel[main][one,two][criterium=all]
+
+%D criterium=all start=<number> n=<number>
+
+\unprotect
+
+\installcorenamespace{parallel}
+
+\installcommandhandler \??parallel {parallel} \??parallel
+
+\setupparallel
+ [\c!setups=parallel:place:default]
+
+\let\buff_parallel_define_saved\defineparallel
+
+\unexpanded\def\defineparallel
+ {\dodoubleargument\buff_parallel_define}
+
+\def\buff_parallel_define[#name][#instances]%
+ {\buff_parallel_define_saved[#name]
+ \ctxcommand{defineparallel("#name","#instances")}%
+ \processcommalist[#instances]\buff_parallel_define_instance
+ \setuevalue{\e!start#name}{\buff_parallel_start{#name}}%
+ \setuevalue{\e!stop #name}{\buff_parallel_stop}}
+
+\def\buff_parallel_define_instance#instance%
+ {\normalexpanded{\buff_parallel_define_saved[#instance][\currentparallel]}%
+ \definebuffer[#instance]%
+ \setuevalue{\e!stop#instance}{\buff_parallel_save{#instance}}}
+
+\unexpanded\def\buff_parallel_start#name%
+ {\pushmacro\currentparallel
+ \edef\currentparallel{#name}%
+ \ctxcommand{nextparallel("\currentparallel")}}
+
+\unexpanded\def\buff_parallel_stop
+ {\popmacro\currentparallel}
+
+\unexpanded\def\buff_parallel_save#instance% defined moet ook aan de lua kant kunnen
+ {\ctxcommand{saveparallel("\currentparallel","#instance",buffers.raw("\thedefinedbuffer{#instance}"))}}
+
+\unexpanded\def\placeparallel
+ {\dotripleempty\buff_parallel_place}
+
+\def\buff_parallel_place[#name][#instance][#settings]%
+ {\begingroup
+ \edef\currentparallel{#name}%
+ \ctxcommand{placeparallel("\currentparallel","#instance","#settings")}% -- todo: pass options as k/v
+ \endgroup}
+
+\def\doflushparallel#instance#status#line#label#content% called at lua end
+ {\begingroup
+ \def\currentparallelinstance{#instance}%
+ \def\currentparallelnumber {#status}%
+ \def\currentparallelline {#line}%
+ \def\currentparallellabel {#label}%
+ \def\currentparallelcontent {#content}%
+ \ifcase#status\relax
+ \expandafter\buff_parallel_flush_nop
+ \or
+ \expandafter\buff_parallel_flush_yes
+ \fi
+ \endgroup}
+
+\def\buff_parallel_flush_nop
+ {}
+
+\def\buff_parallel_flush_yes
+ {\directsetup{\namedparallelparameter\currentparallelinstance\c!setups}}
+
+\unexpanded\def\doifelseparallel#name#instance%
+ {\ctxcommand{doifelseparallel("#name","#instance")}}
+
+\unexpanded\def\resetparallel
+ {\dodoubleempty\buff_parallel_reset}
+
+\def\buff_parallel_reset[#name][#instance]%
+ {\ctxcommand{resetparallel("#name","#instance"))}}
+
+\startsetups parallel:place:default
+ \hangafter\plusone
+ \hangindent4em
+ \dontleavehmode
+ \hbox to 3em \bgroup
+ \hss
+ \bf
+ \doifsomething \currentparallellabel {
+ \textreference[\currentparallellabel]{\currentparallelline}
+ }
+ \currentparallelline
+ \quad
+ \egroup
+ \currentparallelcontent
+ \par
+\stopsetups
+
+\protect \endinput
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 7983be951..3349752b7 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context-version.png b/tex/context/base/context-version.png
index 9b10a799d..0d1b62401 100644
--- a/tex/context/base/context-version.png
+++ b/tex/context/base/context-version.png
Binary files differ
diff --git a/tex/context/base/mult-sys.mkiv b/tex/context/base/mult-sys.mkiv
index 77585dac1..65c456cdc 100644
--- a/tex/context/base/mult-sys.mkiv
+++ b/tex/context/base/mult-sys.mkiv
@@ -529,7 +529,6 @@
\definesystemvariable {ph} % ParagrapH
\definesystemvariable {pn} % PaginaNummer
\definesystemvariable {pr} % PRogrammas
-\definesystemvariable {px} % Parallel
\definesystemvariable {py} % PropertYs
\definesystemvariable {pv} % PublicationVariable
\definesystemvariable {ql} % catcode table let % already defined
diff --git a/tex/context/base/node-fin.lua b/tex/context/base/node-fin.lua
index 5c1cc9ad5..069ef0b3a 100644
--- a/tex/context/base/node-fin.lua
+++ b/tex/context/base/node-fin.lua
@@ -387,7 +387,7 @@ states.selective = selective
-- Ideally the next one should be merged with the previous but keeping it separate is
-- safer. We deal with two situations: efficient boxwise (layoutareas) and mixed layers
-- (as used in the stepper). In the stepper we cannot use the box branch as it involves
--- paragraph lines and then getsmixed up. A messy business (esp since we want to be
+-- paragraph lines and then gets mixed up. A messy business (esp since we want to be
-- efficient).
local function stacked(namespace,attribute,head,default) -- no triggering, no inheritance, but list-wise
@@ -411,7 +411,6 @@ local function stacked(namespace,attribute,head,default) -- no triggering, no in
done = done or ok
end
end
---~ elseif default then
elseif default > 0 then
--
elseif current > 0 then
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index b7a12b9a4..0b2e4f2da 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index afeb6a14c..43d7748cd 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/status-mkiv.lua b/tex/context/base/status-mkiv.lua
index 228707dce..563fc7fd8 100644
--- a/tex/context/base/status-mkiv.lua
+++ b/tex/context/base/status-mkiv.lua
@@ -249,12 +249,13 @@ return {
{
filename = "attr-lay",
marktype = "mkiv",
- status = "unknown",
+ status = "okay",
+ comment = "at least for now",
},
{
filename = "attr-neg",
marktype = "mkiv",
- status = "unknown",
+ status = "okay",
},
{
filename = "attr-eff",
@@ -845,8 +846,9 @@ return {
},
{
filename = "buff-par",
- marktype = "mkiv",
- status = "unknown",
+ marktype = "mkvi",
+ status = "okay",
+ comment = "experimental code",
},
{
filename = "buff-imp-tex",
diff --git a/tex/context/base/tabl-ntb.mkiv b/tex/context/base/tabl-ntb.mkiv
index 52cc09096..5045075db 100644
--- a/tex/context/base/tabl-ntb.mkiv
+++ b/tex/context/base/tabl-ntb.mkiv
@@ -82,7 +82,7 @@
\unexpanded\def\tabl_tnb_cell_start
{\inhibitblank
\dotagTABLEcell
- \tabl_tnb_next_level
+% \tabl_tnb_next_level
\usenaturaltablelocalstyleandcolor\c!style\c!color
\everypar{\naturaltablelocalparameter\c!left\delayedbegstrut}}
@@ -179,6 +179,10 @@
{\advance\c_tabl_level\plusone
\edef\m_tabl_tbl_level{\the\c_tabl_level}}
+\def\tabl_tnb_prev_level
+ {\advance\c_tabl_level\minusone
+ \edef\m_tabl_tbl_level{\the\c_tabl_level}}
+
\tabl_tnb_next_level % go to level 1
\installcorenamespace{naturaltable} % was tbl
@@ -277,7 +281,8 @@
% {\expandafter\def\expandafter\m_tabl_tbl_level\expandafter{\m_tabl_tbl_level}\tabl_ntb_cell_process{#3}{#4}[#5]{#6}}}
\unexpanded\def\tabl_ntb_set_txt_process#1#2#3#4#5#6%
- {\expandafter\def\csname\??naturaltabletxt\m_tabl_tbl_level:\number#1:\number#2\endcsname{\tabl_ntb_cell_process{#3}{#4}[#5]{#6}}}
+ {\expandafter\def\csname\??naturaltabletxt\m_tabl_tbl_level:\number#1:\number#2\endcsname
+ {\tabl_ntb_cell_process{#3}{#4}[#5]{\tabl_tnb_next_level#6\tabl_tnb_prev_level}}}
\def\tabl_ntb_get_txt#1#2%
{\csname\??naturaltabletxt\m_tabl_tbl_level:\number#1:\number#2\endcsname}
@@ -1221,8 +1226,8 @@
{\doifnotinset\localwidth{\v!fit,\v!broad}% user set
{\scratchdimen\tabl_ntb_get_aut\c_tabl_ntb_col\relax
\ifdim\localwidth>\scratchdimen
- \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth\relax}%
- \fi}}%
+ \tabl_ntb_set_aut\c_tabl_ntb_col{\the\dimexpr\localwidth}%
+ \fi}}
\def\tabl_ntb_table_stop
{\setbox\scratchbox\hbox