From a16a68418d3acc0cfa13b8e5a5409263e4c2fedb Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Tue, 18 Jan 2022 11:52:31 +0100 Subject: 2022-01-18 10:51:00 --- tex/context/base/mkii/cont-new.mkii | 2 +- tex/context/base/mkii/context.mkii | 2 +- tex/context/base/mkii/mult-it.mkii | 7 +- tex/context/base/mkiv/cont-new.mkiv | 2 +- tex/context/base/mkiv/context.mkiv | 2 +- tex/context/base/mkiv/core-con.lua | 34 ++- tex/context/base/mkiv/lang-imp-indic.lua | 249 +++++++++++++++++++++ tex/context/base/mkiv/mult-def.lua | 6 + tex/context/base/mkiv/status-files.pdf | Bin 24755 -> 24784 bytes tex/context/base/mkiv/status-lua.pdf | Bin 257574 -> 257644 bytes tex/context/base/mkiv/strc-enu.mkvi | 2 +- tex/context/base/mkxl/cont-new.mkxl | 2 +- tex/context/base/mkxl/context.mkxl | 2 +- tex/context/base/mkxl/core-con.mkxl | 16 +- tex/context/base/mkxl/math-acc.mklx | 14 +- tex/context/base/mkxl/math-fen.mkxl | 2 +- tex/context/base/mkxl/math-frc.lmt | 98 +++++--- tex/context/base/mkxl/math-frc.mkxl | 41 ++-- tex/context/base/mkxl/math-ini.mkxl | 57 +---- tex/context/base/mkxl/node-aux.lmt | 35 +++ tex/context/base/mkxl/page-brk.mkxl | 1 + tex/context/base/mkxl/spac-ver.lmt | 38 +++- tex/context/base/mkxl/strc-pag.mkxl | 18 +- tex/context/interface/mkii/keys-it.xml | 7 +- tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 25 files changed, 510 insertions(+), 129 deletions(-) create mode 100644 tex/context/base/mkiv/lang-imp-indic.lua diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii index 9e34a6edb..52c6a3e48 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.01.15 17:29} +\newcontextversion{2022.01.18 10:48} %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 34d482f1a..e58fbe97b 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.01.15 17:29} +\edef\contextversion{2022.01.18 10:48} %D For those who want to use this: diff --git a/tex/context/base/mkii/mult-it.mkii b/tex/context/base/mkii/mult-it.mkii index 64ec3af62..41e24c0bb 100644 --- a/tex/context/base/mkii/mult-it.mkii +++ b/tex/context/base/mkii/mult-it.mkii @@ -300,6 +300,7 @@ \setinterfacevariable{july}{luglio} \setinterfacevariable{june}{giugno} \setinterfacevariable{keep}{mantieni} +\setinterfacevariable{keeptogether}{keeptogether} \setinterfacevariable{kerncharacters}{kerncharacters} \setinterfacevariable{knockout}{knockout} \setinterfacevariable{label}{etichetta} @@ -886,6 +887,7 @@ \setinterfaceconstant{header}{intestazione} \setinterfaceconstant{headerdistance}{distanzaintestazione} \setinterfaceconstant{headerstate}{statointestazione} +\setinterfaceconstant{headindenting}{headindenting} \setinterfaceconstant{headlabel}{etichettatesta} \setinterfaceconstant{headnumber}{numerotesta} \setinterfaceconstant{headseparator}{headseparator} @@ -991,7 +993,9 @@ \setinterfaceconstant{marstyle}{stilemarcatura} \setinterfaceconstant{mask}{mask} \setinterfaceconstant{mathclass}{mathclass} +\setinterfaceconstant{mathdenominatorstyle}{mathdenominatorstyle} \setinterfaceconstant{mathlimits}{mathlimits} +\setinterfaceconstant{mathnumeratorstyle}{mathnumeratorstyle} \setinterfaceconstant{mathstyle}{mathstyle} \setinterfaceconstant{max}{max} \setinterfaceconstant{maxdepth}{maxdepth} @@ -1229,7 +1233,7 @@ \setinterfaceconstant{solution}{solution} \setinterfaceconstant{sort}{sort} \setinterfaceconstant{sorttype}{sorttype} -\setinterfaceconstant{source}{origine} +\setinterfaceconstant{source}{source} \setinterfaceconstant{space}{spazio} \setinterfaceconstant{spaceafter}{spaziodopo} \setinterfaceconstant{spaceafterside}{spaceafterside} @@ -1280,6 +1284,7 @@ \setinterfaceconstant{synonymcommand}{synonymcommand} \setinterfaceconstant{synonymstyle}{stilesinonimi} \setinterfaceconstant{tab}{tab} +\setinterfaceconstant{target}{target} \setinterfaceconstant{text}{testo} \setinterfaceconstant{textalign}{textalign} \setinterfaceconstant{textalternative}{textalternative} diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv index 592ce5e2e..f139b7f69 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.01.15 17:29} +\newcontextversion{2022.01.18 10:48} %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 19dcd9266..58b9315f3 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.01.15 17:29} +\edef\contextversion{2022.01.18 10:48} %D Kind of special: diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua index 95283a75e..f57eb6ef8 100644 --- a/tex/context/base/mkiv/core-con.lua +++ b/tex/context/base/mkiv/core-con.lua @@ -198,7 +198,39 @@ local decimals = allocate { ['persian'] = { ["0"] = "۰", ["1"] = "۱", ["2"] = "۲", ["3"] = "۳", ["4"] = "۴", ["5"] = "۵", ["6"] = "۶", ["7"] = "۷", ["8"] = "۸", ["9"] = "۹", - } + }, + ['devanagari'] = { + ["0"] = "०", ["1"] = "१", ["2"] = "२", ["3"] = "३", ["4"] = "४", + ["5"] = "५", ["6"] = "६", ["7"] = "७", ["8"] = "८", ["9"] = "९", + }, + ['malayalam'] = { + ["0"] = "൦", ["1"] = "൧", ["2"] = "൨", ["3"] = "൩", ["4"] = "൪", + ["5"] = "൫", ["6"] = "൬", ["7"] = "൭", ["8"] = "൮", ["9"] = "൯", + }, + ['tamil'] = { + ["0"] = "௦", ["1"] = "௧", ["2"] = "௨", ["3"] = "௩", ["4"] = "௪", + ["5"] = "௫", ["6"] = "௬", ["7"] = "௭", ["8"] = "௮", ["9"] = "௯", + }, + ['kannada'] = { + ["0"] = "೦", ["1"] = "೧", ["2"] = "೨", ["3"] = "೩", ["4"] = "೪", + ["5"] = "೫", ["6"] = "೬", ["7"] = "೭", ["8"] = "೮", ["9"] = "೯", + }, + ['telugu'] = { + ["0"] = "౦", ["1"] = "౧", ["2"] = "౨", ["3"] = "౩", ["4"] = "౪", + ["5"] = "౫", ["6"] = "౬", ["7"] = "౭", ["8"] = "౮", ["9"] = "౯", + }, + ['bengali'] = { + ["0"] = "০", ["1"] = "১", ["2"] = "২", ["3"] = "৩", ["4"] = "৪", + ["5"] = "৫", ["6"] = "৬", ["7"] = "৭", ["8"] = "৮", ["9"] = "৯", + }, + ['gujarati'] = { + ["0"] = "૦", ["1"] = "૧", ["2"] = "૨", ["3"] = "૩", ["4"] = "૪", + ["5"] = "૫", ["6"] = "૬", ["7"] = "૭", ["8"] = "૮", ["9"] = "૯", + }, + ['gurmurkhi'] = { + ["0"] = "੦", ["1"] = "੧", ["2"] = "੨", ["3"] = "੩", ["4"] = "੪", + ["5"] = "੫", ["6"] = "੬", ["7"] = "੭", ["8"] = "੮", ["9"] = "੯", + }, } languages.decimals = decimals diff --git a/tex/context/base/mkiv/lang-imp-indic.lua b/tex/context/base/mkiv/lang-imp-indic.lua new file mode 100644 index 000000000..46af00e3b --- /dev/null +++ b/tex/context/base/mkiv/lang-imp-indic.lua @@ -0,0 +1,249 @@ +return { + name = "indic transliterations", + version = "1.00", + comment = "Experimental code, the name of this file might change" + .. "or maybe it become a llg file in the end.", + author = "kauśika and hans", + copyright = "ConTeXt development team & whoever made this list", + transliterations = { + ["iast to indic"] = { + svara = { + ["a"] = "अ", + ["ā"] = "आ", + ["i"] = "इ", + ["ī"] = "ई", + ["u"] = "उ", + ["ū"] = "ऊ", + ["ṛ"] = "ऋ", + ["ṝ"] = "ॠ", + ["ḷ"] = "ऌ", + ["ḹ"] = "ॡ", + ["è"] = "ऎ", + ["e"] = "ए", + ["ai"] = "ऐ", + ["ò"] = "ऒ", + ["o"] = "ओ", + ["au"] = "औ", + }, + vyanjana = { + ["k"] = "क", + ["kh"] = "ख", + ["g"] = "ग", + ["gh"] = "घ", + ["ṅ"] = "ङ", + ["c"] = "च", + ["ch"] = "छ", + ["j"] = "ज", + ["jh"] = "झ", + ["ñ"] = "ञ", + ["ṭ"] = "ट", + ["ṭh"] = "ठ", + ["ḍ"] = "ड", + ["ḍh"] = "ढ", + ["ṇ"] = "ण", + ["t"] = "त", + ["th"] = "थ", + ["d"] = "द", + ["dh"] = "ध", + ["n"] = "न", + ["p"] = "प", + ["ph"] = "फ", + ["b"] = "ब", + ["bh"] = "भ", + ["m"] = "म", + ["y"] = "य", + ["r"] = "र", + ["l"] = "ल", + ["v"] = "व", + ["ś"] = "श", + ["ṣ"] = "ष", + ["s"] = "स", + ["h"] = "ह", + ["ḻ"] = "ळ", + ["x"] = "क्ष", + ["jñ"] = "ज्ञ", + }, + maatra = { + ["a"] = "", + ["ā"] = "ा", + ["i"] = "ि", + ["ī"] = "ी", + ["u"] = "ु", + ["ū"] = "ू", + ["ṛ"] = "ृ", + ["ṝ"] = "ॄ", + ["ḷ"] = "ॢ", + ["ḹ"] = "ॣ", + ["ai"] = "ै", + ["e"] = "े", + ["o"] = "ो", + ["au"] = "ौ", + }, + yogavaaha = { + ["ṁ"] = "ं", + ["ḥ"] = "ः", + ["ँ"] = "ँ", + }, + viraama = { + ["viraama"] = "्", + ["."] = "।", + ["|"] = "।", + ["||"] = "॥", + ["‘"] = "‘", + ["’"] = "’", + }, + }, + ["deva to mlym"] = { + svara = { + ["अ"] = "അ", + ["आ"] = "ആ", + ["इ"] = "ഇ", + ["ई"] = "ഈ", + ["उ"] = "ഉ", + ["ऊ"] = "ഊ", + ["ऋ"] = "ഋ", + ["ॠ"] = "ൠ", + ["ऌ"] = "ഌ", + ["ॡ"] = "ൡ", + ["ऎ"] = "എ", + ["ए"] = "ഏ", + ["ऐ"] = "ഐ", + ["ऒ"] = "ഒ", + ["ओ"] = "ഓ", + ["औ"] = "ഔ", + }, + vyanjana = { + ["क"] = "ക", + ["ख"] = "ഖ", + ["ग"] = "ഗ", + ["घ"] = "ഘ", + ["ङ"] = "ങ", + ["च"] = "ച", + ["छ"] = "ഛ", + ["ज"] = "ജ", + ["झ"] = "ഝ", + ["ञ"] = "ഞ", + ["ट"] = "ട", + ["ठ"] = "ഠ", + ["ड"] = "ഡ", + ["ढ"] = "ഢ", + ["ण"] = "ണ", + ["त"] = "ത", + ["थ"] = "ഥ", + ["द"] = "ദ", + ["ध"] = "ധ", + ["न"] = "ന", + ["प"] = "പ", + ["फ"] = "ഫ", + ["ब"] = "ബ", + ["भ"] = "ഭ", + ["म"] = "മ", + ["य"] = "യ", + ["र"] = "ര", + ["ल"] = "ല", + ["व"] = "വ", + ["श"] = "ശ", + ["ष"] = "ഷ", + ["स"] = "സ", + ["ह"] = "ഹ", + ["ळ"] = "ള", + ["क्ष"] = "ക്ഷ", + ["ज्ञ"] = "ജ്ഞ", + }, + maatra = { + ["ा"] = "ാ", + ["ि"] = "ി", + ["ी"] = "ീ", + ["ु"] = "ു", + ["ू"] = "ൂ", + ["ृ"] = "ൃ", + ["ॄ"] = "ൄ", + ["ॢ"] = "ൢ", + ["ॣ"] = "ൣ", + ["ॆ"] = "െ", + ["े"] = "േ", + ["ै"] = "ൈ", + ["ॊ"] = "ൊ", + ["ो"] = "ോ", + ["ौ"] = "ൌ", + }, + yogavaaha = { + ["ं"] = "ം", + ["ः"] = "ഃ", + ["ँ"] = "ഁ", + }, + viraama = { + ["्"] = "്", + ["viraama"] = "്", -- weird + ["'"] = "'", + ["।"] = ".", + ["॥"] = ".", + ["‘"] = "‘", + ["’"] = "’", + }, + } + } +} + +-- return { +-- transliterations = { +-- ["iast to indic"] = { +-- mapping = { +-- ["a"] = "अ", +-- ["ā"] = "आ", +-- ["i"] = "इ", +-- ["ī"] = "ई", +-- ["u"] = "उ", +-- ["ū"] = "ऊ", +-- ["ṛ"] = "ऋ", +-- ["ṝ"] = "ॠ", +-- ["ḷ"] = "ऌ", +-- ["ḹ"] = "ॡ", +-- ["e"] = "ए", +-- ["o"] = "ओ", +-- ["ṃ"] = "ं", +-- ["ḥ"] = "ः", +-- ["˜"] = "ँ", +-- ["'"] = "ऽ", +-- ["k"] = "क", +-- ["c"] = "च", +-- ["ṭ"] = "ट", +-- ["t"] = "त", +-- ["p"] = "प", +-- ["g"] = "ग", +-- ["j"] = "ज", +-- ["ḍ"] = "ड", +-- ["d"] = "द", +-- ["b"] = "ब", +-- ["ṅ"] = "ङ", +-- ["ñ"] = "ञ", +-- ["ṇ"] = "ण", +-- ["n"] = "न", +-- ["m"] = "म", +-- ["h"] = "ह", +-- ["y"] = "य", +-- ["r"] = "र", +-- ["l"] = "ल", +-- ["v"] = "व", +-- ["ś"] = "श", +-- ["ṣ"] = "ष", +-- ["s"] = "स", +-- -- +-- ["ai"] = "ऐ", +-- ["au"] = "औ", +-- ["kh"] = "ख", +-- ["ch"] = "छ", +-- ["ṭh"] = "ठ", +-- ["th"] = "थ", +-- ["ph"] = "फ", +-- ["gh"] = "घ", +-- ["jh"] = "झ", +-- ["ḍh"] = "ढ", +-- ["dh"] = "ध", +-- ["bh"] = "भ", +-- -- +-- ["khā"] = "खा", +-- } +-- } +-- } +-- } diff --git a/tex/context/base/mkiv/mult-def.lua b/tex/context/base/mkiv/mult-def.lua index d42132689..e294e65d1 100644 --- a/tex/context/base/mkiv/mult-def.lua +++ b/tex/context/base/mkiv/mult-def.lua @@ -10048,6 +10048,12 @@ return { ["en"]="mathstyle", ["fr"]="stylemath", }, + ["mathnumeratorstyle"]={ + ["en"]="mathnumeratorstyle", + }, + ["mathdenominatorstyle"]={ + ["en"]="mathdenominatorstyle", + }, ["max"]={ ["cs"]="max", ["de"]="max", diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf index 591226fa3..26bd5eedd 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 d24583065..d366185ed 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/mkiv/strc-enu.mkvi b/tex/context/base/mkiv/strc-enu.mkvi index a7c48d88e..a64a7ef54 100644 --- a/tex/context/base/mkiv/strc-enu.mkvi +++ b/tex/context/base/mkiv/strc-enu.mkvi @@ -306,7 +306,7 @@ \unexpanded\def\strc_enumerations_inject_symbol % todo check {\begingroup - \useconstructionstyleandcolor\c!numberstyle\c!symbolcolor + \useconstructionstyleandcolor\c!numberstyle\c!numbercolor \constructionparameter\c!left \constructionparameter\c!symbol \constructionparameter\c!right diff --git a/tex/context/base/mkxl/cont-new.mkxl b/tex/context/base/mkxl/cont-new.mkxl index 92cc1fe7f..e8d91be4c 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.01.15 17:29} +\newcontextversion{2022.01.18 10:48} %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 6cd516c3d..1c3563ee3 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.01.15 17:29} +\immutable\edef\contextversion{2022.01.18 10:48} %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 33dc921b7..645eb2308 100644 --- a/tex/context/base/mkxl/core-con.mkxl +++ b/tex/context/base/mkxl/core-con.mkxl @@ -86,9 +86,14 @@ \permanent\def\Alphabeticnumerals#1{\clf_Alphabetic\numexpr#1\relax{}} \permanent\def\thainumerals #1{\clf_alphabetic\numexpr#1\relax{thai}} -\permanent\def\devanagarinumerals#1{\clf_alphabetic\numexpr#1\relax{devanagari}} -\permanent\def\gurmurkhinumerals #1{\clf_alphabetic\numexpr#1\relax{gurmurkhi}} -\permanent\def\gujaratinumerals #1{\clf_alphabetic\numexpr#1\relax{gujarati}} +\permanent\def\devanagarinumerals#1{\clf_decimals\numexpr#1\relax{devanagari}} +\permanent\def\malayalamnumerals #1{\clf_decimals\numexpr#1\relax{malayalam}} +\permanent\def\tamilnumerals #1{\clf_decimals\numexpr#1\relax{tamil}} +\permanent\def\kannadanumerals #1{\clf_decimals\numexpr#1\relax{kannada}} +\permanent\def\telugunumerals #1{\clf_decimals\numexpr#1\relax{telugu}} +\permanent\def\bengalinumerals #1{\clf_decimals\numexpr#1\relax{bengali}} +\permanent\def\gujaratinumerals #1{\clf_decimals\numexpr#1\relax{gujarati}} +\permanent\def\gurmurkhinumerals #1{\clf_decimals\numexpr#1\relax{gurmurkhi}} \permanent\def\tibetannumerals #1{\clf_alphabetic\numexpr#1\relax{tibetan}} \permanent\def\greeknumerals #1{\clf_alphabetic\numexpr#1\relax{greek}} \permanent\def\Greeknumerals #1{\clf_Alphabetic\numexpr#1\relax{greek}} @@ -724,6 +729,11 @@ \defineconversion [thainumerals] [\thainumerals] \defineconversion [devanagarinumerals] [\devanagarinumerals] +\defineconversion [malayalamnumerals] [\malayalamnumerals] +\defineconversion [tamilnumerals] [\tamilnumerals] +\defineconversion [kannadanumerals] [\kannadanumerals] +\defineconversion [telugunumerals] [\telugunumerals] +\defineconversion [bengalinumerals] [\bengalinumerals] \defineconversion [gurmurkhinumerals] [\gurmurkhinumerals] \defineconversion [gujaratinumerals] [\gujaratinumerals] \defineconversion [tibetannumerals] [\tibetannumerals] diff --git a/tex/context/base/mkxl/math-acc.mklx b/tex/context/base/mkxl/math-acc.mklx index 9d8656630..aab7e4874 100644 --- a/tex/context/base/mkxl/math-acc.mklx +++ b/tex/context/base/mkxl/math-acc.mklx @@ -68,23 +68,23 @@ \permanent\tolerant\protected\def\definemathtopaccent[#1]#*[#2]#*[#3]% class name top {\ifparameter#3\or - \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plusone{\number#3}\zerocount}% + \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plusone{\number#3}\zerocount}% \else - \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusone{\number#2}\zerocount}% + \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plusone{\number#2}\zerocount}% \fi} \permanent\tolerant\protected\def\definemathbottomaccent[#1]#*[#2]#*[#3]% class name bottom {\ifparameter#3\or - \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plustwo\zerocount{\number#3}}% + \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plustwo\zerocount{\number#3}}% \else - \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plustwo\zerocount{\number#2}}% + \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plustwo\zerocount{\number#2}}% \fi} \permanent\tolerant\protected\def\definemathdoubleaccent[#1]#*[#2]#*[#3]#*[#4]% class name top bottom {\ifparameter#4\or - \frozen\instance\setuevalue{#2}{\math_accents_make_double {#1}\plusthree{\number#3}{\number#4}}% + \frozen\protected\instance\edefcsname#2\endcsname{\math_accents_make_double {#1}\plusthree{\number#3}{\number#4}}% \else - \frozen\instance\setuevalue{#1}{\math_accents_make_double\noexpand\currentmathaccents\plusthree{\number#2}{\number#3}}% + \frozen\protected\instance\edefcsname#1\endcsname{\math_accents_make_double\noexpand\currentmathaccents\plusthree{\number#2}{\number#3}}% \fi} \let\math_accents_color_pop\donothing @@ -100,7 +100,7 @@ {\begingroup \edef\currentmathaccents {#class}% \edef\p_math_accent_color{\mathaccentsparameter\c!color}% - \startusemathstyleparameter\mathaccentsparameter + \startusemathstyleparameter\mathaccentsparameter\c!mathstyle \ifempty\p_math_accent_color \math_accents_color_push_nop \else diff --git a/tex/context/base/mkxl/math-fen.mkxl b/tex/context/base/mkxl/math-fen.mkxl index 9f328847e..4a3144530 100644 --- a/tex/context/base/mkxl/math-fen.mkxl +++ b/tex/context/base/mkxl/math-fen.mkxl @@ -201,7 +201,7 @@ \newcount\c_math_fenced_nesting \protected\def\math_fenced_fenced_common - {\startusemathstyleparameter\mathfenceparameter + {\startusemathstyleparameter\mathfenceparameter\c!mathstyle \enforced\let\fence\math_fenced_middle \edef\p_math_fenced_color{\mathfenceparameter\c!color}% \ifempty\p_math_fenced_color diff --git a/tex/context/base/mkxl/math-frc.lmt b/tex/context/base/mkxl/math-frc.lmt index 0bc0e3895..c82b8387d 100644 --- a/tex/context/base/mkxl/math-frc.lmt +++ b/tex/context/base/mkxl/math-frc.lmt @@ -29,50 +29,79 @@ end) local ctx_Uatop = context.Uatop local ctx_Uover = context.Uover -local function umathfraction(how,style,left,right,width) - style = tonumber(style) -- or nil +-- local function umathfraction(how,style,left,right,width) +-- style = tonumber(style) -- or nil +-- if how == v_no then +-- if left == 0x002E and right == 0x002E then +-- if style then +-- context("\\Uatop style %i",style) +-- else +-- ctx_Uatop() +-- end +-- else +-- if style then +-- context("\\Uatopwithdelims style %i %s%s",style,resolved[left],resolved[right]) +-- else +-- context("\\Uatopwithdelims%s%s",resolved[left],resolved[right]) +-- end +-- end +-- elseif how == v_yes or how == v_hidden then +-- local norule = how == v_hidden and " norule " or "" +-- if style then +-- if left == 0x002E and right == 0x002E then +-- context("\\Uabove style %i %s%ssp",style,norule,width) +-- else +-- context("\\Uabovewithdelims style %i %s%s%s%ssp",style,norule,resolved[left],resolved[right],width) +-- end +-- else +-- if left == 0x002E and right == 0x002E then +-- context("\\Uabove%s%ssp",norule,width) +-- else +-- context("\\Uabovewithdelims%s%s%s%ssp",norule,resolved[left],resolved[right],width) +-- end +-- end +-- else -- v_auto +-- if left == 0x002E and right == 0x002E then +-- if style then +-- context("\\Uover style %i",style) +-- else +-- ctx_Uover() +-- end +-- else +-- if style then +-- context("\\Uoverwithdelims style %i %s%s",style,resolved[left],resolved[right]) +-- else +-- context("\\Uoverwithdelims%s%s",resolved[left],resolved[right]) +-- end +-- end +-- end +-- end +-- +-- interfaces.implement { +-- name = "umathfraction", +-- actions = umathfraction, +-- arguments = { "string", "string", "number", "number", "dimen" } +-- } + +local function umathfraction(how,left,right,width) if how == v_no then if left == 0x002E and right == 0x002E then - if style then - context("\\Uatop style %i",style) - else - ctx_Uatop() - end + ctx_Uatop() else - if style then - context("\\Uatopwithdelims style %i %s%s",style,resolved[left],resolved[right]) - else - context("\\Uatopwithdelims%s%s",resolved[left],resolved[right]) - end + context("\\Uatopwithdelims%s%s",resolved[left],resolved[right]) end elseif how == v_yes or how == v_hidden then local norule = how == v_hidden and " norule " or "" - if style then - if left == 0x002E and right == 0x002E then - context("\\Uabove style %i %s%ssp",style,norule,width) - else - context("\\Uabovewithdelims style %i %s%s%s%ssp",style,norule,resolved[left],resolved[right],width) - end + if left == 0x002E and right == 0x002E then + context("\\Uabove %s%ssp",norule,width) else - if left == 0x002E and right == 0x002E then - context("\\Uabove%s%ssp",norule,width) - else - context("\\Uabovewithdelims%s%s%s%ssp",norule,resolved[left],resolved[right],width) - end + context("\\Uabovewithdelims %s%s%s%ssp",norule,resolved[left],resolved[right],width) end else -- v_auto if left == 0x002E and right == 0x002E then - if style then - context("\\Uover style %i",style) - else - ctx_Uover() - end + ctx_Uover() else - if style then - context("\\Uoverwithdelims style %i %s%s",style,resolved[left],resolved[right]) - else - context("\\Uoverwithdelims%s%s",resolved[left],resolved[right]) - end + context("\\Uoverwithdelims%s%s",resolved[left],resolved[right]) end end end @@ -80,5 +109,6 @@ end interfaces.implement { name = "umathfraction", actions = umathfraction, - arguments = { "string", "string", "number", "number", "dimen" } + protected = true, + arguments = { "string", "number", "number", "dimen" } } diff --git a/tex/context/base/mkxl/math-frc.mkxl b/tex/context/base/mkxl/math-frc.mkxl index 1175eef1b..8835ea997 100644 --- a/tex/context/base/mkxl/math-frc.mkxl +++ b/tex/context/base/mkxl/math-frc.mkxl @@ -108,6 +108,8 @@ \setupmathfractions [\c!mathstyle=, + \c!mathnumeratorstyle=\mathfractionparameter\c!mathstyle, + \c!mathdenominatorstyle=\mathfractionparameter\c!mathstyle, \c!alternative=\v!inner, \c!margin=\zeropoint, \c!rulethickness=.25\exheight, @@ -130,7 +132,7 @@ \math_fraction_set_distance \to \everymathematics -% why only displaystyle .. a bit weak +% why only displaystyle .. a bit weak .. will become a set \protected\def\math_fraction_set_distance_top {\Umathfractionnumup \displaystyle\m_math_fraction_distance_top @@ -266,10 +268,16 @@ % See \MKIV\ for the old (more messy) implementation where we have to fight the over % related syntax (we now use a lmtx primitive). -\def\math_frac_command_u#1% +% {\ifcstok{#1}\emptytoks\else\tomathstyle#1\fi}% +% +% {\expandedmathstyleparameter\mathfractionparameter\c!mathstyle}% + +% timestamp: 01/2022 : (re)watching eNerd⁴ - Time Capsule 2020 a.k.a. Farewell Party +% for Normalcy (UHD) with the soekris/neumanns combination + +\def\math_frac_command_u {\clf_umathfraction {\mathfractionparameter\c!rule}% - {\ifcstok{#1}\emptytoks\else\tomathstyle#1\fi}% \ifempty\p_math_fraction_fences \mathfractionparameter\c!left \space \mathfractionparameter\c!right\space @@ -282,22 +290,20 @@ \protected\defcsname\??mathfractionalternative\v!inner\endcsname#1#2% {\math_frac_command_u - {}% {\expandedmathstyleparameter\mathfractionparameter}% {\math_fraction_margin_kern -\usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle \m_fractions_strut_top#1% \math_fraction_margin_kern}% {\math_fraction_margin_kern -\usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle \m_fractions_strut_bot#2% \math_fraction_margin_kern}% \math_frac_wrapup} \protected\defcsname\??mathfractionalternative\v!outer\endcsname#1#2% {\beginmathgroup - \usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathstyle \math_frac_command_u - {}% {\math_fraction_margin_kern \m_fractions_strut_top#1% \math_fraction_margin_kern}% @@ -309,15 +315,14 @@ \protected\defcsname\??mathfractionalternative\v!both\endcsname#1#2% {\beginmathgroup - \usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathstyle \math_frac_command_u -{}% {\expandedmathstyleparameter\mathfractionparameter}% {\math_fraction_margin_kern -\usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathnumeratorstyle \m_fractions_strut_top#1% \math_fraction_margin_kern}% {\math_fraction_margin_kern -\usemathstyleparameter\mathfractionparameter + \usemathstyleparameter\mathfractionparameter\c!mathdenominatorstyle \m_fractions_strut_bot#2% \math_fraction_margin_kern}% \endmathgroup @@ -445,15 +450,15 @@ % $$ {{a}\abovewithdelims()#1pt{b}} $$ % } -\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!script] -\definemathfraction[i:tfrac][i:frac] +\definemathfraction[i:frac] [\c!alternative=\v!inner,\c!mathstyle=\v!small] +\definemathfraction[i:tfrac][\c!alternative=\v!inner,\c!mathstyle=\s!script] \definemathfraction[i:sfrac][\c!alternative=\v!inner,\c!mathstyle=\s!scriptscript] \definemathfraction[i:dfrac][\c!alternative=\v!inner,\c!mathstyle=\s!display] -\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped] % was cramped,text -\definemathfraction[d:tfrac][\c!alternative=\v!both, \c!mathstyle={\s!cramped,\s!text}] -\definemathfraction[d:sfrac][\c!alternative=\v!both, \c!mathstyle={\s!cramped,\s!script}] -\definemathfraction[d:dfrac][d:frac] +\definemathfraction[d:frac] [\c!alternative=\v!inner,\c!mathstyle=\s!cramped] +\definemathfraction[d:tfrac][\c!alternative=\v!both,\c!mathstyle={\s!cramped,\s!script}] +\definemathfraction[d:sfrac][\c!alternative=\v!both,\c!mathstyle={\s!cramped,\s!scriptscript}] +\definemathfraction[d:dfrac][\c!alternative=\v!both,\c!mathstyle=\s!display] %D \protected\def\ShowMathFractions#1#2% %D {\dontleavehmode diff --git a/tex/context/base/mkxl/math-ini.mkxl b/tex/context/base/mkxl/math-ini.mkxl index f65856e73..990341c99 100644 --- a/tex/context/base/mkxl/math-ini.mkxl +++ b/tex/context/base/mkxl/math-ini.mkxl @@ -642,6 +642,8 @@ \aliased\let\mathnothing\firstofoneunexpanded \aliased\let\mathalpha \firstofoneunexpanded +% todo 'frac' and 'rad' + \setnewconstant\mathordcode \zerocount \letcsname\??mathcodecommand ord\endcsname\mathord \setnewconstant\mathopcode \plusone \letcsname\??mathcodecommand op\endcsname\mathop \setnewconstant\mathbincode \plustwo \letcsname\??mathcodecommand bin\endcsname\mathbin @@ -2398,18 +2400,6 @@ \defcsname\??mathstylecommand\v!small \endcsname{\c_math_styles_state_size \plusone} \defcsname\??mathstylecommand\v!big \endcsname{\c_math_styles_state_size \plustwo} -% \permanent\protected\def\setupmathstyle[#1]% -% {\edef\m_math_style_asked{#1}% -% \ifempty\m_math_style_asked \else -% \math_style_set_indeed -% \fi} -% -% \permanent\protected\def\usemathstyleparameter#1% faster local variant -% {\edef\m_math_style_asked{#1\c!mathstyle}% -% \ifempty\m_math_style_asked \else -% \math_style_set_indeed -% \fi} - %D \startbuffer %D \definemathstyle[mystyle][scriptscript] %D @@ -2422,35 +2412,6 @@ \installcorenamespace {mathstyle} -% \permanent\tolerant\protected\def\definemathstyle[#1]#*[#2]% -% {\c_math_styles_state_style \zerocount -% \c_math_styles_state_cramped\zerocount -% \c_math_styles_state_size \zerocount -% \rawprocesscommacommand[#2]\math_style_collect -% \letcsname\??mathstyle#1\normalexpanded{\endcsname\math_style_add_to_cache_choice}} -% -% \def\math_style_set_indeed -% {\ifcsname\??mathstyle\m_math_style_asked\endcsname -% \lastnamedcs -% \else -% \math_style_set_mathstyle_mathstyle -% \fi} -% -% \def\math_style_set_mathstyle_mathstyle -% {\ifcsname\??mathstylecache\m_math_style_asked\endcsname -% \lastnamedcs -% \else -% \math_style_set_mathstyle_mathstylecache -% \fi} -% -% \def\math_style_set_mathstyle_mathstylecache -% {\c_math_styles_state_style \zerocount -% \c_math_styles_state_cramped\zerocount -% \c_math_styles_state_size \zerocount -% \rawprocesscommacommand[\m_math_style_asked]\math_style_collect -% \gletcsname\??mathstylecache\m_math_style_asked\normalexpanded{\endcsname\math_style_add_to_cache_choice}% -% \csname\??mathstylecache\m_math_style_asked\endcsname} - \letcsname\??mathstyle \endcsname\empty \letcsname\??mathstylecache\endcsname\empty @@ -2463,8 +2424,8 @@ \math_style_set_mathstyle_mathstylecache\m_math_style_asked \fi} -\permanent\def\expandedmathstyleparameter#1% - {\normalexpanded{\noexpand\math_style_set_expanded{#1\c!mathstyle}}} +\permanent\def\expandedmathstyleparameter#1#2% + {\normalexpanded{\noexpand\math_style_set_expanded{#1#2}}} \def\math_style_set_expanded#1% {\ifcsname\??mathstyle#1e\endcsname @@ -2475,14 +2436,14 @@ \math_style_set_mathstyle_mathstylecache{#1}% \fi} -\permanent\protected\def\usemathstyleparameter#1% - {\edef\m_math_style_asked{#1\c!mathstyle}% +\permanent\protected\def\usemathstyleparameter#1#2% + {\edef\m_math_style_asked{#1#2}% \ifempty\m_math_style_asked \else \math_style_set_indeed \fi} \permanent\tolerant\protected\def\setmathstyle[#1]#;#=% so we accept [] and {} - {\edef\m_math_style_asked{#1#2}% + {\edef\m_math_style_asked{#1\c!mathstyle}% \ifempty\m_math_style_asked \else \math_style_set_indeed \fi} @@ -2527,8 +2488,8 @@ \aliased\let\stopmathstyle\relax -\permanent\protected\def\startusemathstyleparameter#1% - {\edef\m_math_style_asked{#1\c!mathstyle}% +\permanent\protected\def\startusemathstyleparameter#1#2% + {\edef\m_math_style_asked{#1#2}% \ifempty\m_math_style_asked \enforced\let\stopusemathstyleparameter\relax \else diff --git a/tex/context/base/mkxl/node-aux.lmt b/tex/context/base/mkxl/node-aux.lmt index 5915f5985..a640addc1 100644 --- a/tex/context/base/mkxl/node-aux.lmt +++ b/tex/context/base/mkxl/node-aux.lmt @@ -385,3 +385,38 @@ end function nodes.hpack(h,...) return tonode(hpack_nodes(tonut(h),...)) end function nodes.vpack(h,...) return tonode(vpack_nodes(tonut(h),...)) end + +-- + +local report_slide = logs.reporter("nodes", "slide") + +function nuts.checkslide(head,banner) + local c = head + local x = nil + local b = false + while c do + local p, n = getboth(c) + if p and p ~= x then + b = true + end + x = c + c = n + end + if b then + report_slide("") + report_slide(banner or "?") + report_slide("") + c = head + x = nil + while c do + local p, n = getboth(c) + report_slide("%s %s",(p and p ~= x and "!") or " ",tostring(tonode(c))) + x = c + c = getnext(c) + end + report_slide("") + nuts.show(head) + report_slide("") + nuts.slide(head) + end +end diff --git a/tex/context/base/mkxl/page-brk.mkxl b/tex/context/base/mkxl/page-brk.mkxl index aca1d097d..f30d9cb2c 100644 --- a/tex/context/base/mkxl/page-brk.mkxl +++ b/tex/context/base/mkxl/page-brk.mkxl @@ -90,6 +90,7 @@ % disable reset after shipout \global\pageornamentstate\plustwo \fi + % maybe \ifcstok{#1}\emptytoks \ifparameter#1\or \page_breaks_handle{#1}% \else % so, no pagebreak when \pagebreak[] ! ! ! diff --git a/tex/context/base/mkxl/spac-ver.lmt b/tex/context/base/mkxl/spac-ver.lmt index d41e3be18..6258fb261 100644 --- a/tex/context/base/mkxl/spac-ver.lmt +++ b/tex/context/base/mkxl/spac-ver.lmt @@ -102,7 +102,7 @@ local trace_vspacing = false trackers.register("vspacing.spacing", fun local trace_vsnapping = false trackers.register("vspacing.snapping", function(v) trace_vsnapping = v end) local trace_specials = false trackers.register("vspacing.specials", function(v) trace_specials = v end) -local remove_math_skips = true directives.register("vspacing.removemathskips", function(v) remnove_math_skips = v end) +local remove_math_skips = true directives.register("vspacing.removemathskips", function(v) remnove_math_skips = v end) local report_vspacing = logs.reporter("vspacing","spacing") local report_collapser = logs.reporter("vspacing","collapsing") @@ -948,6 +948,7 @@ do setspecification(n,b_category,b_penalty,b_order or 1) setvisual(k) write_node(n) + -- todo: inject via value end local function flush() @@ -1513,8 +1514,19 @@ do -- where -> scope -- what -> where (original context) - local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also pass tail + local checkslide = false + directives.register("vspacing.checkslide", function(v) + if v then + checkslide = function(head,where,what) + nuts.checkslide(head,where .. " : " .. what) + end + else + checkslide = false + end + end) + + local function collapser(head,where,what,trace,snap,a_snapmethod) -- maybe also pass tail if trace then reset_tracing(head) end @@ -1699,6 +1711,9 @@ do if snap and where == "page" then removetopsnap() end + if checkslide then + checkslide(head,where,what) + end while current do local id = getid(current) if id == hlist_code or id == vlist_code then @@ -2166,6 +2181,22 @@ do return head end +-- local function collapser(head,...) +-- local current = head +-- while current do +-- local id = getid(current) +-- if id == glue_code then +-- if getsubtype(current) == userskip_code then +-- local glue_data +-- head, current, glue_data = remove_node(head,current) +-- head, current = insertnodebefore(head,current,glue_data) +-- end +-- end +-- current = getnext(current) +-- end +-- return head +-- end + local stackhead, stacktail, stackhack = nil, nil, false local function report(message,where,lst) @@ -2267,11 +2298,12 @@ do local ignored = table.tohash { "splitkeep", "splitoff", --- "insert", +-- "insert", } function vspacing.vboxhandler(head,where) if head and not ignored[where] and getnext(head) then +-- if getid(head) == glue_code and getsubtype(head) == topskip_code then head = collapser(head,"vbox",where,trace_vbox_vspacing,true,a_snapvbox) -- todo: local snapper end return head diff --git a/tex/context/base/mkxl/strc-pag.mkxl b/tex/context/base/mkxl/strc-pag.mkxl index c27fd9429..a959faf18 100644 --- a/tex/context/base/mkxl/strc-pag.mkxl +++ b/tex/context/base/mkxl/strc-pag.mkxl @@ -335,12 +335,22 @@ \let\strc_pagenumbers_set_location\relax \fi +% \protected\def\strc_pagenumbers_flush_final_page +% {\edef\p_strc_pagenumbers_page{\directpagenumberingparameter\c!page}% +% \ifempty\p_strc_pagenumbers_page \else +% \ifx\p_strc_pagenumbers_page\v!no \else +% \page[\p_strc_pagenumbers_page]% +% \fi +% \fi} + \protected\def\strc_pagenumbers_flush_final_page {\edef\p_strc_pagenumbers_page{\directpagenumberingparameter\c!page}% - \ifempty\p_strc_pagenumbers_page \else - \ifx\p_strc_pagenumbers_page\v!no \else - \page[\p_strc_pagenumbers_page]% - \fi + \ifempty\p_strc_pagenumbers_page + % nothing + \orelse\ifx\p_strc_pagenumbers_page\v!no + % nothing + \else + \page[\p_strc_pagenumbers_page]% \fi} % The numbered location handler is there because we need to be downward diff --git a/tex/context/interface/mkii/keys-it.xml b/tex/context/interface/mkii/keys-it.xml index b3e129feb..0143786fa 100644 --- a/tex/context/interface/mkii/keys-it.xml +++ b/tex/context/interface/mkii/keys-it.xml @@ -303,6 +303,7 @@ + @@ -892,6 +893,7 @@ + @@ -997,7 +999,9 @@ + + @@ -1235,7 +1239,7 @@ - + @@ -1286,6 +1290,7 @@ + diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 61fd2abed..c55f95cd2 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-01-15 17:29 +-- merge date : 2022-01-18 10:48 do -- begin closure to overcome local limits and interference -- cgit v1.2.3