summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-10 10:15:04 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2015-04-10 10:15:04 +0200
commitc8d9322c99e6fca7e972605f7a180a694d080e2c (patch)
tree39321ae31ad883f409d6e32b15dcb4533a9546ed
parent25fc028ca9e811187704cf2de2ba0d0bb9846b67 (diff)
downloadcontext-c8d9322c99e6fca7e972605f7a180a694d080e2c.tar.gz
2015-04-10 09:31:00
-rw-r--r--scripts/context/lua/mtx-check.lua41
-rw-r--r--tex/context/base/cont-new.mkiv2
-rw-r--r--tex/context/base/context-version.pdfbin4186 -> 4181 bytes
-rw-r--r--tex/context/base/context.mkiv2
-rw-r--r--tex/context/base/lang-hyp.lua18
-rw-r--r--tex/context/base/lang-hyp.mkiv2
-rw-r--r--tex/context/base/lang-url.lua2
-rw-r--r--tex/context/base/mult-def.mkiv6
-rw-r--r--tex/context/base/mult-sys.mkiv7
-rw-r--r--tex/context/base/publ-imp-apa.lua34
-rw-r--r--tex/context/base/publ-imp-apa.mkvi16
-rw-r--r--tex/context/base/publ-imp-aps.mkvi6
-rw-r--r--tex/context/base/publ-imp-default.mkvi3
-rw-r--r--tex/context/base/s-abr-01.tex1
-rw-r--r--tex/context/base/s-math-coverage.lua121
-rw-r--r--tex/context/base/s-math-coverage.mkiv10
-rw-r--r--tex/context/base/status-files.pdfbin24522 -> 24508 bytes
-rw-r--r--tex/context/base/status-lua.pdfbin249889 -> 249895 bytes
-rw-r--r--tex/context/base/tabl-tbl.mkiv2
-rw-r--r--tex/context/base/x-mathml.mkiv36
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
21 files changed, 182 insertions, 129 deletions
diff --git a/scripts/context/lua/mtx-check.lua b/scripts/context/lua/mtx-check.lua
index 1d6b48096..c456b4414 100644
--- a/scripts/context/lua/mtx-check.lua
+++ b/scripts/context/lua/mtx-check.lua
@@ -34,17 +34,17 @@ local application = logs.application {
helpinfo = helpinfo,
}
-local report = application.report
+local report = application.report
-scripts = scripts or { }
-scripts.checker = scripts.checker or { }
+scripts = scripts or { }
+scripts.checker = scripts.checker or { }
-local validator = { }
+local validator = { }
-validator.n = 1
-validator.errors = { }
-validator.trace = false
-validator.direct = false
+validator.n = 1
+validator.errors = { }
+validator.trace = false
+validator.direct = false
validator.printer = print
validator.tracer = print
@@ -68,27 +68,24 @@ local progress = function(position, data, kind)
end
end
-local i_m, d_m = P("$"), P("$$")
-local l_s, r_s = P("["), P("]")
-local l_g, r_g = P("{"), P("}")
+local i_m, d_m = P("$"), P("$$")
+local l_s, r_s = P("["), P("]")
+local l_g, r_g = P("{"), P("}")
-local okay = lpeg.P("{[}") + lpeg.P("{]}")
+local okay = lpeg.P("{[}") + lpeg.P("{]}")
-local esc = P("\\")
-local cr = P("\r")
-local lf = P("\n")
-local crlf = P("\r\n")
-local space = S(" \t\f\v")
-local newline = crlf + cr + lf
+local esc = P("\\")
+local space = S(" \t\f\v")
+local newline = lpeg.patterns.newline
-local line = newline / function() validator.n = validator.n + 1 end
+local line = newline / function() validator.n = validator.n + 1 end
local startluacode = P("\\startluacode")
local stopluacode = P("\\stopluacode")
-local somecode = startluacode * (1-stopluacode)^1 * stopluacode
+local somecode = startluacode * (1-stopluacode)^1 * stopluacode
-local stack = { }
+local stack = { }
local function push(p,s)
-- print("start",p,s)
@@ -117,7 +114,7 @@ local contextgrammar = P { "tokens",
["start"] = start,
["stop"] = stop,
["whatever"] = line + esc * 1 + C(P("%") * (1-line)^0),
- ["grouped"] = l_g * (V("whatever") + V("grouped") + V("setup") + V("display") + V("inline") + (1 - l_g - r_g))^0 * r_g,
+ ["grouped"] = l_g * (V("whatever") + V("grouped") + V("setup") + V("display") + V("inline") + line + (1 - l_g - r_g))^0 * r_g,
["setup"] = l_s * (okay + V("whatever") + V("grouped") + V("setup") + V("display") + V("inline") + (1 - l_s - r_s))^0 * r_s,
["display"] = d_m * (V("whatever") + V("grouped") + (1 - d_m))^0 * d_m,
["inline"] = i_m * (V("whatever") + V("grouped") + (1 - i_m))^0 * i_m,
diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv
index c794639b9..c0d95f66c 100644
--- a/tex/context/base/cont-new.mkiv
+++ b/tex/context/base/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2015.04.09 20:56}
+\newcontextversion{2015.04.10 09:29}
%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/context-version.pdf b/tex/context/base/context-version.pdf
index 15c689560..ed87e1d5e 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv
index d3c2b5d0e..f5726f87e 100644
--- a/tex/context/base/context.mkiv
+++ b/tex/context/base/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2015.04.09 20:56}
+\edef\contextversion{2015.04.10 09:29}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/lang-hyp.lua b/tex/context/base/lang-hyp.lua
index ab6ab33df..b263ea1b0 100644
--- a/tex/context/base/lang-hyp.lua
+++ b/tex/context/base/lang-hyp.lua
@@ -817,6 +817,7 @@ if context then
local joinerchars = featureset.joiners
local alternative = featureset.alternative
local rightwordmin = tonumber(featureset.rightwordmin)
+ local charmin = tonumber(featureset.charmin)
local leftcharmin = tonumber(featureset.leftcharmin)
local rightcharmin = tonumber(featureset.rightcharmin)
local rightedge = featureset.rightedge
@@ -830,6 +831,7 @@ if context then
featureset.hyphenchars = makeset(hyphenchars or "")
featureset.alternative = alternative or "hyphenate"
featureset.rightwordmin = rightwordmin and rightwordmin > 0 and rightwordmin or nil
+ featureset.charmin = charmin and charmin > 0 and charmin or nil
featureset.leftcharmin = leftcharmin and leftcharmin > 0 and leftcharmin or nil
featureset.rightcharmin = rightcharmin and rightcharmin > 0 and rightcharmin or nil
featureset.leftchar = leftchar
@@ -877,6 +879,7 @@ if context then
{ "hyphens" },
{ "joiners" },
{ "rightwordmin", "integer" },
+ { "charmin", "integer" },
{ "leftcharmin", "integer" },
{ "rightcharmin", "integer" },
{ "leftchar", "integer" },
@@ -967,6 +970,7 @@ if context then
local rightexchar = false -- utfbyte("-")
local leftmin = 0
local rightmin = 0
+ local charmin = 1
local leftcharmin = nil
local rightcharmin = nil
----- leftwordmin = nil
@@ -997,6 +1001,7 @@ if context then
extrachars = f.extrachars
hyphenchars = f.hyphenchars
rightwordmin = f.rightwordmin
+ charmin = f.charmin
leftcharmin = f.leftcharmin
rightcharmin = f.rightcharmin
leftchar = f.leftchar
@@ -1024,17 +1029,22 @@ if context then
end
lastwordlast = rightwordmin
end
+ if not charmin or charmin == 0 then
+ charmin = 1
+ end
else
hyphenated = methods.hyphenate
extrachars = false
hyphenchars = false
rightwordmin = false
+ charmin = 1
leftcharmin = false
rightcharmin = false
leftchar = false
rightchar = false
strict = false
end
+
return a
end
@@ -1255,7 +1265,7 @@ if context then
local code = getchar(current)
local lang = getfield(current,"lang")
if lang ~= language then
- if size > 0 and dictionary and leftmin + rightmin <= size then
+ if dictionary and size > charmin and leftmin + rightmin <= size then
if categories[word[1]] == "lu" and getfield(start,"uchyph") < 0 then
-- skip
else
@@ -1307,7 +1317,7 @@ if context then
size = size + 1
word[size] = char
elseif dictionary then
- if leftmin + rightmin <= size then
+ if size > charmin and leftmin + rightmin <= size then
if categories[word[1]] == "lu" and getfield(start,"uchyph") < 0 then
-- skip
else
@@ -1386,7 +1396,7 @@ if context then
current = id == math_code and getnext(end_of_math(current)) or getnext(current)
end
if size > 0 then
- if dictionary and leftmin + rightmin <= size then
+ if dictionary and size > charmin and leftmin + rightmin <= size then
if categories[word[1]] == "lu" and getfield(start,"uchyph") < 0 then
-- skip
else
@@ -1402,7 +1412,7 @@ if context then
end
-- we can have quit due to last so we need to flush the last seen word, we could move this in
-- the loop and test for current but ... messy
- if size > 0 and dictionary and leftmin + rightmin <= size then
+ if dictionary and size > charmin and leftmin + rightmin <= size then
if categories[word[1]] == "lu" and getfield(start,"uchyph") < 0 then
-- skip
else
diff --git a/tex/context/base/lang-hyp.mkiv b/tex/context/base/lang-hyp.mkiv
index c5141ff6d..927f5a057 100644
--- a/tex/context/base/lang-hyp.mkiv
+++ b/tex/context/base/lang-hyp.mkiv
@@ -102,6 +102,7 @@
\letdummyparameter\c!rightwords\zerocount % maybe \s!
\letdummyparameter\s!lefthyphenmin\zerocount
\letdummyparameter\s!righthyphenmin\zerocount
+ \letdummyparameter\s!hyphenmin\zerocount
\letdummyparameter\s!lefthyphenchar\zerocount
\letdummyparameter\s!righthyphenchar\zerocount
\letdummyparameter\c!alternative\empty
@@ -114,6 +115,7 @@
hyphens {\dummyparameter\c!hyphens}%
joiners {\dummyparameter\c!joiners}%
rightwordmin \numexpr\dummyparameter\c!rightwords\relax
+ charmin \numexpr\dummyparameter\s!hyphenmin\relax
leftcharmin \numexpr\dummyparameter\s!lefthyphenmin\relax
rightcharmin \numexpr\dummyparameter\s!righthyphenmin\relax
leftchar \numexpr\dummyparameter\s!lefthyphenchar\relax
diff --git a/tex/context/base/lang-url.lua b/tex/context/base/lang-url.lua
index 27f3116f9..ee5171eef 100644
--- a/tex/context/base/lang-url.lua
+++ b/tex/context/base/lang-url.lua
@@ -175,7 +175,7 @@ end
implement {
name = "sethyphenatedurlcharacters",
actions = hyphenatedurl.setcharacters,
- arguments = { "string", "integer" }
+ arguments = { "string", "string" }
}
implement {
diff --git a/tex/context/base/mult-def.mkiv b/tex/context/base/mult-def.mkiv
index c755597c0..6efeb3069 100644
--- a/tex/context/base/mult-def.mkiv
+++ b/tex/context/base/mult-def.mkiv
@@ -34,12 +34,6 @@
% start todo in mult-def.lua:
-\def\s!head {head}
-\def\s!symbol {symbol}
-\def\s!sub {sub}
-\def\s!margin {margin}
-\def\s!edge {edge}
-
\def\v!alphabetic {alphabetic}
\def\v!Alphabetic {Alphabetic}
diff --git a/tex/context/base/mult-sys.mkiv b/tex/context/base/mult-sys.mkiv
index 11a276fe8..63a89492a 100644
--- a/tex/context/base/mult-sys.mkiv
+++ b/tex/context/base/mult-sys.mkiv
@@ -315,11 +315,18 @@
\definesystemconstant {uncramped}
\definesystemconstant {cramped}
+\definesystemconstant {hyphenmin}
\definesystemconstant {lefthyphenmin}
\definesystemconstant {righthyphenmin}
\definesystemconstant {lefthyphenchar}
\definesystemconstant {righthyphenchar}
+\definesystemconstant {head}
+\definesystemconstant {symbol}
+\definesystemconstant {sub}
+\definesystemconstant {margin}
+\definesystemconstant {edge}
+
\definesystemconstant {double}
\definesystemconstant {decimal}
\definesystemconstant {binary}
diff --git a/tex/context/base/publ-imp-apa.lua b/tex/context/base/publ-imp-apa.lua
index 18360d527..8e90bb986 100644
--- a/tex/context/base/publ-imp-apa.lua
+++ b/tex/context/base/publ-imp-apa.lua
@@ -84,7 +84,6 @@ categories.article = {
sets = {
author = { "author", "editor", "title" },
doi = generic.doi,
- isbn = { "issn" },
},
required = {
"author"
@@ -93,7 +92,7 @@ categories.article = {
"year",
"subtitle", "type", "file",
"journal", "volume", "number", "pages",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -110,7 +109,7 @@ categories.magazine = {
"subtitle", "type", "file",
"number",
"month", "day",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -122,7 +121,6 @@ categories.periodical = {
sets = {
author = { "editor", "publisher" },
doi = generic.doi,
- isbn = { "issn" },
},
required = {
"title",
@@ -133,7 +131,7 @@ categories.periodical = {
"subtitle", "file",
"series", "volume", "number", "month",
"organization",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -168,7 +166,7 @@ categories.book = {
"subtitle", "type", "file",
"editionset", "series",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -191,7 +189,7 @@ categories.inbook = {
"editionset", "series",
"month",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -215,7 +213,7 @@ categories.incollection = {
-- APA ignores this: "chapter",
"month",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -235,7 +233,7 @@ categories.booklet = {
"year", "month",
"subtitle", "type", "file",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -258,7 +256,7 @@ categories.proceedings = {
"editionset", "series",
"month",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -272,7 +270,7 @@ categories.inproceedings = {
"month",
"edition", "series",
"address", "organization",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -295,7 +293,7 @@ categories.thesis = {
"subtitle", "file",
"month",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -312,7 +310,7 @@ categories.mastersthesis = {
"subtitle", "file",
"month",
"address",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
categories.phdthesis = categories.mastersthesis
@@ -338,7 +336,7 @@ categories.techreport = {
"subtitle", "file",
"editionset",
"month",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -359,7 +357,7 @@ categories.manual = {
"address",
"subtitle", "file",
"editionset", "month", "year",
- "doi", "note", "isbn",
+ "doi", "note",
-- "abstract",
},
}
@@ -434,7 +432,6 @@ categories.electronic = {
categories.misc = {
sets = {
doi = generic.doi,
- isbn = { "isbn", "issn" },
},
required = {
-- nothing is really important here
@@ -444,7 +441,7 @@ categories.misc = {
"title", "subtitle", "file",
"year", "month",
"howpublished",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
@@ -453,7 +450,6 @@ categories.misc = {
categories.other = {
sets = {
doi = generic.doi,
- isbn = { "isbn", "issn" },
},
required = {
"author",
@@ -462,7 +458,7 @@ categories.other = {
},
optional = {
"subtitle", "file",
- "doi", "note", "isbn"
+ "doi", "note",
},
}
diff --git a/tex/context/base/publ-imp-apa.mkvi b/tex/context/base/publ-imp-apa.mkvi
index 402dbdeab..2edb4dc28 100644
--- a/tex/context/base/publ-imp-apa.mkvi
+++ b/tex/context/base/publ-imp-apa.mkvi
@@ -248,8 +248,7 @@
\definebtx
[apa:cite:authoryear]
[apa:cite:author]
- [\c!compress=\v!yes,
- \c!left={(},
+ [\c!left={(},
\c!right={)},
\c!inbetween={,\space}]
@@ -997,18 +996,6 @@
\endgroup
\stoptexdefinition
-% also issn - see publ-imp-apa.lua
-
-\starttexdefinition btx:apa:isbn
- \btxdoif {isbn} {
- \btxleftparenthesis
- \WORD{\btxfoundname{isbn}}:\btxspace
- \setbreakpoints[doi]
- \btxflush{isbn}
- \btxrightparenthesis
- }
-\stoptexdefinition
-
\starttexdefinition btx:apa:note
\btxdoif {note} {
\btxleftparenthesis
@@ -1021,7 +1008,6 @@
\doif {\btxfoundname{doi}} {url} {
\texdefinition{btx:apa:url}
}
- \texdefinition{btx:apa:isbn}
\doif {\btxfoundname{doi}} {doi} {
\texdefinition{btx:apa:doi}
}
diff --git a/tex/context/base/publ-imp-aps.mkvi b/tex/context/base/publ-imp-aps.mkvi
index e5ea2459a..49210dbae 100644
--- a/tex/context/base/publ-imp-aps.mkvi
+++ b/tex/context/base/publ-imp-aps.mkvi
@@ -245,8 +245,7 @@
\definebtx
[aps:cite:authoryear]
[aps:cite:author]
- [\c!compress=\v!yes,
- \c!left={(},
+ [\c!left={(},
\c!right={)},
\c!inbetween={,\space}]
@@ -290,7 +289,8 @@
\definebtx
[aps:cite:year]
[aps:cite]
- [\c!compress=\v!yes]
+ [\c!compress=\v!yes,
+ \c!sorttype=year]
\definebtx
[aps:cite:title]
diff --git a/tex/context/base/publ-imp-default.mkvi b/tex/context/base/publ-imp-default.mkvi
index c0664f5df..a78769849 100644
--- a/tex/context/base/publ-imp-default.mkvi
+++ b/tex/context/base/publ-imp-default.mkvi
@@ -123,8 +123,7 @@
\definebtx
[\s!default:\s!cite:authoryear]
[\s!default:\s!cite:author]
- [\c!compress=\v!yes,
- \c!left={(},
+ [\c!left={(},
\c!right={)},
\c!inbetween={,\space}]
diff --git a/tex/context/base/s-abr-01.tex b/tex/context/base/s-abr-01.tex
index 71c377418..00a1a5c1e 100644
--- a/tex/context/base/s-abr-01.tex
+++ b/tex/context/base/s-abr-01.tex
@@ -46,6 +46,7 @@
\logo [ARABTEX] {Arab\TeX}
\logo [ASCII] {ascii}
\logo [ASCIITEX] {ascii\TeX}
+\logo [ASCIIMATH] {AsciiMath}
\logo [BACHOTEX] {Bacho\TeX}
\logo [BIBTEX] {bib\TeX}
\logo [MLBIBTEX] {MLbib\TeX}
diff --git a/tex/context/base/s-math-coverage.lua b/tex/context/base/s-math-coverage.lua
index 56880f76d..3c6080dc3 100644
--- a/tex/context/base/s-math-coverage.lua
+++ b/tex/context/base/s-math-coverage.lua
@@ -9,45 +9,50 @@ if not modules then modules = { } end modules ['s-math-coverage'] = {
local utfchar, utfbyte = utf.char, utf.byte
local formatters, lower = string.formatters, string.lower
local concat = table.concat
+local sortedhash = table.sortedhash
-moduledata.math = moduledata.math or { }
-moduledata.math.coverage = moduledata.math.coverage or { }
+moduledata.math = moduledata.math or { }
+moduledata.math.coverage = moduledata.math.coverage or { }
-local context = context
+local context = context
-local ctx_NC = context.NC
-local ctx_NR = context.NR
-local ctx_HL = context.HL
+local ctx_NC = context.NC
+local ctx_NR = context.NR
+local ctx_HL = context.HL
-local ctx_rawmathematics = context.formatted.rawmathematics
-local ctx_mathematics = context.formatted.mathematics
-local ctx_startimath = context.startimath
-local ctx_stopimath = context.stopimath
-local ctx_setmathattribute = context.setmathattribute
-local ctx_underbar = context.underbar
-local ctx_getglyph = context.getglyph
+local ctx_startmixedcolumns = context.startmixedcolumns
+local ctx_stopmixedcolumns = context.stopmixedcolumns
+local ctx_setupalign = context.setupalign
+local ctx_starttabulate = context.starttabulate
+local ctx_stoptabulate = context.stoptabulate
+local ctx_rawmathematics = context.formatted.rawmathematics
+local ctx_mathematics = context.formatted.mathematics
+local ctx_startimath = context.startimath
+local ctx_stopimath = context.stopimath
+local ctx_setmathattribute = context.setmathattribute
+local ctx_underbar = context.underbar
+local ctx_getglyph = context.getglyph
-local styles = mathematics.styles
-local alternatives = mathematics.alternatives
-local charactersets = mathematics.charactersets
+local styles = mathematics.styles
+local alternatives = mathematics.alternatives
+local charactersets = mathematics.charactersets
-local getboth = mathematics.getboth
-local remapalphabets = mathematics.remapalphabets
+local getboth = mathematics.getboth
+local remapalphabets = mathematics.remapalphabets
-local chardata = characters.data
-local superscripts = characters.superscripts
-local subscripts = characters.subscripts
+local chardata = characters.data
+local superscripts = characters.superscripts
+local subscripts = characters.subscripts
context.writestatus("math coverage","underline: not remapped")
function moduledata.math.coverage.showalphabets()
- context.starttabulate { "|lT|l|Tl|" }
+ ctx_starttabulate { "|lT|l|Tl|" }
for i=1,#styles do
local style = styles[i]
for i=1,#alternatives do
local alternative = alternatives[i]
- for i=1,#charactersets do
- local alphabet = charactersets[i]
+ for _, alphabet in sortedhash(charactersets) do
ctx_NC()
if i == 1 then
context("%s %s",style,alternative)
@@ -80,14 +85,14 @@ function moduledata.math.coverage.showalphabets()
end
end
end
- context.stoptabulate()
+ ctx_stoptabulate()
end
function moduledata.math.coverage.showcharacters()
- context.startmixedcolumns()
- context.setupalign { "nothyphenated" }
- context.starttabulate { "|T|i2|Tpl|" }
- for u, d in table.sortedhash(chardata) do
+ ctx_startmixedcolumns { balance = "yes" }
+ ctx_setupalign { "nothyphenated" }
+ ctx_starttabulate { "|T|i2|Tpl|" }
+ for u, d in sortedhash(chardata) do
local mathclass = d.mathclass
local mathspec = d.mathspec
if mathclass or mathspec then
@@ -110,15 +115,15 @@ function moduledata.math.coverage.showcharacters()
ctx_NR()
end
end
- context.stoptabulate()
- context.stopmixedcolumns()
+ ctx_stoptabulate()
+ ctx_stopmixedcolumns()
end
-- This is a somewhat tricky table as we need to bypass the math machinery.
function moduledata.math.coverage.showscripts()
- context.starttabulate { "|cT|c|cT|c|c|c|l|" }
- for k, v in table.sortedhash(table.merged(superscripts,subscripts)) do
+ ctx_starttabulate { "|cT|c|cT|c|c|c|l|" }
+ for k, v in sortedhash(table.merged(superscripts,subscripts)) do
local ck = utfchar(k)
local cv = utfchar(v)
local ss = superscripts[k] and "^" or "_"
@@ -131,14 +136,14 @@ function moduledata.math.coverage.showscripts()
ctx_NC() context(lower(chardata[k].description))
ctx_NC() ctx_NR()
end
- context.stoptabulate()
+ ctx_stoptabulate()
end
-- Handy too.
function moduledata.math.coverage.showbold()
- context.starttabulate { "|lT|cm|lT|cm|lT|" }
- for k, v in table.sortedhash(mathematics.boldmap) do
+ ctx_starttabulate { "|lT|cm|lT|cm|lT|" }
+ for k, v in sortedhash(mathematics.boldmap) do
ctx_NC() context("%U",k)
ctx_NC() context("%c",k)
ctx_NC() context("%U",v)
@@ -146,5 +151,47 @@ function moduledata.math.coverage.showbold()
ctx_NC() context(chardata[k].description)
ctx_NC() ctx_NR()
end
- context.stoptabulate()
+ ctx_stoptabulate()
end
+
+-- function moduledata.math.coverage.showentities()
+-- ctx_startmixedcolumns { balance = "yes" }
+-- ctx_starttabulate { "|Tl|c|Tl|" }
+-- for k, v in sortedhash(characters.entities) do
+-- local b = utf.byte(v)
+-- local d = chardata[b]
+-- local m = d.mathname
+-- local c = d.contextname
+-- local s = ((m and "\\"..m) or (c and "\\".. c) or v) .. "{}{}{}"
+-- ctx_NC()
+-- context("%U",b)
+-- ctx_NC()
+-- ctx_mathematics(s)
+-- ctx_NC()
+-- context(k)
+-- ctx_NC()
+-- ctx_NR()
+-- end
+-- ctx_stoptabulate()
+-- ctx_stopmixedcolumns()
+-- end
+
+function moduledata.math.coverage.showentities()
+ ctx_startmixedcolumns { balance = "yes" }
+ ctx_starttabulate { "|T||T|T|" }
+ for k, v in sortedhash(characters.entities) do
+ local d = chardata[v]
+ if d then
+ local m = d.mathclass or d.mathspec
+ local u = d.unicodeslot
+ ctx_NC() context(m and "m" or "t")
+ ctx_NC() ctx_getglyph("MathRoman",u)
+ ctx_NC() context("%05X",u)
+ ctx_NC() context(k)
+ ctx_NC() ctx_NR()
+ end
+ end
+ ctx_stoptabulate()
+ ctx_stopmixedcolumns()
+end
+
diff --git a/tex/context/base/s-math-coverage.mkiv b/tex/context/base/s-math-coverage.mkiv
index 9f084b284..e318c9eff 100644
--- a/tex/context/base/s-math-coverage.mkiv
+++ b/tex/context/base/s-math-coverage.mkiv
@@ -15,10 +15,11 @@
\registerctxluafile{s-math-coverage}{}
-\installmodulecommandluasingle \showmathalphabets {moduledata.math.coverage.showalphabets}
-\installmodulecommandluasingle \showmathcharacters {moduledata.math.coverage.showcharacters}
-\installmodulecommandluasingle \showmathscripts {moduledata.math.coverage.showscripts}
-\installmodulecommandluasingle \showmathbold {moduledata.math.coverage.showbold}
+\installmodulecommandluasingle \showmathalphabets {moduledata.math.coverage.showalphabets}
+\installmodulecommandluasingle \showmathcharacters{moduledata.math.coverage.showcharacters}
+\installmodulecommandluasingle \showmathscripts {moduledata.math.coverage.showscripts}
+\installmodulecommandluasingle \showmathbold {moduledata.math.coverage.showbold}
+\installmodulecommandluasingle \showmathentities {moduledata.math.coverage.showentities}
\stopmodule
@@ -32,5 +33,6 @@
\showmathcharacters \page
\showmathscripts \page
\showmathbold \page
+ \showmathentities \page
\stoptext
diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf
index feb2b3c79..b68040c09 100644
--- a/tex/context/base/status-files.pdf
+++ b/tex/context/base/status-files.pdf
Binary files differ
diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf
index e0c35e9a9..6d8df7fd6 100644
--- a/tex/context/base/status-lua.pdf
+++ b/tex/context/base/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/tabl-tbl.mkiv b/tex/context/base/tabl-tbl.mkiv
index 675361b43..ae4f03825 100644
--- a/tex/context/base/tabl-tbl.mkiv
+++ b/tex/context/base/tabl-tbl.mkiv
@@ -1087,6 +1087,8 @@
\tabulatenoalign{\kern-\lineheight}%
\fi}
+% todo: make footer synonym to tail
+
\setuvalue{\e!start\v!tabulatehead}{\doifelsenextoptionalcs\tabl_tabulate_start_head_yes\tabl_tabulate_start_head_nop}
\setuvalue{\e!start\v!tabulatetail}{\doifelsenextoptionalcs\tabl_tabulate_start_foot_yes\tabl_tabulate_start_foot_nop}
diff --git a/tex/context/base/x-mathml.mkiv b/tex/context/base/x-mathml.mkiv
index ac74aa414..d090d5752 100644
--- a/tex/context/base/x-mathml.mkiv
+++ b/tex/context/base/x-mathml.mkiv
@@ -2435,29 +2435,39 @@
\def\mmlsetfakewidth#1{\setbox\scratchbox\hbox{#1}\scratchdimen\wd\scratchbox}
\def\mmlmcolumndigitspace {\mmlsetfakewidth {0}\kern\scratchdimen}
-\def\mmlmcolumndigitrule {\mmlsetfakewidth {0}\vrule width \scratchdimen height .2pt depth .2pt\relax}
-\def\mmlmcolumnsymbolrule {\mmlsetfakewidth{\times}\vrule width \scratchdimen height .2pt depth .2pt\relax}
-\def\mmlmcolumnpunctuationrule{\mmlsetfakewidth {.}\vrule width \scratchdimen height .2pt depth .2pt\relax}
+\def\mmlmcolumndigitrule {\mmlsetfakewidth {0}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+\def\mmlmcolumnsymbolrule {\mmlsetfakewidth{\times}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+\def\mmlmcolumnpunctuationrule{\mmlsetfakewidth {.}\vrule \s!width \scratchdimen \s!height .2\points \s!depth .2\points\relax}
+
+\setupMMLappearance[mspace][\c!option=] % \v!test
\startxmlsetups mml:mspace
\begingroup
\edef\mmlspacetext{\xmlatt{#1}{spacing}}
\ifx\mmlspacetext\empty
- \!!widtha \xmlattdef{#1}{width} \!!zeropoint % must be string
- \!!heighta\xmlattdef{#1}{height}\!!zeropoint
- \!!deptha \xmlattdef{#1}{depth} \!!zeropoint
- \ifdim\!!heighta=\zeropoint
- \ifdim\!!deptha=\zeropoint\else
- \hbox{\vrule\s!depth\!!deptha\s!height\zeropoint\s!width\zeropoint}%
+ \scratchwidth \xmlattdef{#1}{width} \!!zeropoint % must be string
+ \scratchheight\xmlattdef{#1}{height}\!!zeropoint
+ \scratchdepth \xmlattdef{#1}{depth} \!!zeropoint
+ \ifdim\scratchheight=\zeropoint
+ \ifdim\scratchdepth=\zeropoint\else
+ \hbox{\vrule\s!depth\scratchdepth\s!height\zeropoint\s!width\zeropoint}%
\fi
\else
- \hbox{\vrule\s!depth\zeropoint\s!height\!!heighta\s!width\zeropoint}%
+ \hbox{\vrule\s!depth\zeropoint\s!height\scratchheight\s!width\zeropoint}%
\fi
- \ifdim\!!widtha=\zeropoint\else
- \hskip\!!widtha
+ \ifdim\scratchwidth=\zeropoint\else
+ \ifx\MMLmspaceoption\v!test
+ \hbox to \scratchwidth{\showstruts\strut\hss\lower2\exheight\hbox{\infofont\xmlattdef{#1}{width}}\hss\strut}
+ \else
+ \hskip\scratchwidth
+ \fi
\fi
\else
- \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
+ \ifx\MMLmspaceoption\v!test
+ \hbox{\showstruts\strut\phantom{\triggermathstyle\normalmathstyle\mmlspacetext}\strut}
+ \else
+ \phantom{\triggermathstyle\normalmathstyle\mmlspacetext}
+ \fi
\fi
\endgroup
\stopxmlsetups
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index 9c2f4732b..2e0518be1 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 : luatex-fonts-merged.lua
-- parent file : luatex-fonts.lua
--- merge date : 04/09/15 20:56:25
+-- merge date : 04/10/15 09:29:23
do -- begin closure to overcome local limits and interference