summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/mult-prm.lua1
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin24598 -> 24611 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin264785 -> 264782 bytes
-rw-r--r--tex/context/base/mkxl/buff-ini.mkxl2
-rw-r--r--tex/context/base/mkxl/colo-ext.mkxl2
-rw-r--r--tex/context/base/mkxl/colo-grp.mkxl8
-rw-r--r--tex/context/base/mkxl/colo-ini.mkxl4
-rw-r--r--tex/context/base/mkxl/cont-new.mkxl2
-rw-r--r--tex/context/base/mkxl/context.mkxl2
-rw-r--r--tex/context/base/mkxl/core-con.mkxl22
-rw-r--r--tex/context/base/mkxl/driv-shp.lmt22
-rw-r--r--tex/context/base/mkxl/enco-ini.mkxl4
-rw-r--r--tex/context/base/mkxl/file-ini.mklx2
-rw-r--r--tex/context/base/mkxl/file-job.mklx6
-rw-r--r--tex/context/base/mkxl/font-ini.mklx2
-rw-r--r--tex/context/base/mkxl/font-sym.mklx24
-rw-r--r--tex/context/base/mkxl/lang-ini.mkxl4
-rw-r--r--tex/context/base/mkxl/lpdf-rul.lmt12
-rw-r--r--tex/context/base/mkxl/mlib-ctx.mkxl11
-rw-r--r--tex/context/base/mkxl/mlib-fio.lmt11
-rw-r--r--tex/context/base/mkxl/mlib-int.lmt12
-rw-r--r--tex/context/base/mkxl/mult-aux.mkxl2
-rw-r--r--tex/context/base/mkxl/mult-ini.mkxl6
-rw-r--r--tex/context/base/mkxl/pack-ori.mkxl3
-rw-r--r--tex/context/base/mkxl/page-com.mkxl2
-rw-r--r--tex/context/base/mkxl/page-lay.mkxl2
-rw-r--r--tex/context/base/mkxl/page-lin.mklx2
-rw-r--r--tex/context/base/mkxl/page-mak.mklx4
-rw-r--r--tex/context/base/mkxl/page-txt.mklx2
-rw-r--r--tex/context/base/mkxl/publ-ini.mkxl8
-rw-r--r--tex/context/base/mkxl/scrn-but.mklx50
-rw-r--r--tex/context/base/mkxl/scrn-wid.mklx2
-rw-r--r--tex/context/base/mkxl/spac-hor.mkxl4
-rw-r--r--tex/context/base/mkxl/spac-ver.lmt28
-rw-r--r--tex/context/base/mkxl/spac-ver.mkxl8
-rw-r--r--tex/context/base/mkxl/strc-flt.mklx10
-rw-r--r--tex/context/base/mkxl/strc-itm.mklx237
-rw-r--r--tex/context/base/mkxl/strc-lab.mkxl8
-rw-r--r--tex/context/base/mkxl/strc-lst.mklx4
-rw-r--r--tex/context/base/mkxl/strc-not.mklx2
-rw-r--r--tex/context/base/mkxl/strc-pag.mkxl16
-rw-r--r--tex/context/base/mkxl/strc-sbe.mkxl2
-rw-r--r--tex/context/base/mkxl/strc-sec.mkxl4
-rw-r--r--tex/context/base/mkxl/supp-box.mkxl2
-rw-r--r--tex/context/base/mkxl/syst-aux.mkxl9
-rw-r--r--tex/context/base/mkxl/tabl-tbl.mkxl285
-rw-r--r--tex/context/base/mkxl/trac-vis.lmt36
-rw-r--r--tex/context/base/mkxl/typo-ada.mkxl23
-rw-r--r--tex/context/base/mkxl/typo-adj.lmt5
-rw-r--r--tex/context/base/mkxl/typo-itm.mkxl10
-rw-r--r--tex/context/base/mkxl/typo-mar.mkxl10
-rw-r--r--tex/context/base/mkxl/typo-syn.lmt2
-rw-r--r--tex/context/base/mkxl/typo-syn.mkxl2
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
58 files changed, 623 insertions, 330 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 3809814e6..910099ba4 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2022.12.22 22:14}
+\newcontextversion{2022.12.27 21:02}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 73d2ecbc6..ebc3a7ed1 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2022.12.22 22:14}
+\edef\contextversion{2022.12.27 21:02}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index b863f8982..9da0701b3 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2022.12.22 22:14}
+\newcontextversion{2022.12.27 21:02}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 5186fe98b..76d26f591 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -49,7 +49,7 @@
%D {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2022.12.22 22:14}
+\edef\contextversion{2022.12.27 21:02}
%D Kind of special:
diff --git a/tex/context/base/mkiv/mult-prm.lua b/tex/context/base/mkiv/mult-prm.lua
index 8285b26be..87e7119f2 100644
--- a/tex/context/base/mkiv/mult-prm.lua
+++ b/tex/context/base/mkiv/mult-prm.lua
@@ -427,6 +427,7 @@ return {
"ifzerodim",
"ifzeronum",
"ignorearguments",
+ "ignoredepthcriterium",
"ignorepars",
"immediate",
"immutable",
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index f172a1695..401fcaf55 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 11e841468..da72ebe62 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkxl/buff-ini.mkxl b/tex/context/base/mkxl/buff-ini.mkxl
index e7b243374..d192a01ea 100644
--- a/tex/context/base/mkxl/buff-ini.mkxl
+++ b/tex/context/base/mkxl/buff-ini.mkxl
@@ -31,7 +31,7 @@
\permanent\tolerant\protected\def\resetbuffer[#1]{\clf_erasebuffer{#1}} % todo: use public implementor
-\permanent\setuvalue{\e!start\v!buffer}%
+\permanent\protected\defcsname\e!start\v!buffer\endcsname
{\begingroup % (3)
\obeylines
\buff_start}
diff --git a/tex/context/base/mkxl/colo-ext.mkxl b/tex/context/base/mkxl/colo-ext.mkxl
index 51e9b91ff..a70bd9b18 100644
--- a/tex/context/base/mkxl/colo-ext.mkxl
+++ b/tex/context/base/mkxl/colo-ext.mkxl
@@ -46,7 +46,7 @@
\installcorenamespace{colorintent}
\permanent\protected\def\registercolorintent#1#2% \relax is needed !
- {\setevalue{\??colorintent#1}{\c_attr_colorintent\clf_registercolorintent{#2}\relax}}
+ {\edefcsname\??colorintent#1\endcsname{\c_attr_colorintent\clf_registercolorintent{#2}\relax}}
\protected\def\colo_intents_set
{\clf_enablecolorintents
diff --git a/tex/context/base/mkxl/colo-grp.mkxl b/tex/context/base/mkxl/colo-grp.mkxl
index 952bb18b3..1d3df712c 100644
--- a/tex/context/base/mkxl/colo-grp.mkxl
+++ b/tex/context/base/mkxl/colo-grp.mkxl
@@ -76,10 +76,10 @@
{\advanceby\c_colo_groups_n\plusone
\csname\??colorgroupsetter\ifcsname\??colorgroupsetter#2\endcsname#2\else\s!rgb\fi\endcsname[#1:\the\c_colo_groups_n][#3:0:0:0:0]}
-\setvalue{\??colorgroupsetter\s!gray}[#1][#2:#3]{\definecolor[#1][s=#2]}
-\setvalue{\??colorgroupsetter\s!rgb }[#1][#2:#3:#4:#5]{\definecolor[#1][r=#2,g=#3,b=#4]}
-\setvalue{\??colorgroupsetter\s!cmyk}[#1][#2:#3:#4:#5:#6]{\definecolor[#1][c=#2,m=#3=,y=#4,k=#5]}
-\setvalue{\??colorgroupsetter\s!spot}[#1][#2:#3:#4]{\definespotcolor[#1][#2][p=#3]}
+\defcsname\??colorgroupsetter\s!gray\endcsname[#1][#2:#3]{\definecolor[#1][s=#2]}
+\defcsname\??colorgroupsetter\s!rgb \endcsname[#1][#2:#3:#4:#5]{\definecolor[#1][r=#2,g=#3,b=#4]}
+\defcsname\??colorgroupsetter\s!cmyk\endcsname[#1][#2:#3:#4:#5:#6]{\definecolor[#1][c=#2,m=#3=,y=#4,k=#5]}
+\defcsname\??colorgroupsetter\s!spot\endcsname[#1][#2:#3:#4]{\definespotcolor[#1][#2][p=#3]}
%D \macros
%D {showcolorgroup}
diff --git a/tex/context/base/mkxl/colo-ini.mkxl b/tex/context/base/mkxl/colo-ini.mkxl
index f17ec0b2b..6b9b8a5f8 100644
--- a/tex/context/base/mkxl/colo-ini.mkxl
+++ b/tex/context/base/mkxl/colo-ini.mkxl
@@ -538,14 +538,14 @@
% \or
% \colo_palet_prepare{#1}%
% \ifcondition\validassignment{#2}%
-% \setevalue{\??colorpaletspecification#1}{#2}%
+% \edefcsname\??colorpaletspecification#1\endcsname{#2}%
% \processcommalist[#2]{\colo_palets_define_one{#1}}%
% \orelse\ifcsname\??colorpaletspecification#2\endcsname
% \normalexpanded{\colo_palets_define_b{#1}{\lastnamedcs}{}}%
% \fi
% \or
% \colo_palet_prepare{#1}%
-% \setevalue{\??colorpaletspecification#1}{#2}%
+% \edefcsname\??colorpaletspecification#1\endcsname{#2}%
% \colo_palet_extend{#2}%
% \colo_palets_define_assign{#1}{#2}{#3}%
% \fi}
diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl
index ed5b54767..f704da4e1 100644
--- a/tex/context/base/mkxl/cont-new.mkxl
+++ b/tex/context/base/mkxl/cont-new.mkxl
@@ -13,7 +13,7 @@
% \normalend % uncomment this to get the real base runtime
-\newcontextversion{2022.12.22 22:14}
+\newcontextversion{2022.12.27 21:02}
%D This file is loaded at runtime, thereby providing an excellent place for hacks,
%D patches, extensions and new features. There can be local overloads in cont-loc
diff --git a/tex/context/base/mkxl/context.mkxl b/tex/context/base/mkxl/context.mkxl
index 77660ad15..2aec57d7b 100644
--- a/tex/context/base/mkxl/context.mkxl
+++ b/tex/context/base/mkxl/context.mkxl
@@ -29,7 +29,7 @@
%D {YYYY.MM.DD HH:MM} format.
\immutable\edef\contextformat {\jobname}
-\immutable\edef\contextversion{2022.12.22 22:14}
+\immutable\edef\contextversion{2022.12.27 21:02}
%overloadmode 1 % check frozen / warning
%overloadmode 2 % check frozen / error
diff --git a/tex/context/base/mkxl/core-con.mkxl b/tex/context/base/mkxl/core-con.mkxl
index 5a2d50493..f9aa1a69d 100644
--- a/tex/context/base/mkxl/core-con.mkxl
+++ b/tex/context/base/mkxl/core-con.mkxl
@@ -419,7 +419,7 @@
\installcorenamespace{date}
\permanent\tolerant\protected\def\definedate[#1]#,[#2]%
- {\ifarguments\else\setvalue{\??date#1}{#2}\fi}
+ {\ifarguments\else\defcsname\??date#1\endcsname{#2}\fi}
\def\syst_converters_check_date_specification#1%
{\ifcsname\??date#1\endcsname
@@ -568,8 +568,8 @@
\def\syst_converters_define_conversion_indeed#1#2#3%
{\doifelseinstring{,}{\detokenize{#3}}
{\clf_defineconversion{#2}{\detokenize{#3}}% a set e.g. of symbols
- \setgvalue{\??conversion#1}{\syst_converters_checked_conversion{#2}}}
- {\setgvalue{\??conversion#1}{#3}}}
+ \gdefcsname\??conversion#1\endcsname{\syst_converters_checked_conversion{#2}}}
+ {\gdefcsname\??conversion#1\endcsname{#3}}}
\def\syst_converters_checked_conversion#1#2%
{\clf_checkedconversion{#1}\numexpr#2\relax}
@@ -588,9 +588,9 @@
\permanent\protected\def\uconvertnumber % unexpandable
{\convertnumber}
-\setvalue{\??conversionarguments1}#1{\csname\??conversion\currentlanguage#1\endcsname}
-\setvalue{\??conversionarguments2}#1{\csname\??conversion #1\endcsname}
-\letvalue{\??conversionarguments3}\syst_converters_checked_conversion
+\defcsname\??conversionarguments1\endcsname#1{\csname\??conversion\currentlanguage#1\endcsname}
+\defcsname\??conversionarguments2\endcsname#1{\csname\??conversion #1\endcsname}
+\letcsname\??conversionarguments3\endcsname \syst_converters_checked_conversion
% we can also add a \ctxcommand{doifelseconversion("#1","\currentlanguage")} to check
% if we have definitions that are not matched at the lua end .. eventually we might do
@@ -617,11 +617,11 @@
%D Handy.
-\setvalue{\??conversionwords\v!one }{1}
-\setvalue{\??conversionwords\v!two }{2}
-\setvalue{\??conversionwords\v!three}{3}
-\setvalue{\??conversionwords\v!four }{4}
-\setvalue{\??conversionwords\v!five }{5}
+\defcsname\??conversionwords\v!one \endcsname{1}
+\defcsname\??conversionwords\v!two \endcsname{2}
+\defcsname\??conversionwords\v!three\endcsname{3}
+\defcsname\??conversionwords\v!four \endcsname{4}
+\defcsname\??conversionwords\v!five \endcsname{5}
%permanent\def\wordtonumber#1#2{\ifcsname\??conversionwords#1\endcsname\csname\??conversionwords#1\endcsname\else#2\fi}
\permanent\def\wordtonumber#1#2{\ifcsname\??conversionwords#1\endcsname\lastnamedcs\else#2\fi}
diff --git a/tex/context/base/mkxl/driv-shp.lmt b/tex/context/base/mkxl/driv-shp.lmt
index 7aba4ac01..9a37ccf8a 100644
--- a/tex/context/base/mkxl/driv-shp.lmt
+++ b/tex/context/base/mkxl/driv-shp.lmt
@@ -856,16 +856,18 @@ local hlist_out, vlist_out do
local save_h = cur_h
if pos_r == righttoleft_code then
cur_h = ref_h - shipbox_h + cur_h
- cur_h = width * (cur_h // width)
+ cur_h = width * (cur_h / width)
cur_h = ref_h - shipbox_h - cur_h
else
cur_h = ref_h - shipbox_h - cur_h
- cur_h = width * (cur_h // width)
+ cur_h = width * (cur_h / width)
cur_h = ref_h - shipbox_h - cur_h
end
if cur_h < save_h then
cur_h = cur_h + width
end
+ local lr = gluewidth % width
+ cur_h = cur_h + lr / 2
elseif subtype == leaders_code then
local save_h = cur_h
cur_h = width * (cur_h / width)
@@ -873,8 +875,8 @@ local hlist_out, vlist_out do
cur_h = cur_h + width
end
else
- lq = gluewidth / width
- lr = gluewidth % width
+ local lq = gluewidth / width
+ local lr = gluewidth % width
if subtype == cleaders_code then
cur_h = cur_h + lr / 2
else
@@ -1306,11 +1308,13 @@ local hlist_out, vlist_out do
if subtype == gleaders_code then
save_v = cur_v
cur_v = ref_v - shipbox_v - cur_v
- cur_v = total * (cur_v // total)
+ cur_v = total * (cur_v / total)
cur_v = ref_v - shipbox_v - cur_v
if cur_v < save_v then
cur_v = cur_v + total
end
+ local lr = glueheight % total
+ cur_v = cur_v + lr / 2
elseif subtype == leaders_code then -- aleader
save_v = cur_v
cur_v = top_edge + total * ((cur_v - top_edge) // total)
@@ -1318,13 +1322,13 @@ local hlist_out, vlist_out do
cur_v = cur_v + total
end
else
- lq = glueheight / total
- lr = glueheight % total
+ local lq = glueheight / total
+ local lr = glueheight % total
if subtype == cleaders_code then
- cur_v = cur_v + lr // 2
+ cur_v = cur_v + lr / 2
else
ly = lr // (lq + 1)
- cur_v = cur_v + (lr - (lq - 1) * ly) // 2
+ cur_v = cur_v + (lr - (lq - 1) * ly) / 2
end
end
local shift = getshift(leader)
diff --git a/tex/context/base/mkxl/enco-ini.mkxl b/tex/context/base/mkxl/enco-ini.mkxl
index 5370035ed..3d87ee776 100644
--- a/tex/context/base/mkxl/enco-ini.mkxl
+++ b/tex/context/base/mkxl/enco-ini.mkxl
@@ -71,7 +71,7 @@
\fi
\endcsname}
-\immutable\letvalue{\??accents}\empty
+\immutable\letcsname\??accents\endcsname\empty
%D Because now have this (\type {\chr} issues a one|-|time warning):
@@ -237,7 +237,7 @@
{\topaccent{0pt}{0}{15}{\textgrave}} % e.g.
\permanent\protected\def\definemathaccent#1 #2%
- {\setvalue{#1}{\mathaccent#2 }}
+ {\defcsname#1\endcsname{\mathaccent#2 }} % can be redefined
% from enco-def:
diff --git a/tex/context/base/mkxl/file-ini.mklx b/tex/context/base/mkxl/file-ini.mklx
index 66107a083..106536eea 100644
--- a/tex/context/base/mkxl/file-ini.mklx
+++ b/tex/context/base/mkxl/file-ini.mklx
@@ -214,7 +214,7 @@
{\ifcsname\??fileonce#whatever\endcsname
\expandafter\gobbleoneargument
\else
- \letgvalue{\??fileonce#whatever}\relax
+ \aliased\gletcsname\??fileonce#whatever\endcsname\relax
\expandafter\firstofoneargument
\fi}
diff --git a/tex/context/base/mkxl/file-job.mklx b/tex/context/base/mkxl/file-job.mklx
index 6dc3d34be..6272b551f 100644
--- a/tex/context/base/mkxl/file-job.mklx
+++ b/tex/context/base/mkxl/file-job.mklx
@@ -277,8 +277,8 @@
\normalexpanded {%
\startsetups[\currentdocument:\v!start]\noexpand\directsetup{\ifempty\currentdocumentparent\s!document\else\currentdocumentparent\fi:\v!start}\stopsetups
\startsetups[\currentdocument:\v!stop ]\noexpand\directsetup{\ifempty\currentdocumentparent\s!document\else\currentdocumentparent\fi:\v!stop }\stopsetups
- \permanent\setvalue{\e!start\currentdocument}{\startdocument[\currentdocument]}%
- \permanent\setvalue{\e!stop \currentdocument}{\stopdocument}
+ \permanent\defcsname\e!start\currentdocument\endcsname{\startdocument[\currentdocument]}%
+ \permanent\defcsname\e!stop \currentdocument\endcsname{\stopdocument}
}%
\to \everydefinedocument
@@ -339,7 +339,7 @@
%
% \protected\def\samplefile#1%
% {\ifcsname\??samplefile#1\endcsname \else
-% \setxvalue{\??samplefile#1}{\cldloadfile{#1}}%
+% \xdefcsname\??samplefile#1\endcsname{\cldloadfile{#1}}%
% \fi
% \lastnamedcs}
diff --git a/tex/context/base/mkxl/font-ini.mklx b/tex/context/base/mkxl/font-ini.mklx
index e32ed0bf2..6647bd061 100644
--- a/tex/context/base/mkxl/font-ini.mklx
+++ b/tex/context/base/mkxl/font-ini.mklx
@@ -1949,7 +1949,7 @@
% we need to check the fontclass
\permanent\def\registerfontclass#class%
- {\letgvalue{\??fontclassyes#class}\v!yes} % global ?
+ {\gletcsname\??fontclassyes#class\endcsname\v!yes} % global ?
\permanent\def\setcurrentfontclass#class%
{\ifcsname\??fontclassyes#class\endcsname
diff --git a/tex/context/base/mkxl/font-sym.mklx b/tex/context/base/mkxl/font-sym.mklx
index 83b3447ea..9e6482c8d 100644
--- a/tex/context/base/mkxl/font-sym.mklx
+++ b/tex/context/base/mkxl/font-sym.mklx
@@ -56,19 +56,17 @@
% potential generalization:
%
-% \letvalue{\??fontfile:t:\s!rm}\s!Serif
-% \letvalue{\??fontfile:t:\s!ss}\s!Sans
-% \letvalue{\??fontfile:t:\s!tt}\s!Mono
-%
-% \letvalue{\??fontfile:a:\s!rm}\s!Regular
-% \letvalue{\??fontfile:a:\s!ss}\s!Support
-% \letvalue{\??fontfile:a:\s!tt}\s!Type
-%
-% \letvalue{\??fontfile:s:\s!bf}\s!Bold
-% \letvalue{\??fontfile:s:\s!sl}\s!Slanted
-% \letvalue{\??fontfile:s:\s!it}\s!Italic
-% \letvalue{\??fontfile:s:\s!bs}\s!BoldSlanted
-% \letvalue{\??fontfile:s:\s!bi}\s!BoldItalic
+% \letcsname\??fontfile:t:\s!rm\endcsname\s!Serif
+% \letcsname\??fontfile:t:\s!ss\endcsname\s!Sans
+% \letcsname\??fontfile:t:\s!tt\endcsname\s!Mono
+% \letcsname\??fontfile:a:\s!rm\endcsname\s!Regular
+% \letcsname\??fontfile:a:\s!ss\endcsname\s!Support
+% \letcsname\??fontfile:a:\s!tt\endcsname\s!Type
+% \letcsname\??fontfile:s:\s!bf\endcsname\s!Bold
+% \letcsname\??fontfile:s:\s!sl\endcsname\s!Slanted
+% \letcsname\??fontfile:s:\s!it\endcsname\s!Italic
+% \letcsname\??fontfile:s:\s!bs\endcsname\s!BoldSlanted
+% \letcsname\??fontfile:s:\s!bi\endcsname\s!BoldItalic
%
% \def\v_font_string_a{\executeifdefined{\??fontfile:t:\fontstyle}\s!Serif}
% \def\v_font_string_a{\executeifdefined{\??fontfile:t:\fontstyle}\s!Serif}
diff --git a/tex/context/base/mkxl/lang-ini.mkxl b/tex/context/base/mkxl/lang-ini.mkxl
index ef85838dc..93b991e44 100644
--- a/tex/context/base/mkxl/lang-ini.mkxl
+++ b/tex/context/base/mkxl/lang-ini.mkxl
@@ -379,10 +379,10 @@
\let\lang_basics_synchronize_nop\zerocount % not loaded anyway
-\letvalue{\??languagenumbers}\lang_basics_synchronize_nop % initime
+\letcsname\??languagenumbers\endcsname\lang_basics_synchronize_nop % initime
\appendtoks
- \letvalue{\??languagenumbers}\lang_basics_synchronize_yes % runtime
+ \letcsname\??languagenumbers\endcsname\lang_basics_synchronize_yes % runtime
\to \everydump
\def\lang_basics_synchronize
diff --git a/tex/context/base/mkxl/lpdf-rul.lmt b/tex/context/base/mkxl/lpdf-rul.lmt
index bfedf23b2..dfa5d1a89 100644
--- a/tex/context/base/mkxl/lpdf-rul.lmt
+++ b/tex/context/base/mkxl/lpdf-rul.lmt
@@ -352,17 +352,17 @@ do
end
end
- local f_rectangle = formatters["%.6N w %.6N %.6N %.6N %.6N re %s"]
- local f_baselined = formatters["%.6N w %.6N %.6N %.6N %.6N re s %.6N %.6N m %.6N %.6N l s"]
- local f_dashlined = formatters["%.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s"]
- local f_dashtwice = formatters["%.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s %.6N %.6N m %.6N %.6N l s"]
+ local f_rectangle = formatters["q %.6N w %.6N %.6N %.6N %.6N re %s Q"]
+ local f_baselined = formatters["q %.6N w %.6N %.6N %.6N %.6N re s %.6N %.6N m %.6N %.6N l s Q"]
+ local f_dashlined = formatters["q %.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s Q"]
+ local f_dashtwice = formatters["q %.6N w %.6N %.6N %.6N %.6N re s [%.6N %.6N] 2 d %.6N %.6N m %.6N %.6N l s %.6N %.6N m %.6N %.6N l s Q"]
local f_radtangle = formatters[
-[[%.6N w %.6N %.6N m
+[[q %.6N w %.6N %.6N m
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
%.6N %.6N l %.6N %.6N %.6N %.6N y
-h %s]]
+h %s Q]]
]
local rule_any = function(p,h,v,i,n)
diff --git a/tex/context/base/mkxl/mlib-ctx.mkxl b/tex/context/base/mkxl/mlib-ctx.mkxl
index 7c88585e9..91bcaa58b 100644
--- a/tex/context/base/mkxl/mlib-ctx.mkxl
+++ b/tex/context/base/mkxl/mlib-ctx.mkxl
@@ -15,6 +15,17 @@
\installcorenamespace{graphicvariable}
+% \unprotect
+
+% \newdimension\d_adaptive_width
+% \newdimension\d_adaptive_height
+% \newdimension\d_adaptive_depth
+% \newdimension\d_adaptive_line
+% \newdimension\d_adaptive_hsize
+% \newbox \b_adaptive_box
+
+% \protect
+
\registerctxluafile{mlib-fio}{autosuffix}
\registerctxluafile{mlib-run}{autosuffix}
\registerctxluafile{mlib-ctx}{autosuffix}
diff --git a/tex/context/base/mkxl/mlib-fio.lmt b/tex/context/base/mkxl/mlib-fio.lmt
index e4db28cea..07c9275be 100644
--- a/tex/context/base/mkxl/mlib-fio.lmt
+++ b/tex/context/base/mkxl/mlib-fio.lmt
@@ -9,7 +9,8 @@ if not modules then modules = { } end modules ['mlib-fio'] = {
local type = type
local find = string.find
local concat = table.concat
-local suffix, addsuffix = file.suffix, file.addsuffix
+local suffix, addsuffix, is_writable = file.suffix, file.addsuffix, file.is_writable
+local urlhashed = url.hashed
local findfile = resolvers.findfile
local mplibnew = mplib.new
@@ -90,7 +91,7 @@ end
-- finders.file = function(specification,name,mode,kind)
-- if mode == "r" then
-- return findmpfile(name,kind)
--- elseif file.is_writable(name) then
+-- elseif is_writable(name) then
-- return name
-- else
-- return nil
@@ -102,7 +103,7 @@ end
-- finders.file = function(specification,name,mode,kind)
-- if not mode or mode == "r" then
-- return findmpfile(name,kind)
--- elseif file.is_writable(name) then
+-- elseif is_writable(name) then
-- return name
-- else
-- return nil
@@ -113,14 +114,14 @@ end
finders.file = function(specification,name,mode,kind)
if mode == "w" then
- return file.is_writable(name) and name or nil
+ return is_writable(name) and name or nil
else
return findmpfile(name,kind) or nil
end
end
local function finder(name,mode,kind) -- fake message for mpost.map and metafun.mpvi
- local specification = url.hashed(name)
+ local specification = urlhashed(name)
local finder = finders[specification.scheme] or finders.file
local found = finder(specification,name,mode,validftype(ftype))
return found
diff --git a/tex/context/base/mkxl/mlib-int.lmt b/tex/context/base/mkxl/mlib-int.lmt
index ea9092611..3d71db82f 100644
--- a/tex/context/base/mkxl/mlib-int.lmt
+++ b/tex/context/base/mkxl/mlib-int.lmt
@@ -244,10 +244,14 @@ end
do
- local d_adaptive_width = isdimen("d_adaptive_width") registerdirect("AdaptiveWidth", function() return d_adaptive_width * factor end)
- local d_adaptive_height = isdimen("d_adaptive_height") registerdirect("AdaptiveHeight", function() return d_adaptive_height * factor end)
- local d_adaptive_depth = isdimen("d_adaptive_depth") registerdirect("AdaptiveDepth", function() return d_adaptive_depth * factor end)
- local d_adaptive_line = isdimen("d_adaptive_line") registerdirect("AdaptiveThickness", function() return d_adaptive_line * factor end)
+ local d_adaptive_width = isdimen("d_adaptive_width") registerdirect("AdaptiveWidth", function() return getdimen(d_adaptive_width) * factor end)
+ local d_adaptive_height = isdimen("d_adaptive_height") registerdirect("AdaptiveHeight", function() return getdimen(d_adaptive_height) * factor end)
+ local d_adaptive_depth = isdimen("d_adaptive_depth") registerdirect("AdaptiveDepth", function() return getdimen(d_adaptive_depth) * factor end)
+ local d_adaptive_line = isdimen("d_adaptive_line") registerdirect("AdaptiveThickness", function() return getdimen(d_adaptive_line) * factor end)
registerdirect("AdaptiveColor", function() return getmacro("m_adaptive_color") end)
+ registerdirect("AdaptiveTotal", function()
+ return (getdimen(d_adaptive_height) + getdimen(d_adaptive_depth)) * factor
+ end)
+
end
diff --git a/tex/context/base/mkxl/mult-aux.mkxl b/tex/context/base/mkxl/mult-aux.mkxl
index d45a48923..08d75a5b3 100644
--- a/tex/context/base/mkxl/mult-aux.mkxl
+++ b/tex/context/base/mkxl/mult-aux.mkxl
@@ -796,7 +796,7 @@
% First we had, in tune with the regular system variables:
%
% \starttyping
-% \protected\def\installnamespace#1{\setvalue{????#1}{@@@@#1}}
+% \protected\def\installnamespace#1{\defcsname ????#1\endcsname{@@@@#1}}
% \stoptyping
%
% The following variant is nicer and in principle faster but that gets unnoticed
diff --git a/tex/context/base/mkxl/mult-ini.mkxl b/tex/context/base/mkxl/mult-ini.mkxl
index 0e010429e..19370814f 100644
--- a/tex/context/base/mkxl/mult-ini.mkxl
+++ b/tex/context/base/mkxl/mult-ini.mkxl
@@ -357,7 +357,7 @@
\permanent\protected\def\startmessages #1 library: #2 %
{\begingroup
- \ifcsname\m!prefix!#2\endcsname\else\immutable\setgvalue{\m!prefix!#2}{#2}\fi
+ \ifcsname\m!prefix!#2\endcsname\else\immutable\gdefcsname\m!prefix!#2\endcsname{#2}\fi
\catcode\endoflineasciicode\othercatcode
\doifelseinset{#1}{\currentresponses,all}\mult_messages_start_yes\mult_messages_start_nop{#2}}
@@ -716,9 +716,9 @@
\permanent\overloaded\protected\def\setinterfaceelement#1#2%
{\clf_setinterfaceelement{#1}{#2}%
\ifcsname\e!prefix!#1\endcsname
- \doifnotvalue{\e!prefix!#1}{#2}{\enforced\immutable\setvalue{\e!prefix!#1}{#2}}%
+ \doifnotvalue{\e!prefix!#1}{#2}{\enforced\immutable\defcsname\e!prefix!#1\endcsname{#2}}%
\else
- \enforced\immutable\setvalue{\e!prefix!#1}{#2}%
+ \enforced\immutable\defcsname\e!prefix!#1\endcsname{#2}%
\fi}
\permanent\protected\def\setinterfacecommand#1#2% \frozen ? \permanent ?
diff --git a/tex/context/base/mkxl/pack-ori.mkxl b/tex/context/base/mkxl/pack-ori.mkxl
index 83ff08822..584e70c22 100644
--- a/tex/context/base/mkxl/pack-ori.mkxl
+++ b/tex/context/base/mkxl/pack-ori.mkxl
@@ -36,7 +36,7 @@
\c!vertical=\v!normal]
\appendtoks
- \expandafter\chardef\csname\??orientations\currentorientation\endcsname\toorientation
+ \expandafter\integerdef\csname\??orientations\currentorientation\endcsname\toorientation
orientation {\orientationparameter\c!orientation}
horizontal {\orientationparameter\c!horizontal}
vertical {\orientationparameter\c!vertical}
@@ -51,6 +51,7 @@
\defineorientation[\v!right] [\c!orientation=\v!right]
\defineorientation[\v!top] [\c!orientation=\v!top]
\defineorientation[\v!bottom][\c!orientation=\v!bottom]
+\defineorientation[\v!line] [\c!orientation=\v!line]
%D There will be some more helpers here.
diff --git a/tex/context/base/mkxl/page-com.mkxl b/tex/context/base/mkxl/page-com.mkxl
index 525a7fd3a..ae408f384 100644
--- a/tex/context/base/mkxl/page-com.mkxl
+++ b/tex/context/base/mkxl/page-com.mkxl
@@ -163,7 +163,7 @@
\hskip\dimexpr\paperwidth+\d_page_comments_distance+\d_page_comments_offset\relax
\fi}}
-\permanent\protected\setvalue{\e!start\v!pagecomment}%
+\permanent\protected\defcsname\e!start\v!pagecomment\endcsname
{\global\settrue\c_page_comment_enabled
\grabbufferdatadirect\v!pagecomment{\e!start\v!pagecomment}{\e!stop\v!pagecomment}}
diff --git a/tex/context/base/mkxl/page-lay.mkxl b/tex/context/base/mkxl/page-lay.mkxl
index 9fc767800..d56becbc6 100644
--- a/tex/context/base/mkxl/page-lay.mkxl
+++ b/tex/context/base/mkxl/page-lay.mkxl
@@ -809,7 +809,7 @@
{\xdefcsname\??layoutcolumn\recurselevel\endcsname
{\the\numexpr\recurselevel-\plusone\relax\dimexpr\layoutcolumnwidth+\layoutcolumndistance\relax}}
-\letvalue{\??layoutcolumn0}\zeropoint
+\aliased\letcsname\??layoutcolumn0\endcsname\zeropoint
\permanent\def\layoutcolumnoffset#1% can travel around so we can't use \lastnamedcs
{\csname\??layoutcolumn\ifcsname\??layoutcolumn#1\endcsname#1\else0\fi\endcsname}
diff --git a/tex/context/base/mkxl/page-lin.mklx b/tex/context/base/mkxl/page-lin.mklx
index d16d19942..71a0e0c6e 100644
--- a/tex/context/base/mkxl/page-lin.mklx
+++ b/tex/context/base/mkxl/page-lin.mklx
@@ -94,7 +94,7 @@
\glet\page_postprocessors_linenumbers_column \page_postprocessors_linenumbers_column_indeed}
\def\page_lines_start_define
- {\setxvalue{\??linenumberinginstance\currentlinenumbering}%
+ {\xdefcsname\??linenumberinginstance\currentlinenumbering\endcsname
{\clf_registerlinenumbering
% continue {\ifnum\c_page_lines_mode=\zerocount\v!yes\else\v!no\fi}%
continue {\ifzero\c_page_lines_mode\v!yes\else\v!no\fi}%
diff --git a/tex/context/base/mkxl/page-mak.mklx b/tex/context/base/mkxl/page-mak.mklx
index 2a5cd4352..f0d01cc36 100644
--- a/tex/context/base/mkxl/page-mak.mklx
+++ b/tex/context/base/mkxl/page-mak.mklx
@@ -184,11 +184,11 @@
\normalexpanded{\setuplayout[\m_page_makeup_name][\s!parent=\??layout]}% is remembered but checked later anyway
\fi}
-\setvalue{\??makeupdoublesided\v!yes}%
+\defcsname\??makeupdoublesided\v!yes\endcsname
{\emptyhbox
\page}
-\setvalue{\??makeupdoublesided\v!empty}%
+\defcsname\??makeupdoublesided\v!empty\endcsname
{\the\t_page_makeup_every_setup
% == \page[\v!dummy]
\page[\v!blank]%
diff --git a/tex/context/base/mkxl/page-txt.mklx b/tex/context/base/mkxl/page-txt.mklx
index 7b044284f..76aa15cab 100644
--- a/tex/context/base/mkxl/page-txt.mklx
+++ b/tex/context/base/mkxl/page-txt.mklx
@@ -219,7 +219,7 @@
%D Left and right texts are swapped on odd and even pages, but only when double
%D sided typesetting is enabled.
-\setvalue{\??layouttextstrut\v!yes}{\setstrut\strut} % maybe more variants
+\defcsname\??layouttextstrut\v!yes\endcsname{\setstrut\strut} % maybe more variants
\lettonothing\m_page_layouts_element_content
diff --git a/tex/context/base/mkxl/publ-ini.mkxl b/tex/context/base/mkxl/publ-ini.mkxl
index e64104305..b75a933ad 100644
--- a/tex/context/base/mkxl/publ-ini.mkxl
+++ b/tex/context/base/mkxl/publ-ini.mkxl
@@ -363,7 +363,7 @@
\publ_command_yes{#1}}
\permanent\protected\def\definebtxcommand#1% {body} #1..#n{body}
- {\setuvalue{\??btxcommand\csstring#1}}%
+ {\protected\defcsname\??btxcommand\csstring#1\endcsname}%
% access
@@ -1757,9 +1757,9 @@
% \installcorenamespace{btxjournal}
%
-% \letvalue{\s!btxjournal\v!long }\btxexpandedjournal
-% \letvalue{\s!btxjournal\v!short }\btxabbreviatedjournal
-% \letvalue{\s!btxjournal\v!normal}\firstofoneargument
+% \aliased\letcsname\s!btxjournal\v!long \endcsname\btxexpandedjournal
+% \aliased\letcsname\s!btxjournal\v!short \endcsname\btxabbreviatedjournal
+% \aliased\letcsname\s!btxjournal\v!normal\endcsname\firstofoneargument
%
% \protected\def\btxcheckedjournal
% {\expandnamespaceparameter\s!btxjournal\btxrenderingparameter\c!journalconversion}
diff --git a/tex/context/base/mkxl/scrn-but.mklx b/tex/context/base/mkxl/scrn-but.mklx
index db3e3af1e..e22751618 100644
--- a/tex/context/base/mkxl/scrn-but.mklx
+++ b/tex/context/base/mkxl/scrn-but.mklx
@@ -475,14 +475,14 @@
\ht\b_scrn_menu\d_scrn_menu_asked_height
\dp\b_scrn_menu\zeropoint}
-\setvalue{\??menualign\v!right }{\let\scrn_menu_left_align\raggedright}
-\setvalue{\??menualign\v!left }{\let\scrn_menu_left_align\raggedleft}
-\setvalue{\??menualign\v!flushright}{\let\scrn_menu_left_align\raggedleft}
-\setvalue{\??menualign\v!flushleft }{\let\scrn_menu_left_align\raggedright}
-\setvalue{\??menualign\v!middle }{\let\scrn_menu_left_align\raggedcenter}
-\setvalue{\??menualign\v!low }{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\relax}
-\setvalue{\??menualign\v!high }{\let\scrn_menu_top_align\relax\let\scrn_menu_bottom_align\vss}
-\setvalue{\??menualign\v!lohi }{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\vss}
+\defcsname\??menualign\v!right \endcsname{\let\scrn_menu_left_align\raggedright}
+\defcsname\??menualign\v!left \endcsname{\let\scrn_menu_left_align\raggedleft}
+\defcsname\??menualign\v!flushright\endcsname{\let\scrn_menu_left_align\raggedleft}
+\defcsname\??menualign\v!flushleft \endcsname{\let\scrn_menu_left_align\raggedright}
+\defcsname\??menualign\v!middle \endcsname{\let\scrn_menu_left_align\raggedcenter}
+\defcsname\??menualign\v!low \endcsname{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\relax}
+\defcsname\??menualign\v!high \endcsname{\let\scrn_menu_top_align\relax\let\scrn_menu_bottom_align\vss}
+\defcsname\??menualign\v!lohi \endcsname{\let\scrn_menu_top_align\vss\let\scrn_menu_bottom_align\vss}
\let\scrn_menu_left_align \relax
\let\scrn_menu_right_align \relax
@@ -490,7 +490,7 @@
\let\scrn_menu_bottom_align\relax
\def\scrn_menu_set_align
- {\csname\??menualign\interactionmenuparameter\c!itemalign\endcsname}
+ {\begincsname\??menualign\interactionmenuparameter\c!itemalign\endcsname}
%D Hook into the pagebuilder (as less testing as possible):
@@ -523,13 +523,13 @@
\let\scrn_menu_packager\relax
-\setvalue{\??menupacker\v!vertical}% all menus
+\defcsname\??menupacker\v!vertical\endcsname % all menus
{\let\scrn_menu_packager\scrn_menu_packager_vertical
\setbox\b_scrn_menu\hbox{\scrn_menu_actions\currentinteractionmenulocation}%
\scrn_menu_apply_final
\box\b_scrn_menu}
-\setvalue{\??menupacker\v!horizontal}% all menus
+\defcsname\??menupacker\v!horizontal\endcsname % all menus
{\let\scrn_menu_packager\scrn_menu_packager_horizontal
\setbox\b_scrn_menu\vbox{\scrn_menu_actions\currentinteractionmenulocation}%
\scrn_menu_apply_final
@@ -682,13 +682,13 @@
\endgroup
\ignorespaces}
-\aliased\let\startraw \aliased\let\stopraw\relax \ifdefined\raw\else \aliased\let\raw\relax \fi
-\aliased\let\startbut \aliased\let\stopbut\relax \ifdefined\but\else \aliased\let\but\relax \fi
-\aliased\let\startgot \aliased\let\stopgot\relax \ifdefined\got\else \aliased\let\got\relax \fi
-\aliased\let\startnop \aliased\let\stopnop\relax \ifdefined\nop\else \aliased\let\nop\relax \fi
-\aliased\let\starttxt \aliased\let\stoptxt\relax \ifdefined\txt\else \aliased\let\txt\relax \fi
-\aliased\let\startrul \aliased\let\stoprul\relax \ifdefined\rul\else \aliased\let\rul\relax \fi
-\aliased\let\startcom \aliased\let\stopcom\relax \ifdefined\com\else \aliased\let\com\relax \fi
+\aliased\let\startraw\relax \aliased\let\stopraw\relax \ifdefined\raw\else \aliased\let\raw\relax \fi
+\aliased\let\startbut\relax \aliased\let\stopbut\relax \ifdefined\but\else \aliased\let\but\relax \fi
+\aliased\let\startgot\relax \aliased\let\stopgot\relax \ifdefined\got\else \aliased\let\got\relax \fi
+\aliased\let\startnop\relax \aliased\let\stopnop\relax \ifdefined\nop\else \aliased\let\nop\relax \fi
+\aliased\let\starttxt\relax \aliased\let\stoptxt\relax \ifdefined\txt\else \aliased\let\txt\relax \fi
+\aliased\let\startrul\relax \aliased\let\stoprul\relax \ifdefined\rul\else \aliased\let\rul\relax \fi
+\aliased\let\startcom\relax \aliased\let\stopcom\relax \ifdefined\com\else \aliased\let\com\relax \fi
\protected\def\scrn_menu_raw_start[#action]#text\stopraw
{\scrn_menu_action_start
@@ -763,13 +763,13 @@
{\ignorespaces#text\removeunwantedspaces
\ignorespaces}
-\permanent\protected\def\scrn_menu_raw#content\\{\scrn_menu_raw_start#content\stopraw} \aliased\let\stopraw\relax
-\permanent\protected\def\scrn_menu_but#content\\{\scrn_menu_but_start#content\stopbut} \aliased\let\stopbut\relax
-\permanent\protected\def\scrn_menu_got#content\\{\scrn_menu_got_start#content\stopgot} \aliased\let\stopgot\relax
-\permanent\protected\def\scrn_menu_nop#content\\{\scrn_menu_nop_start#content\stopnop} \aliased\let\stopnop\relax
-\permanent\protected\def\scrn_menu_txt#content\\{\scrn_menu_txt_start#content\stoptxt} \aliased\let\stoptxt\relax
-\permanent\protected\def\scrn_menu_rul#content\\{\scrn_menu_rul_start#content\stoprul} \aliased\let\stoprul\relax
-\permanent\protected\def\scrn_menu_com#content\\{\scrn_menu_com_start#content\stopcom} \aliased\let\stopcom\relax
+\permanent\protected\def\scrn_menu_raw#content\\{\scrn_menu_raw_start#content\stopraw}
+\permanent\protected\def\scrn_menu_but#content\\{\scrn_menu_but_start#content\stopbut}
+\permanent\protected\def\scrn_menu_got#content\\{\scrn_menu_got_start#content\stopgot}
+\permanent\protected\def\scrn_menu_nop#content\\{\scrn_menu_nop_start#content\stopnop}
+\permanent\protected\def\scrn_menu_txt#content\\{\scrn_menu_txt_start#content\stoptxt}
+\permanent\protected\def\scrn_menu_rul#content\\{\scrn_menu_rul_start#content\stoprul}
+\permanent\protected\def\scrn_menu_com#content\\{\scrn_menu_com_start#content\stopcom}
\newtoks\everysetmenucommands % public
diff --git a/tex/context/base/mkxl/scrn-wid.mklx b/tex/context/base/mkxl/scrn-wid.mklx
index d377d47ec..382635882 100644
--- a/tex/context/base/mkxl/scrn-wid.mklx
+++ b/tex/context/base/mkxl/scrn-wid.mklx
@@ -502,7 +502,7 @@
\dp\b_scrn_comment_link\currentcommentdepth
\expandnamespaceparameter\??commentlocation\commentparameter\c!location\s!unknown}
-\letvalue{\??commentmethods\v!hidden}\donothing
+\aliased\letcsname\??commentmethods\v!hidden\endcsname\donothing
\protected\def\scrn_comment_flush_traced
{\hpack\bgroup
diff --git a/tex/context/base/mkxl/spac-hor.mkxl b/tex/context/base/mkxl/spac-hor.mkxl
index 75ac2e454..ba7633bec 100644
--- a/tex/context/base/mkxl/spac-hor.mkxl
+++ b/tex/context/base/mkxl/spac-hor.mkxl
@@ -97,7 +97,7 @@
\installcorenamespace {indentingpreset}
\permanent\tolerant\protected\def\defineindenting[#1]#*[#2]% todo: mixes
- {\ifarguments\else\setevalue{\??indentingpreset#1}{#2}\fi}
+ {\ifarguments\else\edefcsname\??indentingpreset#1\endcsname{#2}\fi}
\def\spac_indentation_apply_step_one_nested
{\expandafter\processcommacommand\expandafter[\lastnamedcs]\spac_indentation_apply_step_one}
@@ -383,7 +383,7 @@
\permanent\protected\def\newfrenchspacing{\spac_spacecodes_set_fixed{1050}}
\permanent\protected\def\nonfrenchspacing{\spac_spacecodes_set_stretch}
-\permanent\protected\def\installspacingmethod#1#2{\setvalue{\??spacecodemethod#1}{#2}}
+\permanent\protected\def\installspacingmethod#1#2{\defcsname\??spacecodemethod#1\endcsname{#2}}
\installspacingmethod \empty {} % keep values
\installspacingmethod \v!fixed {\frenchspacing } % equal spaces everywhere
diff --git a/tex/context/base/mkxl/spac-ver.lmt b/tex/context/base/mkxl/spac-ver.lmt
index c9faf3873..01690b7ae 100644
--- a/tex/context/base/mkxl/spac-ver.lmt
+++ b/tex/context/base/mkxl/spac-ver.lmt
@@ -2233,7 +2233,7 @@ do
local flush = false
stackhack = true -- todo: only when grid snapping once enabled
- for n, id, subtype in nextnode, newhead do -- we could just look for glue nodes
+ for n, id, subtype in nextnode, newhead do
if id ~= glue_code then
flush = true
elseif subtype == userskip_code then
@@ -2359,7 +2359,9 @@ do
enabled = v
end)
- local ignoredepth = -65536000
+ local function ignoredepth()
+ return texgetdimen("ignoredepthcriterium") -- -65536000
+ end
-- A previous version analyzed the number of lines moved to the next page in
-- synchronizepage because prevgraf is unreliable in that case. However, we cannot
@@ -2423,16 +2425,17 @@ do
local newdepth = outer.prevdepth
local olddepth = newdepth
if not texlists.pagehead then
- newdepth = ignoredepth
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
+ newdepth = ignoredepth()
+ texset("prevdepth",newdepth)
+ outer.prevdepth = newdepth
end
report("page %i, prevdepth %p => %p",texgetcount("realpageno"),olddepth,newdepth)
-- report("list %s",nodes.idsandsubtypes(head))
else
if not texlists.pagehead then
- texset("prevdepth",ignoredepth)
- outer.prevdepth = ignoredepth
+ local newdepth = ignoredepth()
+ texset("prevdepth",newdepth)
+ outer.prevdepth = newdepth
end
end
end
@@ -2893,3 +2896,14 @@ do
}
end
+
+do
+
+ implement {
+ name = "injectzerobaselineskip",
+ protected = true,
+ public = true,
+ actions = { nodes.pool.baselineskip, context },
+ }
+
+end
diff --git a/tex/context/base/mkxl/spac-ver.mkxl b/tex/context/base/mkxl/spac-ver.mkxl
index 99756a147..2b16e42ee 100644
--- a/tex/context/base/mkxl/spac-ver.mkxl
+++ b/tex/context/base/mkxl/spac-ver.mkxl
@@ -1195,14 +1195,14 @@
\pushoverloadmode
\overloaded\permanent\protected\def\offinterlineskip % later we will overload this with a push pop
- {\baselineskip-\thousandpoint
+ {\baselineskip \ignoredepthcriterium % -\thousandpoint
\lineskip \zeropoint
\lineskiplimit\maxdimen
% We also need this here now; thanks to taco for figuring that out!
\let\minimumlinedistance\zeropoint}
\overloaded\permanent\protected\def\nointerlineskip
- {\prevdepth-\thousandpoint}
+ {\prevdepth\ignoredepthcriterium}% -\thousandpoint
\aliased\let\normaloffinterlineskip\offinterlineskip % knuth's original
@@ -2143,10 +2143,10 @@
\defcsname\??vspace#1:#2\endcsname{#3}%
\fi}
-\letvalue{\??vspace:\s!unknown}\zeropoint
+\letcsname\??vspace:\s!unknown\endcsname\zeropoint
\def\spac_vspace_unknown
- {\csname\??vspace:\s!unknown\endcsname}
+ {\csname\??vspace:\s!unknown\endcsname} % why not a let?
\permanent\tolerant\protected\def\vspace[#1]#*[#2]%
{\par
diff --git a/tex/context/base/mkxl/strc-flt.mklx b/tex/context/base/mkxl/strc-flt.mklx
index 68d97593b..40c627b2c 100644
--- a/tex/context/base/mkxl/strc-flt.mklx
+++ b/tex/context/base/mkxl/strc-flt.mklx
@@ -2180,7 +2180,7 @@
\def\strc_floats_relocate_caption_right#1{\strc_floats_align_caption{\hbox to \d_strc_float_temp_width{\hss#1}}}
\def\strc_floats_relocate_caption_left #1{\strc_floats_align_caption{\hbox to \d_strc_float_temp_width{#1\hss}}}
-\permanent\protected\def\installfloatboxbuilder#1#2{\setvalue{\??floatbuilder#1}{#2}}
+\permanent\protected\def\installfloatboxbuilder#1#2{\defcsname\??floatbuilder#1\endcsname{#2}}
\def\strc_floats_build_box
{\strc_floats_build_box_before
@@ -2415,13 +2415,13 @@
% \expandnamespacemacro\??floatpreparesidecaption\p_strc_floats_caption_width\s!unknown
% \dostoptagged}
%
-% \setvalue{\??floatpreparesidecaption\v!max}%
+% \defcsname\??floatpreparesidecaption\v!max\endcsname
% {\setbox\b_strc_floats_caption\vbox
% {\strc_floats_caption_set_align
% \hsize\wd\b_strc_floats_content
% \strc_floats_make_complete_caption}}
%
-% \setvalue{\??floatpreparesidecaption\v!fit}%
+% \defcsname\??floatpreparesidecaption\v!fit\endcsname
% {\ifdim\wd\b_strc_floats_caption>\wd\b_strc_floats_content\relax
% \setbox\b_strc_floats_caption\vbox
% {\forgetall % needed?
@@ -2432,7 +2432,7 @@
% {\hss\hbox{\strc_floats_make_complete_caption}\hss}%
% \fi}
%
-% \setvalue{\??floatpreparesidecaption\s!unknown}%
+% \defcsname\??floatpreparesidecaption\s!unknown\endcsname
% {\setbox\b_strc_floats_caption\vbox
% {\strc_floats_caption_set_align
% \hsize\p_strc_floats_caption_width % \wd\b_strc_floats_content
@@ -2554,7 +2554,7 @@
% {\ifcsname\??floatsettings#1:#2\endcsname \else
% \expandafter\newtoks\csname\??floatsettings#1:#2\endcsname
% \fi
-% \setvalue{\??floatmethods#1:#2}{#3}}
+% \defcsname\??floatmethods#1:#2\endcsname{#3}}
%
% \protected\def\startfloatmethodsettings#1#2 #3\stopfloatmethodsettings
% {\csname\??floatsettings#1:#2\endcsname\expandafter{\the\csname\??floatsettings#1:#2\endcsname#3}}
diff --git a/tex/context/base/mkxl/strc-itm.mklx b/tex/context/base/mkxl/strc-itm.mklx
index 7c3f0af8a..a3a4c0040 100644
--- a/tex/context/base/mkxl/strc-itm.mklx
+++ b/tex/context/base/mkxl/strc-itm.mklx
@@ -369,21 +369,28 @@
\fi
\fi}
-\def\strc_itemgroups_insert_breakallow {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakallow_indeed}
-\def\strc_itemgroups_insert_breakno {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakno_indeed }
-\def\strc_itemgroups_insert_break {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_break_indeed }
-\def\strc_itemgroups_insert_nobreak {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_nobreak_indeed }
-
-\def\strc_itemgroups_insert_breakallow_indeed{\vspacing[\v!item @0]}
-\def\strc_itemgroups_insert_breakno_indeed {\vspacing[\v!item @10000]}
-\def\strc_itemgroups_insert_break_indeed {\flushnotes
- \vspacing[\v!item @-5]}
-\def\strc_itemgroups_insert_nobreak_indeed {\flushnotes
- \ifinsidecolumns % todo
- \vspacing[\v!item @5]%
- \else
- \vspacing[\v!item @500]%
- \fi}
+\def\strc_itemgroups_insert_breakallow{\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakallow_indeed}
+\def\strc_itemgroups_insert_breakno {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_breakno_indeed }
+\def\strc_itemgroups_insert_break {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_break_indeed }
+\def\strc_itemgroups_insert_nobreak {\strc_itemgroups_insert_break_when_needed\strc_itemgroups_insert_nobreak_indeed }
+
+\def\strc_itemgroups_insert_breakallow_indeed
+ {\vspacing[\v!item @0]}
+
+\def\strc_itemgroups_insert_breakno_indeed
+ {\vspacing[\v!item @10000]}
+
+\def\strc_itemgroups_insert_break_indeed
+ {\flushnotes
+ \vspacing[\v!item @-5]}
+
+\def\strc_itemgroups_insert_nobreak_indeed
+ {\flushnotes
+ \ifinsidecolumns % todo
+ \vspacing[\v!item @5]%
+ \else
+ \vspacing[\v!item @500]%
+ \fi}
\protected\def\strc_itemgroups_process_options#options%
{\processcommacommand[#options]\strc_itemgroups_process_option} % expansion of options is handy for xml
@@ -421,65 +428,123 @@
\setfalse\c_strc_itemgroups_pack
\fi}
-\setvalue{\??itemgroupkeyword\!!zerocount }{} % ignore 0
-\setvalue{\??itemgroupkeyword\v!packed }{\strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!unpacked }{\strc_itemgroups_process_set_option_unpack}
-\setvalue{\??itemgroupkeyword\v!intro }{\settrue\c_strc_itemgroups_intro} % here? not set to false
-\setvalue{\??itemgroupkeyword\v!autointro }{\settrue\c_strc_itemgroups_auto_intro}
-\setvalue{\??itemgroupkeyword\v!broad }{\ifempty\itemgroupfirst
- \let\itemgroupfirst\!!plusone
- \fi
- \letitemgroupparameter\c!factor\itemgroupfirst}
-\setvalue{\??itemgroupkeyword\v!text }{\settrue\c_strc_itemgroups_text
- \settrue\c_strc_itemgroups_inline
- \settrue\c_strc_itemgroups_joined
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!before }{\settrue\c_strc_itemgroups_before}
-\setvalue{\??itemgroupkeyword\v!after }{\settrue\c_strc_itemgroups_after}
-\setvalue{\??itemgroupkeyword\v!nowhite }{\settrue\c_strc_itemgroups_nowhite}
-\setvalue{\??itemgroupkeyword\v!margin }{\setitemgroupparameter\c!width{-2em}} % signal
-\setvalue{\??itemgroupkeyword\v!inmargin }{\setitemgroupparameter\c!width{-2em}} % signal
-\setvalue{\??itemgroupkeyword\v!atmargin }{\ifnum\c_strc_itemgroups_nesting>\plusone
- \setitemgroupparameter\c!width{0em}%
- \fi} % signal
-\setvalue{\??itemgroupkeyword\v!intext }{\settrue\c_strc_itemgroups_inline}
-\setvalue{\??itemgroupkeyword\v!headintext }{\settrue\c_strc_itemgroups_inline_head}
-\setvalue{\??itemgroupkeyword\v!loose }{\setfalse\c_strc_itemgroups_optimize}
-\setvalue{\??itemgroupkeyword\v!fit }{\settrue\c_strc_itemgroups_fitting}
-\setvalue{\??itemgroupkeyword\v!nofit }{\setfalse\c_strc_itemgroups_fitting}
-\setvalue{\??itemgroupkeyword\v!paragraph }{\settrue\c_strc_itemgroups_paragraph
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!joinedup }{\settrue\c_strc_itemgroups_joined
- \strc_itemgroups_process_set_option_pack}
-\setvalue{\??itemgroupkeyword\v!notjoinedup}{\setfalse\c_strc_itemgroups_joined}
-\setvalue{\??itemgroupkeyword\v!serried }{\edef\itemgroupfirst{-\ifempty\itemgroupfirst1\else\itemgroupfirst\fi}%
- \letitemgroupparameter\c!factor\itemgroupfirst}
-\setvalue{\??itemgroupkeyword\v!stopper }{\letitemgroupparameter\c!placestopper\v!yes} % keep {}
-\setvalue{\??itemgroupkeyword\v!nostopper }{\letitemgroupparameter\c!placestopper\v!no} % keep {}
-\setvalue{\??itemgroupkeyword\v!repeat }{\settrue\c_strc_itemgroups_repeat}
-\setvalue{\??itemgroupkeyword\v!norepeat }{\setfalse\c_strc_itemgroups_repeat}
-\setvalue{\??itemgroupkeyword\v!reverse }{\settrue\c_strc_itemgroups_reverse}
-\setvalue{\??itemgroupkeyword\v!columns }{\settrue\c_strc_itemgroups_columns}
-\setvalue{\??itemgroupkeyword\v!one }{\letitemgroupparameter\c!n\plusone}
-\setvalue{\??itemgroupkeyword\v!two }{\letitemgroupparameter\c!n\plustwo}
-\setvalue{\??itemgroupkeyword\v!three }{\letitemgroupparameter\c!n\plusthree}
-\setvalue{\??itemgroupkeyword\v!four }{\letitemgroupparameter\c!n\plusfour}
-\setvalue{\??itemgroupkeyword\v!five }{\letitemgroupparameter\c!n\plusfive}
-\setvalue{\??itemgroupkeyword\v!six }{\letitemgroupparameter\c!n\plussix}
-\setvalue{\??itemgroupkeyword\v!seven }{\letitemgroupparameter\c!n\plusseven}
-\setvalue{\??itemgroupkeyword\v!eight }{\letitemgroupparameter\c!n\pluseight}
-\setvalue{\??itemgroupkeyword\v!nine }{\letitemgroupparameter\c!n\plusnine}
-\setvalue{\??itemgroupkeyword\v!standard }{\setitemgroupparameter\c!width {1.5\emwidth}%
- \setitemgroupparameter\c!distance {.5\emwidth}%
- %\letitemgroupparameter\c!factor \!!zerocount
- \letitemgroupparameter\c!factor {\zerocount}%
- \setitemgroupparameter\c!packcriterium{\zerocount}%
- \resetitemgroupparameter\c!inner
- \resetitemgroupparameter\c!beforehead
- \letitemgroupparameter\c!afterhead \blank
- \letitemgroupparameter\c!before \blank
- \letitemgroupparameter\c!inbetween \blank
- \letitemgroupparameter\c!after \blank}
+\defcsname\??itemgroupkeyword\!!zerocount\endcsname
+ {} % ignore 0
+
+\defcsname\??itemgroupkeyword\v!packed\endcsname
+ {\strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!unpacked\endcsname
+ {\strc_itemgroups_process_set_option_unpack}
+
+\defcsname\??itemgroupkeyword\v!intro\endcsname
+ {\settrue\c_strc_itemgroups_intro} % here? not set to false
+
+\defcsname\??itemgroupkeyword\v!autointro\endcsname
+ {\settrue\c_strc_itemgroups_auto_intro}
+
+\defcsname\??itemgroupkeyword\v!broad\endcsname
+ {\ifempty\itemgroupfirst
+ \let\itemgroupfirst\!!plusone
+ \fi
+ \letitemgroupparameter\c!factor\itemgroupfirst}
+
+\defcsname\??itemgroupkeyword\v!text\endcsname
+ {\settrue\c_strc_itemgroups_text
+ \settrue\c_strc_itemgroups_inline
+ \settrue\c_strc_itemgroups_joined
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!before\endcsname
+ {\settrue\c_strc_itemgroups_before}
+
+\defcsname\??itemgroupkeyword\v!after\endcsname
+ {\settrue\c_strc_itemgroups_after}
+
+\defcsname\??itemgroupkeyword\v!nowhite\endcsname
+ {\settrue\c_strc_itemgroups_nowhite}
+
+\defcsname\??itemgroupkeyword\v!margin\endcsname % signal
+ {\setitemgroupparameter\c!width{-2em}}
+
+\defcsname\??itemgroupkeyword\v!inmargin\endcsname % signal
+ {\setitemgroupparameter\c!width{-2em}}
+
+\defcsname\??itemgroupkeyword\v!atmargin\endcsname% signal
+ {\ifnum\c_strc_itemgroups_nesting>\plusone
+ \setitemgroupparameter\c!width{0em}%
+ \fi}
+
+\defcsname\??itemgroupkeyword\v!intext\endcsname
+ {\settrue\c_strc_itemgroups_inline}
+
+\defcsname\??itemgroupkeyword\v!headintext\endcsname
+ {\settrue\c_strc_itemgroups_inline_head}
+
+\defcsname\??itemgroupkeyword\v!loose\endcsname
+ {\setfalse\c_strc_itemgroups_optimize}
+
+\defcsname\??itemgroupkeyword\v!fit\endcsname
+ {\settrue\c_strc_itemgroups_fitting}
+
+\defcsname\??itemgroupkeyword\v!nofit\endcsname
+ {\setfalse\c_strc_itemgroups_fitting}
+
+\defcsname\??itemgroupkeyword\v!paragraph\endcsname
+ {\settrue\c_strc_itemgroups_paragraph
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!joinedup\endcsname
+ {\settrue\c_strc_itemgroups_joined
+ \strc_itemgroups_process_set_option_pack}
+
+\defcsname\??itemgroupkeyword\v!notjoinedup\endcsname
+ {\setfalse\c_strc_itemgroups_joined}
+
+\defcsname\??itemgroupkeyword\v!serried\endcsname
+ {\edef\itemgroupfirst{-\ifempty\itemgroupfirst1\else\itemgroupfirst\fi}%
+ \letitemgroupparameter\c!factor\itemgroupfirst}
+
+\defcsname\??itemgroupkeyword\v!stopper\endcsname
+ {\letitemgroupparameter\c!placestopper\v!yes} % keep {}
+
+\defcsname\??itemgroupkeyword\v!nostopper\endcsname
+ {\letitemgroupparameter\c!placestopper\v!no} % keep {}
+
+\defcsname\??itemgroupkeyword\v!repeat\endcsname
+ {\settrue\c_strc_itemgroups_repeat}
+
+\defcsname\??itemgroupkeyword\v!norepeat\endcsname
+ {\setfalse\c_strc_itemgroups_repeat}
+
+\defcsname\??itemgroupkeyword\v!reverse\endcsname
+ {\settrue\c_strc_itemgroups_reverse}
+
+\defcsname\??itemgroupkeyword\v!columns\endcsname
+ {\settrue\c_strc_itemgroups_columns}
+
+\defcsname\??itemgroupkeyword\v!one \endcsname{\letitemgroupparameter\c!n\plusone}
+\defcsname\??itemgroupkeyword\v!two \endcsname{\letitemgroupparameter\c!n\plustwo}
+\defcsname\??itemgroupkeyword\v!three\endcsname{\letitemgroupparameter\c!n\plusthree}
+\defcsname\??itemgroupkeyword\v!four \endcsname{\letitemgroupparameter\c!n\plusfour}
+\defcsname\??itemgroupkeyword\v!five \endcsname{\letitemgroupparameter\c!n\plusfive}
+\defcsname\??itemgroupkeyword\v!six \endcsname{\letitemgroupparameter\c!n\plussix}
+\defcsname\??itemgroupkeyword\v!seven\endcsname{\letitemgroupparameter\c!n\plusseven}
+\defcsname\??itemgroupkeyword\v!eight\endcsname{\letitemgroupparameter\c!n\pluseight}
+\defcsname\??itemgroupkeyword\v!nine \endcsname{\letitemgroupparameter\c!n\plusnine}
+
+\defcsname\??itemgroupkeyword\v!standard\endcsname
+ {\setitemgroupparameter \c!width {1.5\emwidth}%
+ \setitemgroupparameter \c!distance {.5\emwidth}%
+ %\letitemgroupparameter \c!factor \!!zerocount
+ \letitemgroupparameter \c!factor {\zerocount}%
+ \setitemgroupparameter \c!packcriterium{\zerocount}%
+ \resetitemgroupparameter\c!inner
+ \resetitemgroupparameter\c!beforehead
+ \letitemgroupparameter \c!afterhead \blank
+ \letitemgroupparameter \c!before \blank
+ \letitemgroupparameter \c!inbetween \blank
+ \letitemgroupparameter \c!after \blank}
\def\strc_itemgroups_initialize_local
{\setfalse\c_strc_itemgroups_inline
@@ -689,9 +754,18 @@
\installcorenamespace{itemstopper}
-\setvalue{\??itemstopper\v!yes }{\itemgroupparameter\c!stopper}
-\setvalue{\??itemstopper\v!display}{\ifconditional\c_strc_itemgroups_inline\else\itemgroupparameter\c!stopper\fi}
-\setvalue{\??itemstopper\v!inline }{\ifconditional\c_strc_itemgroups_inline\itemgroupparameter\c!stopper\fi}
+\defcsname\??itemstopper\v!yes\endcsname
+ {\itemgroupparameter\c!stopper}
+
+\defcsname\??itemstopper\v!display\endcsname
+ {\ifconditional\c_strc_itemgroups_inline\else
+ \itemgroupparameter\c!stopper
+ \fi}
+
+\defcsname\??itemstopper\v!inline\endcsname
+ {\ifconditional\c_strc_itemgroups_inline
+ \itemgroupparameter\c!stopper
+ \fi}
\def\strc_itemgroups_insert_item_counter_indeed % quite slow ... every time this setup .. but it
{\begingroup % can be optimized ... best move some to strc-num
@@ -1573,13 +1647,13 @@
\strc_itemgroups_check_for_repeated
\ignorepars} % \ignorespaces
-\setvalue{\??itemgroupdistance\v!none}%
+\defcsname\??itemgroupdistance\v!none\endcsname
{\let\m_strc_itemgroups_text_distance\zeropoint}
-\setvalue{\??itemgroupdistance\v!space}%
+\defcsname\??itemgroupdistance\v!space\endcsname
{\def\m_strc_itemgroups_text_distance{\interwordspace\s!plus\interwordstretch\s!minus\interwordshrink}}
-\setvalue\??itemgroupdistance % catches empty value
+\defcsname\??itemgroupdistance\endcsname % catches empty value
{\let\m_strc_itemgroups_text_distance\zeropoint}
\protected\def\strc_itemgroups_set_text_item_distance
@@ -1724,7 +1798,8 @@
\normalexpanded{\def\strc_itemgroups_collected_store#1\csname\e!stop\v!item\endcsname}%
{\advanceby\c_strc_itemgroups_collected_stored\plusone
- \setvalue{\??itemgroupstack\number\c_strc_itemgroups_collected_stored}{\startitemgroupitem#1\stopitemgroupitem}}
+ \defcsname\??itemgroupstack\number\c_strc_itemgroups_collected_stored\endcsname
+ {\startitemgroupitem#1\stopitemgroupitem}}
\def\strc_itemgroups_collected_flush_randomize
{\m_strc_itemgroups_collected}
diff --git a/tex/context/base/mkxl/strc-lab.mkxl b/tex/context/base/mkxl/strc-lab.mkxl
index 98bd390f9..327810a51 100644
--- a/tex/context/base/mkxl/strc-lab.mkxl
+++ b/tex/context/base/mkxl/strc-lab.mkxl
@@ -111,7 +111,7 @@
\newconditional\c_strc_constructions_number_keep
-\setvalue{\??constructioninitializer\v!label}%
+\defcsname\??constructioninitializer\v!label\endcsname
{\let \currentlabel \currentconstruction
\enforced\let\constructionparameter \labelparameter
\enforced\let\constructionnamespace \??label
@@ -139,7 +139,7 @@
\setfalse\c_strc_constructions_title_state
\fi}
-\setvalue{\??constructionfinalizer\v!label}%
+\defcsname\??constructionfinalizer\v!label\endcsname
{\ifconditional\c_strc_constructions_number_state
\iftrialtypesetting
\strc_counters_restore\currentconstructionnumber
@@ -173,12 +173,12 @@
\letcsname\??constructionmainhandler\v!label\expandafter\endcsname\csname\??constructionmainhandler\v!description\endcsname
-\protected\setevalue{\??constructioncommandhandler\v!label}%
+\protected\edefcsname\??constructioncommandhandler\v!label\endcsname
{\csname\??constructionstarthandler\v!construction\endcsname
\csname\??constructionstophandler \v!construction\endcsname
\endgroup}
-\protected\setvalue{\??constructiontexthandler\v!label}%
+\protected\defcsname\??constructiontexthandler\v!label\endcsname
{\begingroup
\useconstructionstyleandcolor\c!headstyle\c!headcolor
\strc_labels_text
diff --git a/tex/context/base/mkxl/strc-lst.mklx b/tex/context/base/mkxl/strc-lst.mklx
index 652a40c89..66fd5dfb0 100644
--- a/tex/context/base/mkxl/strc-lst.mklx
+++ b/tex/context/base/mkxl/strc-lst.mklx
@@ -159,7 +159,7 @@
userdata {\detokenize\expandafter{\normalexpanded{#userdata}}}
\relax
\edef\currentlistnumber{\the\scratchcounter}%
- \setxvalue{\??listlocations\currentlist}{\the\locationcount}%
+ \xdefcsname\??listlocations\currentlist\endcsname{\the\locationcount}%
\ifx\p_location\v!here
% this branch injects nodes !
\strc_lists_inject_enhance{\currentlistnumber}%
@@ -684,7 +684,7 @@
% \installcorenamespace{listfiller}
%
% \protected\def\installlistfiller#1#2%
-% {\setuvalue{\??listfiller#1}{#2}}
+% {\protected\defcsname\??listfiller#1\endcsname{#2}}
%
% \protected\def\listfiller#1%
% {\begincsname\??listfiller#1\endcsname}
diff --git a/tex/context/base/mkxl/strc-not.mklx b/tex/context/base/mkxl/strc-not.mklx
index 3bddc7126..29440f582 100644
--- a/tex/context/base/mkxl/strc-not.mklx
+++ b/tex/context/base/mkxl/strc-not.mklx
@@ -2004,7 +2004,7 @@
%
% \protected\def\setnotesymbol[#1]#2#3%
% {\prewordbreak % prevent lookback
-% \setgvalue{\??notesymbol#1}{#3}
+% \gdefcsname\??notesymbol#1\endcsname{#3}
% \strc_notes_inject_symbol}
%
% \protected\def\ownnote[#1]#2#3#4%
diff --git a/tex/context/base/mkxl/strc-pag.mkxl b/tex/context/base/mkxl/strc-pag.mkxl
index ffdd7772b..2da565067 100644
--- a/tex/context/base/mkxl/strc-pag.mkxl
+++ b/tex/context/base/mkxl/strc-pag.mkxl
@@ -292,14 +292,14 @@
\permanent\protected\def\decrementpagenumber{\csname\??pagenumberdec\namedcounterparameter\s!userpage\c!state\endcsname}
\permanent\protected\def\incrementpagenumber{\csname\??pagenumberinc\namedcounterparameter\s!userpage\c!state\endcsname}
-\letvalue{\??pagenumberdec\v!start}\strc_pagenumbers_decrement_userpage
-\letvalue{\??pagenumberdec\v!none }\strc_pagenumbers_decrement_userpage
-\letvalue{\??pagenumberdec\v!empty}\strc_pagenumbers_decrement_userpage
-
-\letvalue{\??pagenumberinc\v!start}\strc_pagenumbers_increment_userpage
-\letvalue{\??pagenumberinc\v!none }\strc_pagenumbers_increment_userpage
-\setvalue{\??pagenumberinc\v!empty}{\strc_pagenumbers_increment_userpage\strc_pagenumbers_synchronize_userpage}
-\letvalue{\??pagenumberinc\v!keep }\strc_pagenumbers_synchronize_userpage
+\letcsname\??pagenumberdec\v!start\endcsname\strc_pagenumbers_decrement_userpage
+\letcsname\??pagenumberdec\v!none \endcsname\strc_pagenumbers_decrement_userpage
+\letcsname\??pagenumberdec\v!empty\endcsname\strc_pagenumbers_decrement_userpage
+
+\letcsname\??pagenumberinc\v!start\endcsname\strc_pagenumbers_increment_userpage
+\letcsname\??pagenumberinc\v!none \endcsname\strc_pagenumbers_increment_userpage
+\defcsname\??pagenumberinc\v!empty\endcsname{\strc_pagenumbers_increment_userpage\strc_pagenumbers_synchronize_userpage}
+\letcsname\??pagenumberinc\v!keep \endcsname\strc_pagenumbers_synchronize_userpage
% Setup general page numbering
diff --git a/tex/context/base/mkxl/strc-sbe.mkxl b/tex/context/base/mkxl/strc-sbe.mkxl
index 5ece81a43..ade59da0b 100644
--- a/tex/context/base/mkxl/strc-sbe.mkxl
+++ b/tex/context/base/mkxl/strc-sbe.mkxl
@@ -128,7 +128,7 @@
\protected\def\strc_sectionblock_get_environment#1%
{\csname\??sectionblockenvironment#1\endcsname}
-\permanent\tolerant\protected\setvalue{\e!start\v!sectionblockenvironment}[#1]% evt \pushendofline \popendofline
+\permanent\tolerant\protected\defcsname\e!start\v!sectionblockenvironment\endcsname[#1]% evt \pushendofline \popendofline
{\grabuntil{\e!stop\v!sectionblockenvironment}{\strc_sectionblock_set_environment{#1}}}
\permanent\protected\expandafter\lettonothing\csname\e!stop\v!sectionblockenvironment\endcsname
diff --git a/tex/context/base/mkxl/strc-sec.mkxl b/tex/context/base/mkxl/strc-sec.mkxl
index 3ea3a990b..002945208 100644
--- a/tex/context/base/mkxl/strc-sec.mkxl
+++ b/tex/context/base/mkxl/strc-sec.mkxl
@@ -1048,7 +1048,7 @@
{\xdefcsname\??hiddenheadattr\currenthead\endcsname
{\headreferenceattributes}% can be used when making a box
\xdefcsname\??hiddenheadsync\currenthead\endcsname
- {\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax
+ {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
% {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
\hpack\headreferenceattributes\bgroup
\noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
@@ -1068,7 +1068,7 @@
{\xdefcsname\??hiddenheadattr\currenthead\endcsname
{\headreferenceattributes}% can be used when making a box
\xdefcsname\??hiddenheadsync\currenthead\endcsname
- {\noexpand\letgvalue{\??hiddenheadsync\currenthead}\relax
+ {\noexpand\gletcsname\??hiddenheadsync\currenthead\endcsname\relax
\noexpand\setmarking[\currentheadcoupling]{li::\currentstructurelistnumber}%
\hpack\headreferenceattributes{}% otherwise no destination ... maybe tag ref as hidden and fall back on page reference
\theheadsynchronization}} % and it's a node anyway
diff --git a/tex/context/base/mkxl/supp-box.mkxl b/tex/context/base/mkxl/supp-box.mkxl
index 8a2a90a1a..bbbc7591e 100644
--- a/tex/context/base/mkxl/supp-box.mkxl
+++ b/tex/context/base/mkxl/supp-box.mkxl
@@ -946,7 +946,7 @@
% \par before the next \vskip gives far worse results
\ifdim\parskip>\zeropoint\vskip\parskip\else\par\fi
% and take a look
- \ifdim\prevdepth=-\thousandpoint
+ \ifdim\prevdepth=-\thousandpoint % or <=
\prevdepth\zeropoint
\fi
\ifdim\prevdepth<\zeropoint\relax
diff --git a/tex/context/base/mkxl/syst-aux.mkxl b/tex/context/base/mkxl/syst-aux.mkxl
index f968cba97..cf39c1cf8 100644
--- a/tex/context/base/mkxl/syst-aux.mkxl
+++ b/tex/context/base/mkxl/syst-aux.mkxl
@@ -584,6 +584,15 @@
\expandafter\secondoftwoarguments
\fi}
+% or (test this):
+%
+% \permanent\protected\def\processallactionsinset[#1]%
+% {\ifcstok{#1}\emptytoks
+% \expandafter\processaction
+% \else
+% \expandafter\syst_helpers_process_all_actions_in_set_indeed
+% \fi[#1]}
+
\aliased\let\doifemptyelse\doifelseempty
\permanent\protected\def\doifempty#1%
diff --git a/tex/context/base/mkxl/tabl-tbl.mkxl b/tex/context/base/mkxl/tabl-tbl.mkxl
index 960138a14..253d3c411 100644
--- a/tex/context/base/mkxl/tabl-tbl.mkxl
+++ b/tex/context/base/mkxl/tabl-tbl.mkxl
@@ -193,6 +193,7 @@
\newconditional \c_tabl_tabulate_pwidth_set
\newconditional \c_tabl_tabulate_reshape
\newconditional \c_tabl_tabulate_no_blank_in_paragraphs % can become always on
+\newconditional \c_tabl_tabulate_no_interline_space
\settrue \c_tabl_tabulate_split
\settrue \c_tabl_tabulate_handlepbreak
@@ -516,7 +517,9 @@
\bgroup
\tabl_tabulate_hook_G
\tabl_tabulate_entry_before
- \aligncontent % \alignmark\alignmark
+\tabl_tabulate_hook_box_begin % might move
+ \aligncontent
+\tabl_tabulate_hook_box_end % might move
\tabl_tabulate_entry_after
\egroup
\noexpand\ifnum\noexpand\c_tabl_tabulate_type=\plusone\noexpand\else
@@ -525,6 +528,7 @@
\noexpand\fi
\ifconditional\c_tabl_tabulate_reshape
\tabl_tabulate_shaped_par_end
+ \else
\fi
\noexpand#2%
\tabl_tabulate_hook_e
@@ -735,41 +739,82 @@
% \dorecurse{100}{\NC \getbuffer \NC test \par test \par \NC \NR}
% \stoptabulate
+% \starttabulate[|w(top,3cm)|w(top,3cm)|]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[|w(top,packed,3cm)|w(top,packed,3cm)|]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(bottom,3cm)|w(bottom,3cm)|}]
+% \NC test \NC test \par test \NC \NR
+% \NC test \NC test \par test \NC \NR
+% \stoptabulate
+%
+% \starttabulate[format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \NC \vtop{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vbox{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \NC \vbox{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+%
+% \starttabulate[interlinespace=no,format={|w(3cm)|w(3cm)|}]
+% \NC \vtop{\strut test} \NC \vbox{\strut test\par \strut test} \NC \NR
+% \NC \vbox{\strut test} \NC \vtop{\strut test\par \strut test} \NC \NR
+% \stoptabulate
+
+\installcorenamespace{tabulatewidth}
+
+\defcsname\??tabulatewidth\v!fit\endcsname
+ {\c_tabl_tabulate_modus\plusthree}
+
+\defcsname\??tabulatewidth\v!fixed\endcsname
+ {\c_tabl_tabulate_modus\plusthree
+ \settrue\c_tabl_tabulate_nopbreak}
+
+\defcsname\??tabulatewidth\v!packed\endcsname
+ {\settrue\c_tabl_tabulate_no_interline_space}
+
+\defcsname\??tabulatewidth\v!auto\endcsname
+ {\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_reshape}
+
+\lettonothing\tabl_tabulate_hook_box_begin
+\lettonothing\tabl_tabulate_hook_box_end
+
+\defcsname\??tabulatewidth\v!top\endcsname
+ {\def\tabl_tabulate_hook_box_begin{\vtop\bgroup\begstrut}%
+ \def\tabl_tabulate_hook_box_end {\endstrut\egroup}}
+
+\defcsname\??tabulatewidth\v!bottom\endcsname
+ {\def\tabl_tabulate_hook_box_begin{\vbox\bgroup\begstrut}%
+ \def\tabl_tabulate_hook_box_end {\endstrut\egroup}}
+
+\def\tabl_tabulate_set_width_step#1%
+ {\ifcsname\??tabulatewidth#1\endcsname
+ \lastnamedcs
+ \else
+ \d_tabl_tabulate_width#1\relax
+ \fi}
+
\def\tabl_tabulate_set_width_indeed(#1)%
- {\processallactionsinset % can be made faster
- [#1]%
- [ \v!fit=>\c_tabl_tabulate_modus\plusthree,
- \v!fixed=>\c_tabl_tabulate_modus\plusthree
- \settrue\c_tabl_tabulate_nopbreak,
- \v!auto=>\c_tabl_tabulate_modus\plusthree
- \settrue\c_tabl_tabulate_reshape,
- \s!unknown=>\d_tabl_tabulate_width#1\relax]%
+ {\rawprocesscommacommand[#1]\tabl_tabulate_set_width_step
\ifconditional\c_tabl_tabulate_pwidth_set
\global\advanceby\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
\fi
\tabl_tabulate_set_preamble}
-% faster but seldom used
-%
-% \installcorenamespace{tabulatewidth}
-%
-% \defcsname\??tabulatewidth\v!fit \endcsname{\c_tabl_tabulate_modus\plusthree}
-% \defcsname\??tabulatewidth\v!fixed\endcsname{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_nopbreak}
-% \defcsname\??tabulatewidth\v!auto \endcsname{\c_tabl_tabulate_modus\plusthree\settrue\c_tabl_tabulate_reshape}
-%
-% \def\tabl_tabulate_set_width_step#1%
-% {\ifcsname\??tabulatewidth#1\endcsname
-% \lastnamedcs
-% \else
-% \d_tabl_tabulate_width#1\relax
-% \fi}
-%
-% \def\tabl_tabulate_set_width_indeed(#1)%
-% {\rawprocesscommacommand[#1]\tabl_tabulate_set_width_step
-% \ifconditional\c_tabl_tabulate_pwidth_set
-% \global\advanceby\d_tabl_tabulate_width_p\d_tabl_tabulate_width % accumulated parwidth
-% \fi
-% \tabl_tabulate_set_preamble}
+% done
\def\tabl_tabulate_set_raggedright {\ifnum\c_tabl_tabulate_type=\plusone \else\raggedright \fi}
\def\tabl_tabulate_set_raggedcenter{\ifnum\c_tabl_tabulate_type=\plusone \else\raggedcenter\fi}
@@ -845,11 +890,12 @@
\glettonothing\m_tabl_tabulate_color
\glettonothing\m_tabl_tabulate_text_color
\glettonothing\m_tabl_tabulate_vrule_color
+ \glettonothing\tabl_tabulate_hook_box
\global\c_tabl_tabulate_colorspan\zerocount
\global\setfalse\c_tabl_auto_align_mode
\global\setfalse\c_tabl_auto_align_mode_new
\resetalignmentcharacter
-% \attribute\aligncharacterattribute\attributeunsetvalue
+ % \attribute\aligncharacterattribute\attributeunsetvalue
\global\advanceby\c_tabl_tabulate_columns\plusone
\letcsname\??tabulatesetup\the\c_tabl_tabulate_columns\endcsname\donothing % here ?
\iftok{#1}\emptytoks
@@ -1326,16 +1372,18 @@
{\tabulationparameter\c!after}
\def\tabl_tabulate_outside_inbetween_indeed
- {\doifempty{\tabulationparameter\c!after}
- {\vskip\strutdp
- \verticalstrut
- \vskip-\struttotal}}
+ {\ifcstok{\tabulationparameter\c!after}\emptytoks\else
+ \vskip\strutdp
+ \verticalstrut
+ \vskip-\struttotal
+ \fi}
\def\tabl_tabulate_inside_inbetween % needs checking
- {\doifempty{\tabulationparameter\c!after}
- {\vskip\strutdp
- \verticalstrut
- \vskip-\struttotal}}
+ {\ifcstok{\tabulationparameter\c!after}\emptytoks\else
+ \vskip\strutdp
+ \verticalstrut
+ \vskip-\struttotal
+ \fi}
\protected\def\tabl_tabulate_start_building
{\ifinsidefloat
@@ -1350,15 +1398,16 @@
%
\resetcharacteralign
%
- \edef\p_distance {\tabulationparameter\c!distance}%
- \edef\p_align {\tabulationparameter\c!align}%
- \edef\p_line {\tabulationparameter\c!rule}%
- \edef\p_rulecolor {\tabulationparameter\c!rulecolor}%
- \edef\p_rulethickness{\tabulationparameter\c!rulethickness}%
- \edef\p_bodyfont {\tabulationparameter\c!bodyfont}%
- \edef\p_indenting {\tabulationparameter\c!indenting}%
- \edef\p_keeptogether {\tabulationparameter\c!keeptogether}%
- \edef\p_blank {\tabulationparameter\c!blank}%
+ \edef\p_distance {\tabulationparameter\c!distance}%
+ \edef\p_align {\tabulationparameter\c!align}%
+ \edef\p_line {\tabulationparameter\c!rule}%
+ \edef\p_rulecolor {\tabulationparameter\c!rulecolor}%
+ \edef\p_rulethickness {\tabulationparameter\c!rulethickness}%
+ \edef\p_bodyfont {\tabulationparameter\c!bodyfont}%
+ \edef\p_indenting {\tabulationparameter\c!indenting}%
+ \edef\p_keeptogether {\tabulationparameter\c!keeptogether}%
+ \edef\p_blank {\tabulationparameter\c!blank}%
+ \edef\p_interlinespace{\tabulationparameter\c!interlinespace}%
%
\ifx\p_keeptogether\v!no
\settrue \c_tabl_tabulate_tolerant_break
@@ -1368,6 +1417,12 @@
%\settrue \c_tabl_tabulate_handlepbreak
\fi
%
+ \ifx\p_interlinespace\v!no
+ \settrue\c_tabl_tabulate_no_interline_space
+ \else
+ \setfalse\c_tabl_tabulate_no_interline_space
+ \fi
+ %
\settrue\c_tabl_tabulate_split
\begincsname\??tabulatesplit\tabulationparameter\c!split\endcsname
%
@@ -1738,9 +1793,6 @@
\tabl_tabulate_color_reset_indeed
\fi}
-% \def\tabl_tabulate_color_reset_indeed
-% {\dorecurse\c_tabl_tabulate_max_colorcolumn{\letgvalue{\??tabulatecolor\recurselevel}\undefined}} % slow
-
\def\tabl_tabulate_color_reset_indeed
{\dofastloopcs\c_tabl_tabulate_max_colorcolumn\tabl_tabulate_color_reset_step}
@@ -1888,6 +1940,84 @@
\permanent\protected\def\tabl_tabulate_CM_first{\global\c_tabl_tabulate_localcolorspan\plustwo \tabl_tabulate_set_color_column\zerocount}
\permanent\protected\def\tabl_tabulate_CR_first{\global\c_tabl_tabulate_localcolorspan\plusthree\tabl_tabulate_set_color_column\zerocount}
+%D New per 27/12/2022:
+
+% \defineorientation[test][orientation=down,vertical=top]
+%
+% \definetabulatemove[a][xoffset=40pt]
+% \definetabulatemove[b][orientation=test,yoffset=depth]
+%
+% \startbuffer[b]
+% \starttabulate[|c|c|]
+% \TM[a] \NC \darkred cell one \NC \darkgray cell one \NC \NR
+% \TM[b] \NC \darkgreen cell one \NC \darkblue cell one \NC \NR
+% \TM[a] \NC \darkred cell two \NC \darkgray cell two \NC \NR
+% \TM[b] \NC \darkgreen cell two \NC \darkblue cell two \NC \NR
+% \TM[a] \NC \darkred cell three \NC \darkgray cell three \NC \NR
+% \TM[b] \NC \darkgreen cell three \NC \darkblue cell three \NC \NR
+% \TM[a] \NC \darkred cell four \NC \darkgray cell four \NC \NR
+% \TM[b] \NC \darkgreen cell four \NC \darkblue cell four \NC \NR
+% \stoptabulate
+% \stopbuffer
+%
+% \start \showmakeup[line] \showstruts \ruledvbox{\getbuffer[b]} \stop
+% \start \showstruts \ruledvbox{\getbuffer[b]} \stop
+% \start \ruledvbox{\getbuffer[b]} \stop
+%
+% \startbuffer[b]
+% \starttabulate[|p|p|]
+% \TM[a] \NC \darkred \samplefile{tufte} \NC \darkgray \samplefile{ward} \NC \NR
+% \NC \darkgreen \samplefile{tufte} \NC \darkblue \samplefile{ward} \NC \NR
+% \TM[a] \NC \darkred \samplefile{tufte} \NC \darkgray \samplefile{ward} \NC \NR
+% \NC \darkgreen \samplefile{tufte} \NC \darkblue \samplefile{ward} \NC \NR
+% \stoptabulate
+% \stopbuffer
+%
+% \start \showmakeup[line] \showstruts \getbuffer[b] \stop
+
+\installcorenamespace{tabulatemove}
+
+\installcommandhandler \??tabulatemove {tabulatemove} \??tabulatemove
+
+\setuptabulatemove
+ [\c!xoffset=\zeropoint,
+ \c!yoffset=\zeropoint,
+ \c!orientation=]
+
+\noaligned\permanent\tolerant\protected\def\tabl_tabulate_TM_yes[#1]#*[#2]%
+ {\beginlocalcontrol
+ \ifhastok={#1}%
+ \setupcurrenttabulatemove[#1]%
+ \else
+ \edef\currenttabulatemove{#1}%
+ \setupcurrenttabulatemove[#2]%
+ \fi
+ \edef\m_orientation{\theorientation{\tabulatemoveparameter\c!orientation}}%
+ \edef\m_xoffset {\tabulatemoveparameter\c!xoffset}%
+ \edef\m_yoffset {\tabulatemoveparameter\c!yoffset}%
+ \scratchyoffset
+ \ifx\m_yoffset\v!depth
+ -\strutdp
+ \orelse\ifx\m_yoffset\v!height
+ -\strutht
+ \else
+ \m_yoffset
+ \fi
+ \relax
+ \scratchxoffset\m_xoffset\relax
+ \xdef\tabl_tabulate_tm
+ {\ifzeropt\scratchxoffset\else\s!xmove \the\scratchxoffset\fi % or move
+ \ifzeropt\scratchyoffset\else\s!ymove \the\scratchyoffset\fi % or move
+ \ifzero \m_orientation \else\s!orientation\m_orientation \fi
+ }%
+ \endlocalcontrol
+ \noalign\tabl_tabulate_tm{}}
+
+\noaligned\permanent\tolerant\protected\def\tabl_tabulate_TM_nop[#1]#*[#2]%
+ {}
+
+\lettonothing\tabl_tabulate_tm % new 27/12/2022
+
%D Sort of special:
%D
%D \startbuffer
@@ -1945,6 +2075,7 @@
\appendtoks
\enforced\let\NR\tabl_tabulate_NR_second
\enforced\let\NB\tabl_tabulate_NB_second
+ \enforced\let\TM\tabl_tabulate_TM_yes
\to \t_tabl_tabulate_initializers_second
\appendtoks
@@ -1953,6 +2084,7 @@
\enforced\let\MR\NR
\enforced\let\LR\NR
\enforced\let\AR\NR
+ \enforced\let\TM\tabl_tabulate_TM_nop
\to \t_tabl_tabulate_initializers_first
% \permanent\protected\def\tabl_tabulate_NR_common#1#2%
@@ -2002,7 +2134,11 @@
\fi
\fi
\fi
- \global\setfalse\c_tabl_tabulate_firstflushed}
+ \global\setfalse\c_tabl_tabulate_firstflushed
+ \ifconditional\c_tabl_tabulate_no_interline_space
+ \nointerlineskip
+ \injectzerobaselineskip
+ \fi}
\protected\def\tabl_tabulate_bbskip_second_split_yes
{\ifvoid\b_tabl_tabulate_current\c_tabl_tabulate_column
@@ -2046,20 +2182,45 @@
\protected\def\tabl_tabulate_xbskip_second{\tabl_tabulate_bskip}
\protected\def\tabl_tabulate_xeskip_second{\tabl_tabulate_eskip}
+% \protected\def\tabl_tabulate_flush_second_indeed
+% {\glettonothing\tabl_tabulate_flush_collected_indeed
+% \global\c_tabl_tabulate_column\zerocount
+% \tabl_tabulate_pbreak_check
+% \dofastloopcs\c_tabl_tabulate_columns\tabl_tabulate_flush_second_step
+% \global\settrue\c_tabl_tabulate_firstflushed}
+%
+% \protected\def\tabl_tabulate_flush_second_step
+% {\ifvoid\b_tabl_tabulate_current\fastloopindex\else
+% \gdef\tabl_tabulate_flush_collected_indeed{\the\t_tabl_tabulate_dummy}%
+% \fi}
+%
+% \def\tabl_tabulate_flush_second
+% {\noalign{\tabl_tabulate_flush_second_indeed}%
+% \tabl_tabulate_flush_collected_indeed}
+
\protected\def\tabl_tabulate_flush_second_indeed
{\glettonothing\tabl_tabulate_flush_collected_indeed
\global\c_tabl_tabulate_column\zerocount
\tabl_tabulate_pbreak_check
+ \global\setfalse\c_tabl_tabulate_split_done % new 27/12/2022
\dofastloopcs\c_tabl_tabulate_columns\tabl_tabulate_flush_second_step
+ \ifconditional\c_tabl_tabulate_split_done\else
+ \glet\tabl_tabulate_tm\s!reset % new 27/12/2022
+ \fi
\global\settrue\c_tabl_tabulate_firstflushed}
\protected\def\tabl_tabulate_flush_second_step
- {\ifvoid\b_tabl_tabulate_current\fastloopindex\else
+ {\ifvoid\b_tabl_tabulate_current\fastloopindex
+ \else
\gdef\tabl_tabulate_flush_collected_indeed{\the\t_tabl_tabulate_dummy}%
+ \ifvoid\b_tabl_tabulate_current\fastloopindex \else
+ \global\settrue\c_tabl_tabulate_split_done % new 27/12/2022
+ \fi
\fi}
\def\tabl_tabulate_flush_second
{\noalign{\tabl_tabulate_flush_second_indeed}%
+ \noalign\tabl_tabulate_tm{\ifx\tabl_tabulate_tm\s!reset\glettonothing\tabl_tabulate_tm\fi}% new 27/12/2022
\tabl_tabulate_flush_collected_indeed}
\protected\def\tabl_tabulate_bskip_second_split_nop
@@ -2105,8 +2266,8 @@
\permanent\tolerant\noaligned\protected\def\tabl_tabulate_BL_second[#1]{\noalign{\tabl_tabulate_hrule_preset[#1]\tabl_tabulate_BL_second_indeed}}
\protected\def\tabl_tabulate_FL_second_indeed
- {\ifinsidefloat\else
- \doifempty{\tabulationparameter\c!before}\tabl_tabulate_baselinecorrection % no expansion
+ {\ifinsidefloat\orelse\ifcstok{\tabulationparameter\c!before}\emptytoks
+ \tabl_tabulate_baselinecorrection
\fi
\tabl_tabulate_hrule_inject
\tabl_tabulate_nobreak_inject
@@ -2528,7 +2689,7 @@
% \NC text \NC text \NC \NR
% \stoptabulate
-\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB[#1]%
+\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB_yes[#1]%
{\noalign\bgroup
\unless\iftok{#1}\emptytoks
\blank[#1]
@@ -2539,9 +2700,17 @@
\fi
\egroup}
+\permanent\tolerant\noaligned\protected\def\tabl_tabulate_TB_nop[#1]%
+ {}
+
\appendtoks
- \enforced\let\TB\tabl_tabulate_TB
-\to \everytabulate
+ \enforced\let\TB\tabl_tabulate_TB_yes
+\to \t_tabl_tabulate_initializers_first
+
+
+\appendtoks
+ \enforced\let\TB\tabl_tabulate_TB_nop
+\to \t_tabl_tabulate_initializers_second
% %D Between alignment lines certain rules apply, and even a simple test can mess
% %D up a table, which is why we have a special test facilityL
diff --git a/tex/context/base/mkxl/trac-vis.lmt b/tex/context/base/mkxl/trac-vis.lmt
index df59f83c0..0cf6cb6a3 100644
--- a/tex/context/base/mkxl/trac-vis.lmt
+++ b/tex/context/base/mkxl/trac-vis.lmt
@@ -797,6 +797,7 @@ local ruledbox do
local getshift = nuts.getshift
local getorientation = nuts.getorientation
+ local setorientation = nuts.setorientation
local getheight = nuts.getheight
setmetatableindex(o_cache,function(t,size)
@@ -811,10 +812,16 @@ local ruledbox do
ruledbox = function(head,current,vertical,layer,what,simple,previous,trace_origin,parent)
local wd, ht, dp = getwhd(current)
--- todo local wd, ht, dh, shift = getlistdimensions(current)
+-- local wd, ht, dh, shift = nuts.getlistdimensions(current) -- MAYBE
local force_origin = wd == 0 or (dp + ht) == 0
local shift = getshift(current)
- local orientation, xoffset, yoffset = getorientation(current)
+-- print(getorientation(current,true))
+ local orientation, xoffset, yoffset, w, h, d = getorientation(current) -- TODO
+if orientation and orientation ~= 0 and (h ~= 0 or d ~= 0) then
+-- wd = w
+ ht = h
+ dp = d
+end
local next = getnext(current)
local prev = previous
setboth(current)
@@ -831,26 +838,6 @@ local ruledbox do
b_cache[what] = this
end
end
- -- we need to trigger the right mode (else sometimes no whatits)
--- local info = setlink(
--- this and copylist(this) or nil,
--- (force_origin and emptyrule(wd,ht,dp)) -- we accept some overhead
--- or dp == 0 and userrule {
--- width = wd,
--- height = ht,
--- line = linewidth,
--- type = "box",
--- baseline = false,
--- }
--- or userrule {
--- width = wd,
--- height = ht,
--- depth = dp,
--- line = linewidth,
--- type = "box",
--- dashed = 3*size,
--- }
--- )
local rest, more
if force_origin then
rest = emptyrule(wd,ht,dp) -- we accept some overhead
@@ -888,6 +875,7 @@ local ruledbox do
dashed = 3*size,
}
end
+ --
local info = setlink(this and copylist(this) or nil,rest,more)
--
setlisttransparency(info,"trace:s")
@@ -934,6 +922,10 @@ local ruledbox do
end
info = new_hlist(info,wd,ht,dp,shift)
end
+-- if orientation then
+-- setorientation(current,0,0)
+-- setorientation(info,orientation,xoffset,yoffset)
+-- end
if next then
setlink(info,next)
end
diff --git a/tex/context/base/mkxl/typo-ada.mkxl b/tex/context/base/mkxl/typo-ada.mkxl
index 8da36f5e4..6e686a932 100644
--- a/tex/context/base/mkxl/typo-ada.mkxl
+++ b/tex/context/base/mkxl/typo-ada.mkxl
@@ -21,13 +21,22 @@
\unprotect
-\newdimension\d_adaptive_width \aliasdimension\usedadaptivewidth \d_adaptive_width
-\newdimension\d_adaptive_height \aliasdimension\usedadaptiveheight\d_adaptive_height
-\newdimension\d_adaptive_depth \aliasdimension\usedadaptivedepth \d_adaptive_depth
-\newdimension\d_adaptive_line \aliasdimension\usedadaptiveline \d_adaptive_line
-\newdimension\d_adaptive_hsize \aliasdimension\usedadaptivehsize \d_adaptive_hsize
-
-\newbox \b_adaptive_box \aliased\let\usedadaptivebox\b_adaptive_box
+\ifdefined\d_adaptive_width \else
+ \newdimension\d_adaptive_width
+ \newdimension\d_adaptive_height
+ \newdimension\d_adaptive_depth
+ \newdimension\d_adaptive_line
+ \newdimension\d_adaptive_hsize
+ \newbox \b_adaptive_box
+\fi
+
+\aliasdimension\usedadaptivewidth \d_adaptive_width
+\aliasdimension\usedadaptiveheight\d_adaptive_height
+\aliasdimension\usedadaptivedepth \d_adaptive_depth
+\aliasdimension\usedadaptiveline \d_adaptive_line
+\aliasdimension\usedadaptivehsize \d_adaptive_hsize
+
+\aliased\let\usedadaptivebox\b_adaptive_box
\mutable\lettonothing\m_adaptive_color
diff --git a/tex/context/base/mkxl/typo-adj.lmt b/tex/context/base/mkxl/typo-adj.lmt
index 1bd82c7b4..d902187e3 100644
--- a/tex/context/base/mkxl/typo-adj.lmt
+++ b/tex/context/base/mkxl/typo-adj.lmt
@@ -19,6 +19,8 @@ local getdepth = nuts.getdepth
local newglue = nuts.pool.glue
local insertafter = nuts.insertafter
+local texgetdimen = tex.getdimen
+
----- a_adjuster = attributes.system("adjuster")
local function correct_depth(head,tail)
@@ -37,7 +39,8 @@ local function correct_depth(head,tail)
end
local function block_baselineskip(head,tail)
- tex.prevdepth = -1000 * 65536 -- ignoredepth
+ -- tex.prevdepth = -1000 * 65536 -- ignoredepth
+ tex.prevdepth = texgetdimen("ignoredepthcriterium")
return head
end
diff --git a/tex/context/base/mkxl/typo-itm.mkxl b/tex/context/base/mkxl/typo-itm.mkxl
index acc12c8ae..5a10cfc9d 100644
--- a/tex/context/base/mkxl/typo-itm.mkxl
+++ b/tex/context/base/mkxl/typo-itm.mkxl
@@ -197,7 +197,7 @@
\defineitems[\v!top][\c!width=\d_typo_items_text_width,\c!textalign=\itemsparameter\c!align]
-\setvalue{\??itemsalternatives\v!top}#1%
+\defcsname\??itemsalternatives\v!top\endcsname#1%
{\let\typo_items_make\typo_items_make_horizontal
\let\typo_items_item\typo_items_item_horizontal
\typo_items_construct_items_boxes{#1}%
@@ -213,7 +213,7 @@
\defineitems[\v!bottom][\c!width=\d_typo_items_text_width,\c!textalign=\itemsparameter\c!align]
-\setvalue{\??itemsalternatives\v!bottom}#1%
+\defcsname\??itemsalternatives\v!bottom\endcsname#1%
{\let\typo_items_make\typo_items_make_horizontal
\let\typo_items_item\typo_items_item_horizontal
\typo_items_construct_items_boxes{#1}%
@@ -229,7 +229,7 @@
\defineitems[\v!inmargin][\c!width=1.5\emwidth,\c!align=\v!flushright,\c!distance=\leftmargindistance]
-\setvalue{\??itemsalternatives\v!inmargin}#1%
+\defcsname\??itemsalternatives\v!inmargin\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
\typo_items_construct_items_boxes{#1}%
@@ -242,7 +242,7 @@
\defineitems[\v!left][\c!width=1.5\emwidth,\c!align=\v!flushleft]
-\setvalue{\??itemsalternatives\v!left}#1%
+\defcsname\??itemsalternatives\v!left\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
\advanceby\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
@@ -257,7 +257,7 @@
\defineitems[\v!right][\c!width=1.5\emwidth,\c!align=\v!flushright]
-\setvalue{\??itemsalternatives\v!right}#1%
+\defcsname\??itemsalternatives\v!right\endcsname#1%
{\let\typo_items_make\typo_items_make_vertical
\let\typo_items_item\typo_items_item_vertical
\advanceby\d_typo_items_text_width-\dimexpr\d_typo_items_symbol_width+\d_typo_items_distance\relax
diff --git a/tex/context/base/mkxl/typo-mar.mkxl b/tex/context/base/mkxl/typo-mar.mkxl
index be43e667d..85161c942 100644
--- a/tex/context/base/mkxl/typo-mar.mkxl
+++ b/tex/context/base/mkxl/typo-mar.mkxl
@@ -328,11 +328,11 @@
% \installcorenamespace{oppositemargin}
%
-% \letvalue{\??oppositemargin\v!left }\v!right
-% \letvalue{\??oppositemargin\v!right }\v!left
-% \letvalue{\??oppositemargin\v!inner }\v!outer
-% \letvalue{\??oppositemargin\v!outer }\v!inner
-% \letvalue{\??oppositemargin\v!normal}\v!normal
+% \letcsname\??oppositemargin\v!left \endcsname\v!right
+% \letcsname\??oppositemargin\v!right \endcsname\v!left
+% \letcsname\??oppositemargin\v!inner \endcsname\v!outer
+% \letcsname\??oppositemargin\v!outer \endcsname\v!inner
+% \letcsname\??oppositemargin\v!normal\endcsname\v!normal
%
% \def\oppositemargin#1%
% {\csname\??oppositemargin\ifcsname\??oppositemargin#1\endcsname#1\else\v!normal\fi\endcsname}
diff --git a/tex/context/base/mkxl/typo-syn.lmt b/tex/context/base/mkxl/typo-syn.lmt
index 4a5b6ae85..53e576391 100644
--- a/tex/context/base/mkxl/typo-syn.lmt
+++ b/tex/context/base/mkxl/typo-syn.lmt
@@ -402,7 +402,7 @@ do
mcriterium = scaninteger()
elseif key == "shrinkcriterium" then
mcriterium = scaninteger()
- elseif key == "stretchcriteriun" then
+ elseif key == "stretchcriterium" then
pcriterium = scaninteger()
else
break
diff --git a/tex/context/base/mkxl/typo-syn.mkxl b/tex/context/base/mkxl/typo-syn.mkxl
index 053f65922..3f71fa43d 100644
--- a/tex/context/base/mkxl/typo-syn.mkxl
+++ b/tex/context/base/mkxl/typo-syn.mkxl
@@ -256,4 +256,6 @@
\definesynchronize
[paralleltext]
+% defined in lua: \hsplit to upto width height depth criterium shrinkcriterium stretchcriterium
+
\protect \endinput
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index ab96db37c..d9d7127a9 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 2022-12-22 22:14
+-- merge date : 2022-12-27 21:02
do -- begin closure to overcome local limits and interference