summaryrefslogtreecommitdiff
path: root/tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2017-08-28 12:41:55 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2017-08-28 12:41:55 +0200
commit833f45553da60d8185f7095b5efbafc540c21173 (patch)
tree8b23322146b3dea3be8f741dc9d8e8285f0d0c45 /tex
parent9c25133c75ad4c533cd66a26243173de11ee461b (diff)
downloadcontext-833f45553da60d8185f7095b5efbafc540c21173.tar.gz
2017-08-28 12:19:00
Diffstat (limited to 'tex')
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/core-con.lua140
-rw-r--r--tex/context/base/mkiv/core-con.mkiv14
-rw-r--r--tex/context/base/mkiv/math-ali.mkiv7
-rw-r--r--tex/context/base/mkiv/math-ini.mkiv111
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin25754 -> 25759 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin426428 -> 426472 bytes
-rw-r--r--tex/context/fonts/mkiv/type-imp-mscore.mkiv68
-rw-r--r--tex/context/interface/mkiv/i-common-value.xml2
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin818407 -> 818292 bytes
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60775 -> 60775 bytes
-rw-r--r--tex/context/modules/mkiv/x-asciimath.lua8
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
16 files changed, 308 insertions, 52 deletions
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index 8098667dc..cbb494925 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{2017.08.24 19:46}
+\newcontextversion{2017.08.28 12:14}
%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 5fcab9b9c..2892b98e8 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{2017.08.24 19:46}
+\edef\contextversion{2017.08.28 12:14}
%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 766365d84..1dd7fa178 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2017.08.24 19:46}
+\newcontextversion{2017.08.28 12:14}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 9d3a6be89..d2ab572a1 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -41,7 +41,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2017.08.24 19:46}
+\edef\contextversion{2017.08.28 12:14}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua
index e643dc46c..41d0956cd 100644
--- a/tex/context/base/mkiv/core-con.lua
+++ b/tex/context/base/mkiv/core-con.lua
@@ -20,7 +20,7 @@ local floor, date, time, concat = math.floor, os.date, os.time, table.concat
local lower, upper, rep, match, gsub = string.lower, string.upper, string.rep, string.match, string.gsub
local utfchar, utfbyte = utf.char, utf.byte
local tonumber, tostring, type, rawset = tonumber, tostring, type, rawset
-local P, S, R, Cc, Cf, Cg, Ct, Cs, C = lpeg.P, lpeg.S, lpeg.R, lpeg.Cc, lpeg.Cf, lpeg.Cg, lpeg.Ct, lpeg.Cs, lpeg.C
+local P, S, R, Cc, Cf, Cg, Ct, Cs, C, V, Carg = lpeg.P, lpeg.S, lpeg.R, lpeg.Cc, lpeg.Cf, lpeg.Cg, lpeg.Ct, lpeg.Cs, lpeg.C, lpeg.V, lpeg.Carg
local lpegmatch, lpegpatterns = lpeg.match, lpeg.patterns
local context = context
@@ -1448,3 +1448,141 @@ function converters.settime(t)
texset("time", (t.hour or 0) * 60 + (t.min or 0))
end
end
+
+-- taken from x-asciimath (where we needed it for a project)
+
+local d_one = lpegpatterns.digit
+local d_two = d_one * d_one
+local d_three = d_two * d_one
+local d_four = d_three * d_one
+local d_split = P(-1) + Carg(2) * (lpegpatterns.period /"")
+
+local d_spaced = (Carg(1) * d_three)^1
+
+local digitized_1 = Cs ( (
+ d_three * d_spaced * d_split +
+ d_two * d_spaced * d_split +
+ d_one * d_spaced * d_split +
+ P(1)
+ )^1 )
+
+local p_fourbefore = d_four * d_split
+local p_fourafter = d_four * P(-1)
+
+local p_beforesplit = d_three * d_spaced^0 * d_split
+ + d_two * d_spaced^0 * d_split
+ + d_one * d_spaced^0 * d_split
+ + d_one * d_split
+
+local p_aftersplit = p_fourafter
+ + d_three * d_spaced
+ + d_two * d_spaced
+ + d_one * d_spaced
+
+local digitized_2 = Cs (
+ p_fourbefore * (p_aftersplit^0) +
+ p_beforesplit * ((p_aftersplit + d_one^1)^0)
+ )
+
+local p_fourbefore = d_four * d_split
+local p_fourafter = d_four
+local d_spaced = (Carg(1) * (d_three + d_two + d_one))^1
+local p_aftersplit = p_fourafter * P(-1)
+ + d_three * d_spaced * P(1)^0
+ + d_one^1
+
+local digitized_3 = Cs((p_fourbefore + p_beforesplit) * p_aftersplit^0)
+
+local digits_space = utfchar(0x2008)
+
+local splitmethods = {
+ digitized_1,
+ digitized_2,
+ digitized_3,
+}
+
+local replacers = table.setmetatableindex(function(t,k)
+ local v = lpeg.replacer(".",k)
+ t[k] = v
+ return v
+end)
+
+function converters.spaceddigits(settings,data)
+ local data = tostring(data or settings.data or "")
+ if data ~= "" then
+ local method = settings.method
+ local split = splitmethods[tonumber(method) or 1]
+ if split then
+ local symbol = settings.symbol
+ local separator = settings.separator
+ if not symbol or symbol == "" then
+ symbol = "."
+ end
+ if type(separator) ~= "string" or separator == "" then
+ separator = digits_space
+ end
+ local result = lpegmatch(split,data,1,separator,symbol)
+ if not result and symbol ~= "." then
+ result = lpegmatch(replacers[symbol],data)
+ end
+ if result then
+ -- print(method,symbol,separator,data,result)
+ return result
+ end
+ end
+ end
+ return str
+end
+
+-- method 2 : split 3 before and 3 after
+-- method 3 : split 3 before and 3 after with > 4 before
+
+-- symbols is extra split (in addition to period)
+
+-- local setup = { splitmethod = 3, symbol = "," }
+-- local setup = { splitmethod = 2, symbol = "," }
+-- local setup = { splitmethod = 1, symbol = "," }
+--
+-- local t = {
+-- "0.00002",
+-- "1", "12", "123", "1234", "12345", "123456", "1234567", "12345678", "123456789",
+-- "1.1",
+-- "12.12",
+-- "123.123",
+-- "1234.123",
+-- "1234.1234",
+-- "12345.1234",
+-- "1234.12345",
+-- "12345.12345",
+-- "123456.123456",
+-- "1234567.1234567",
+-- "12345678.12345678",
+-- "123456789.123456789",
+-- "0.1234",
+-- "1234.0",
+-- "1234.00",
+-- "0.123456789",
+-- "100.00005",
+-- "0.80018",
+-- "10.80018",
+-- "100.80018",
+-- "1000.80018",
+-- "10000.80018",
+-- }
+--
+-- for i=1,#t do
+-- print(formatters["%-20s : [%s]"](t[i],converters.spaceddigits(setup,t[i])))
+-- end
+
+implement {
+ name = "spaceddigits",
+ actions = { converters.spaceddigits, context },
+ arguments = {
+ {
+ { "symbol" },
+ { "separator" },
+ { "data" },
+ { "method" },
+ }
+ }
+}
diff --git a/tex/context/base/mkiv/core-con.mkiv b/tex/context/base/mkiv/core-con.mkiv
index df0973132..09e4cccdb 100644
--- a/tex/context/base/mkiv/core-con.mkiv
+++ b/tex/context/base/mkiv/core-con.mkiv
@@ -874,4 +874,18 @@
[\v!continued]
[\continuednumber]
+%D Taken from x-asciimath (see digits-001.tex for an example):
+
+\let\spaceddigitsmethod \empty % alternative methods : 1 default, 2 and 3 only when > 4
+\let\spaceddigitssymbol \empty % extra splitter symbol : {,}
+\let\spaceddigitsseparator\empty % separator symbol : {\Uchar{"2008}}
+
+\unexpanded\def\spaceddigits#1%
+ {\clf_spaceddigits
+ method {\spaceddigitsmethod}%
+ symbol {\spaceddigitssymbol}%
+ separator {\spaceddigitsseparator}%
+ data {#1}%
+ \relax}
+
\protect \endinput
diff --git a/tex/context/base/mkiv/math-ali.mkiv b/tex/context/base/mkiv/math-ali.mkiv
index f251f0a77..31bdbd900 100644
--- a/tex/context/base/mkiv/math-ali.mkiv
+++ b/tex/context/base/mkiv/math-ali.mkiv
@@ -816,7 +816,8 @@
\let\math_matrix_NC\relax
\unexpanded\def\math_matrix_start#1%
- {\begingroup
+ {\pushmacro\math_matrix_NC % not tested that well
+ \begingroup
\edef\currentmathmatrix{#1}%
\dosingleempty\math_matrix_start_indeed}
@@ -864,10 +865,10 @@
\noalign{\vskip-\baselineskip}%
% \fi
\egroup
- \popmacro\math_matrix_NC
\egroup
\mathmatrixright
- \endgroup}
+ \endgroup
+ \popmacro\math_matrix_NC} % not tested that well
\definemathmatrix[matrix]
\definemathmatrix[\v!mathmatrix]
diff --git a/tex/context/base/mkiv/math-ini.mkiv b/tex/context/base/mkiv/math-ini.mkiv
index a180464bf..c765677da 100644
--- a/tex/context/base/mkiv/math-ini.mkiv
+++ b/tex/context/base/mkiv/math-ini.mkiv
@@ -1523,44 +1523,50 @@
%
% The next one is more efficient as it produces more flat noad lists for numbers.
-\setnewconstant\c_math_comma "002C
-\setnewconstant\c_math_period "002E
-\setnewconstant\c_math_special"8000
-
-\def\math_set_o_period{\Umathcode\c_math_period\mathordcode \zerocount\c_math_period}
-\def\math_set_p_period{\Umathcode\c_math_period\mathpunctcode\zerocount\c_math_period}
-\def\math_set_o_comma {\Umathcode\c_math_comma \mathordcode \zerocount\c_math_comma }
-\def\math_set_p_comma {\Umathcode\c_math_comma \mathpunctcode\zerocount\c_math_comma }
+\setnewconstant\c_math_comma "002C
+\setnewconstant\c_math_period "002E
+%setnewconstant\c_math_colon "003A
+\setnewconstant\c_math_semicolon"003B
+\setnewconstant\c_math_special "8000
+
+\def\math_set_o_comma {\Umathcode\c_math_comma \mathordcode \zerocount\c_math_comma}
+\def\math_set_p_comma {\Umathcode\c_math_comma \mathpunctcode\zerocount\c_math_comma}
+\def\math_set_o_period {\Umathcode\c_math_period \mathordcode \zerocount\c_math_period}
+\def\math_set_p_period {\Umathcode\c_math_period \mathpunctcode\zerocount\c_math_period}
+\def\math_set_o_semicolon{\Umathcode\c_math_semicolon\mathordcode \zerocount\c_math_semicolon}
+\def\math_set_p_semicolon{\Umathcode\c_math_semicolon\mathpunctcode\zerocount\c_math_semicolon}
\edef\math_set_o_both {\math_set_o_period\math_set_o_comma}
\edef\math_set_p_both {\math_set_p_period\math_set_p_comma}
-\unexpanded\def\math_punctuation_nop_comma {\begingroup\math_set_p_comma ,\endgroup}
-\unexpanded\def\math_punctuation_nop_period{\begingroup\math_set_o_period.\endgroup}
-
-\unexpanded\def\math_punctuation_all_comma {\futurelet\nexttoken\math_punctuation_comma_next}
-\unexpanded\def\math_punctuation_all_period{\futurelet\nexttoken\math_punctuation_period_next}
+\unexpanded\def\math_punctuation_nop_comma {\begingroup\math_set_p_comma ,\endgroup}
+\unexpanded\def\math_punctuation_nop_period {\begingroup\math_set_o_period .\endgroup}
+\unexpanded\def\math_punctuation_nop_semicolon{\begingroup\math_set_p_semicolon;\endgroup}
- \let\math_punctuation_yes_comma \math_punctuation_all_comma
- \let\math_punctuation_yes_period\math_punctuation_nop_period
+\unexpanded\def\math_punctuation_all_comma {\futurelet\nexttoken\math_punctuation_comma_next}
+\unexpanded\def\math_punctuation_all_period {\futurelet\nexttoken\math_punctuation_period_next}
+\unexpanded\def\math_punctuation_all_semicolon{\futurelet\nexttoken\math_punctuation_semicolon_next}
-\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_comma ,\endgroup}
-\def\math_punctuation_period_next{\begingroup\Umathcode\c_math_period\ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_period.\endgroup}
+ \let\math_punctuation_yes_comma \math_punctuation_all_comma
+ \let\math_punctuation_yes_period \math_punctuation_nop_period
+ \let\math_punctuation_yes_semicolon\math_punctuation_all_semicolon
-\setnewconstant\c_math_comma "002C
-\setnewconstant\c_math_period "002E
-\setnewconstant\c_math_special"8000
+\def\math_punctuation_comma_next {\begingroup\Umathcode\c_math_comma \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_comma ,\endgroup}
+\def\math_punctuation_period_next {\begingroup\Umathcode\c_math_period \ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_period .\endgroup}
+\def\math_punctuation_semicolon_next{\begingroup\Umathcode\c_math_semicolon\ifx\nexttoken\blankspace\mathordcode\else\mathordcode\fi\zerocount\c_math_semicolon;\endgroup}
\installcorenamespace {mathautopunctuation}
\bgroup
- \catcode\c_math_comma \activecatcode
- \catcode\c_math_period\activecatcode
+ \catcode\c_math_comma \activecatcode
+ \catcode\c_math_period \activecatcode
+ \catcode\c_math_semicolon\activecatcode
\setgvalue{\??mathautopunctuation\v!no}%
{\let,\math_punctuation_nop_comma
- \let.\math_punctuation_nop_period}
+ \let.\math_punctuation_nop_period
+ \let;\math_punctuation_nop_semicolon}
% more efficient list:
%
@@ -1570,26 +1576,51 @@
\setgvalue{\??mathautopunctuation\v!yes}%
{\let,\math_punctuation_yes_comma
- \let.\math_punctuation_yes_period}
+ \let.\math_punctuation_yes_period
+ \let;\math_punctuation_nop_semicolon}
\setgvalue{\??mathautopunctuation\v!all}%
{\let,\math_punctuation_all_comma
- \let.\math_punctuation_all_period}
+ \let.\math_punctuation_all_period
+ \let;\math_punctuation_nop_semicolon}
+
+ \setgvalue{\??mathautopunctuation comma}%
+ {\let,\math_punctuation_yes_comma
+ \let.\math_punctuation_yes_period
+ \let;\math_punctuation_nop_semicolon}
+
+ \setgvalue{\??mathautopunctuation\v!yes\string,semicolon}%
+ {\let,\math_punctuation_yes_comma
+ \let.\math_punctuation_yes_period
+ \let;\math_punctuation_yes_semicolon}
+
+ \setgvalue{\??mathautopunctuation comma\string,semicolon}%
+ {\let,\math_punctuation_yes_comma
+ \let.\math_punctuation_yes_period
+ \let;\math_punctuation_yes_semicolon}
+
+ \setgvalue{\??mathautopunctuation\v!all\string,semicolon}%
+ {\let,\math_punctuation_all_comma
+ \let.\math_punctuation_all_period
+ \let;\math_punctuation_all_semicolon}
\egroup
% \appendtoks
-% \global\mathcode\c_math_comma \c_math_special
-% \global\mathcode\c_math_period\c_math_special
+% \global\mathcode\c_math_comma \c_math_special
+% \global\mathcode\c_math_period \c_math_special
+% \global\mathcode\c_math_semicolon\c_math_special
% \to \everyjob
% \activatemathcharacter\c_math_comma
% \activatemathcharacter\c_math_period
+% \activatemathcharacter\c_math_semicolon
\appendtoks
- \mathcode\c_math_comma \c_math_special
- \mathcode\c_math_period\c_math_special
- \csname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname
+ \mathcode\c_math_comma \c_math_special
+ \mathcode\c_math_period \c_math_special
+ \mathcode\c_math_semicolon\c_math_special
+ \begincsname\??mathautopunctuation\mathematicsparameter\v!autopunctuation\endcsname
\to \everymathematics
\appendtoks
@@ -1602,7 +1633,25 @@
\def\disablemathpunctuation{\csname\??mathautopunctuation\v!yes\endcsname}
\setupmathematics
- [\v!autopunctuation=\v!no] % no | yes | all
+ [\v!autopunctuation=\v!no] % no | yes | all | comma | yes,semicolon | all,semicolon
+
+%D The consequences of settign this are as follows:
+%D
+%D \def\TestA#1#2#3%
+%D {\ifnum#1=0 \type{#2}\else\setupmathematics[autopunctuation={#2}]$#3$\fi}
+%D \def\TestB#1#2%
+%D {\NC \TestA{#1}{no} {#2}
+%D \NC \TestA{#1}{yes} {#2}
+%D \NC \TestA{#1}{yes,semicolon}{#2}
+%D \NC \TestA{#1}{all} {#2}
+%D \NC \TestA{#1}{all,semicolon}{#2}
+%D \NC \NR}
+%D \starttabulate[|c|c|c|c|c|]
+%D \TestB{0}{}
+%D \TestB{1}{(1,2)=(1, 2)}
+%D \TestB{1}{(1.2)=(1. 2)}
+%D \TestB{1}{(1;2)=(1; 2)}
+%D \stoptabulate
%D \macros
%D {mathstyle}
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 4d352df22..0a1c6d9d0 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index f9f65510e..386ad3a6a 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/fonts/mkiv/type-imp-mscore.mkiv b/tex/context/fonts/mkiv/type-imp-mscore.mkiv
index 971a03de7..d4aeec10d 100644
--- a/tex/context/fonts/mkiv/type-imp-mscore.mkiv
+++ b/tex/context/fonts/mkiv/type-imp-mscore.mkiv
@@ -56,17 +56,17 @@
\stoptypescript
\starttypescript[mscore]
- \definetypeface [mscore] [\s!rm] [\s!serif] [mscoretimes] [\s!default]
- \definetypeface [mscore] [\s!ss] [\s!sans] [mscorearial] [\s!default] [\s!rscale=0.860]
- \definetypeface [mscore] [\s!tt] [\s!mono] [mscorecourier] [\s!default] [\s!rscale=1.065]
- \definetypeface [mscore] [\s!mm] [\s!math] [times] [\s!default] [\s!rscale=1.020]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [mscoretimes] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [mscorearial] [\s!default] [\s!rscale=0.860]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [mscorecourier] [\s!default] [\s!rscale=1.065]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [times] [\s!default] [\s!rscale=1.020]
\stoptypescript
- \starttypescript[mscorenarrow]
- \definetypeface [mscorenarrow] [\s!rm] [\s!serif] [mscoretimes] [\s!default]
- \definetypeface [mscorenarrow] [\s!ss] [\s!sans] [mscorearialnarrow] [\s!default] [\s!rscale=0.860]
- \definetypeface [mscorenarrow] [\s!tt] [\s!mono] [mscorecourier] [\s!default] [\s!rscale=1.065]
- \definetypeface [mscorenarrow] [\s!mm] [\s!math] [times] [\s!default] [\s!rscale=1.020]
+ \starttypescript[mscorenarrow,mscore-narrow]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [mscoretimes] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [mscorearialnarrow] [\s!default] [\s!rscale=0.860]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [mscorecourier] [\s!default] [\s!rscale=1.065]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [times] [\s!default] [\s!rscale=1.020]
\stoptypescript
% \starttypescript[mscoress]
@@ -77,3 +77,53 @@
% \stoptypescript
\stoptypescriptcollection
+
+% http://archive1.village.virginia.edu/spw4s/fonts/
+
+\starttypescriptcollection[microsoft-chinese-old]
+
+ % \starttypescript [\s!serif] [mschinese,mschinese-light]
+ % \definefontsynonym [STSong] [\s!file:stsong.ttf] [\s!features=chinese]
+ % \definefontsynonym [STKaiti] [\s!file:stkaiti.ttf] [\s!features=chinese]
+ % \definefontsynonym [STZHongsong] [\s!file:stzhongs.ttf] [\s!features=chinese]
+ % \definefontsynonym [STFangsong] [\s!file:stfangso.ttf] [\s!features=chinese]
+ % \stoptypescript
+
+ % \starttypescript [\s!sans] [mschinese]
+ % \definefontsynonym [STXIHei] [\s!file:stxihei.ttf] [\s!features=chinese]
+ % \stoptypescript
+
+ \starttypescript [\s!serif] [mschinese]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:stsong.ttf] [\s!features=chinese]
+ \definefontsynonym [\s!SerifItalic] [\s!file:stkaiti.ttf] [\s!features=chinese]
+ \definefontsynonym [\s!SerifBold] [\s!file:stzhongs.ttf] [\s!features=chinese]
+ \stoptypescript
+
+ \starttypescript [\s!serif] [mschinese-light]
+ \setups[\s!font:\s!fallback:\s!serif]
+ \definefontsynonym [\s!Serif] [\s!file:stfangso.ttf] [\s!features=chinese]
+ \definefontsynonym [\s!SerifItalic] [\s!file:stkaiti.ttf] [\s!features=chinese]
+ \definefontsynonym [\s!SerifBold] [\s!file:stzhongs.ttf] [\s!features=chinese]
+ \stoptypescript
+
+ \starttypescript [\s!sans] [mschinese]
+ \setups[\s!font:\s!fallback:\s!sans]
+ \definefontsynonym [\s!Sans] [\s!file:stxihei.ttf] [\s!features=chinese]
+ \stoptypescript
+
+ \starttypescript[mschinese]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [mschinese] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [mschinese] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [cambria]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [mscorecourier]
+ \stoptypescript
+
+ \starttypescript[mschineselight,mschinese-light]
+ \definetypeface [\typescriptone] [\s!rm] [\s!serif] [mschinese-light] [\s!default]
+ \definetypeface [\typescriptone] [\s!ss] [\s!sans] [mschinese] [\s!default]
+ \definetypeface [\typescriptone] [\s!mm] [\s!math] [cambria]
+ \definetypeface [\typescriptone] [\s!tt] [\s!mono] [mscorecourier]
+ \stoptypescript
+
+\stoptypescriptcollection
diff --git a/tex/context/interface/mkiv/i-common-value.xml b/tex/context/interface/mkiv/i-common-value.xml
index 9f919b58e..265308162 100644
--- a/tex/context/interface/mkiv/i-common-value.xml
+++ b/tex/context/interface/mkiv/i-common-value.xml
@@ -645,7 +645,7 @@
-->
</cd:define>
- <!-- tochar = ... --->
+ <!-- tochar = ... -->
<cd:define name="value-tochar">
<cd:constant prefix="e" type="cd:name" method="range"/>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 88893e247..2810ec148 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 4e8e40644..edc1f7df4 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/modules/mkiv/x-asciimath.lua b/tex/context/modules/mkiv/x-asciimath.lua
index 07cf12306..1c74294f1 100644
--- a/tex/context/modules/mkiv/x-asciimath.lua
+++ b/tex/context/modules/mkiv/x-asciimath.lua
@@ -834,7 +834,8 @@ local issimplified = {
--
--- special mess
+-- special mess (we have a generic one now but for the moment keep this)
+-- special mess (we have a generic one now but for the moment keep this)
local d_one = R("09")
local d_two = d_one * d_one
@@ -894,6 +895,8 @@ local symbolmethod = nil
local digitseparator = utfchar(0x2008)
local digitsymbol = "."
+local v_yes_digits = interfaces and interfaces.variables.yes or true
+
function asciimath.setup(settings)
splitmethod = splitmethods[tonumber(settings.splitmethod) or 0]
if splitmethod then
@@ -902,7 +905,8 @@ function asciimath.setup(settings)
digitsymbol = "."
end
local separator = settings.separator
- if separator == true or not interfaces or interfaces.variables.yes then
+ -- if separator == true or not interfaces or interfaces.variables.yes then
+ if separator == true or separator == nil or separator == v_yes_digits then
digitseparator = utfchar(0x2008)
elseif type(separator) == "string" and separator ~= "" then
digitseparator = separator
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 3ff8349b6..8cb21b53b 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 : 08/24/17 19:46:30
+-- merge date : 08/28/17 12:14:10
do -- begin closure to overcome local limits and interference