From db25374e65d39dc254ddce11b40ad4a95e6a385b Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 27 Dec 2022 21:56:16 +0100 Subject: 2022-12-27 21:04:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/mult-prm.lua | 1 + tex/context/base/mkiv/status-files.pdf | Bin 24598 -> 24611 bytes tex/context/base/mkiv/status-lua.pdf | Bin 264785 -> 264782 bytes tex/context/base/mkxl/buff-ini.mkxl | 2 +- tex/context/base/mkxl/colo-ext.mkxl | 2 +- tex/context/base/mkxl/colo-grp.mkxl | 8 +- tex/context/base/mkxl/colo-ini.mkxl | 4 +- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/core-con.mkxl | 22 +- tex/context/base/mkxl/driv-shp.lmt | 22 +- tex/context/base/mkxl/enco-ini.mkxl | 4 +- tex/context/base/mkxl/file-ini.mklx | 2 +- tex/context/base/mkxl/file-job.mklx | 6 +- tex/context/base/mkxl/font-ini.mklx | 2 +- tex/context/base/mkxl/font-sym.mklx | 24 +- tex/context/base/mkxl/lang-ini.mkxl | 4 +- tex/context/base/mkxl/lpdf-rul.lmt | 12 +- tex/context/base/mkxl/mlib-ctx.mkxl | 11 + tex/context/base/mkxl/mlib-fio.lmt | 11 +- tex/context/base/mkxl/mlib-int.lmt | 12 +- tex/context/base/mkxl/mult-aux.mkxl | 2 +- tex/context/base/mkxl/mult-ini.mkxl | 6 +- tex/context/base/mkxl/pack-ori.mkxl | 3 +- tex/context/base/mkxl/page-com.mkxl | 2 +- tex/context/base/mkxl/page-lay.mkxl | 2 +- tex/context/base/mkxl/page-lin.mklx | 2 +- tex/context/base/mkxl/page-mak.mklx | 4 +- tex/context/base/mkxl/page-txt.mklx | 2 +- tex/context/base/mkxl/publ-ini.mkxl | 8 +- tex/context/base/mkxl/scrn-but.mklx | 50 ++-- tex/context/base/mkxl/scrn-wid.mklx | 2 +- tex/context/base/mkxl/spac-hor.mkxl | 4 +- tex/context/base/mkxl/spac-ver.lmt | 28 +- tex/context/base/mkxl/spac-ver.mkxl | 8 +- tex/context/base/mkxl/strc-flt.mklx | 10 +- tex/context/base/mkxl/strc-itm.mklx | 237 +++++++++++------ tex/context/base/mkxl/strc-lab.mkxl | 8 +- tex/context/base/mkxl/strc-lst.mklx | 4 +- tex/context/base/mkxl/strc-not.mklx | 2 +- tex/context/base/mkxl/strc-pag.mkxl | 16 +- tex/context/base/mkxl/strc-sbe.mkxl | 2 +- tex/context/base/mkxl/strc-sec.mkxl | 4 +- tex/context/base/mkxl/supp-box.mkxl | 2 +- tex/context/base/mkxl/syst-aux.mkxl | 9 + tex/context/base/mkxl/tabl-tbl.mkxl | 285 ++++++++++++++++----- tex/context/base/mkxl/trac-vis.lmt | 36 +-- tex/context/base/mkxl/typo-ada.mkxl | 23 +- tex/context/base/mkxl/typo-adj.lmt | 5 +- tex/context/base/mkxl/typo-itm.mkxl | 10 +- tex/context/base/mkxl/typo-mar.mkxl | 10 +- tex/context/base/mkxl/typo-syn.lmt | 2 +- tex/context/base/mkxl/typo-syn.mkxl | 2 + tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 58 files changed, 623 insertions(+), 330 deletions(-) (limited to 'tex') 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 Binary files a/tex/context/base/mkiv/status-files.pdf and b/tex/context/base/mkiv/status-files.pdf differ diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf index 11e841468..da72ebe62 100644 Binary files a/tex/context/base/mkiv/status-lua.pdf and b/tex/context/base/mkiv/status-lua.pdf 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 -- cgit v1.2.3