diff options
Diffstat (limited to 'tex/context/base/mkxl/math-ext.lmt')
-rw-r--r-- | tex/context/base/mkxl/math-ext.lmt | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/tex/context/base/mkxl/math-ext.lmt b/tex/context/base/mkxl/math-ext.lmt new file mode 100644 index 000000000..e1dc74e48 --- /dev/null +++ b/tex/context/base/mkxl/math-ext.lmt @@ -0,0 +1,109 @@ +if not modules then modules = { } end modules ['math-ext'] = { + version = 1.001, + comment = "companion to math-ini.mkiv", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +-- local basename = file.basename +-- local sortedhash = table.sortedhash +-- +-- local mathematics = mathematics +-- local extras = mathematics.extras or { } +-- mathematics.extras = extras +-- +-- local characters = characters +-- local chardata = characters.data +-- local mathpairs = characters.mathpairs +-- +-- local trace_virtual = false +-- local report_math = logs.reporter("mathematics") +-- +-- trackers.register("math.virtual", function(v) trace_virtual = v end) +-- +-- local mathplus = { } +-- +-- function extras.add(unicode) +-- local min = mathematics.extrabase +-- local max = min + 0xFFF +-- if unicode >= min and unicode <= max then +-- if chardata[unicode] then +-- mathplus[unicode] = true +-- else +-- report_math("extra %U is not a registered code point",unicode) +-- end +-- else +-- report_math("extra %U should be in range %U - %U",unicode,min,max) +-- end +-- end +-- +-- function extras.copy(target,original) +-- local characters = target.characters +-- local properties = target.properties +-- local parameters = target.parameters +-- for unicode in sortedhash(mathplus) do +-- local extradesc = chardata[unicode] +-- local nextinsize = extradesc.nextinsize +-- if nextinsize then +-- local extrachar = characters[unicode] +-- local first = 1 +-- local charused = unicode +-- if not extrachar then +-- for i=1,#nextinsize do +-- local slot = nextinsize[i] +-- extrachar = characters[slot] +-- if extrachar then +-- characters[unicode] = extrachar +-- first = i + 1 +-- charused = slot +-- break +-- end +-- end +-- end +-- if not extrachar then +-- if trace_virtual then +-- report_math("extra %U in %a at %p with class %a and name %a is not mapped", +-- unicode,basename(properties.fullname),parameters.size, +-- extradesc.mathclass,extradesc.mathname) +-- end +-- elseif not extrachar.next then +-- local nextused = false +-- for i=first,#nextinsize do +-- local nextslot = nextinsize[i] +-- local nextbase = characters[nextslot] +-- if nextbase then +-- local nextnext = nextbase and nextbase.next +-- if nextnext then +-- local nextchar = characters[nextnext] +-- if nextchar then +-- extrachar.next = nextchar +-- nextused = nextslot +-- break +-- end +-- end +-- end +-- end +-- if trace_virtual then +-- if nextused then +-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with next %U", +-- unicode,basename(properties.fullname),parameters.size,charused, +-- extradesc.mathclass,extradesc.mathname,nextused) +-- else +-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with no next", +-- unicode,basename(properties.fullname),parameters.size,charused, +-- extradesc.mathclass,extradesc.mathname) +-- end +-- end +-- else +-- if trace_virtual then +-- report_math("extra %U in %a at %p with class %a and name %a maps onto %U with no next", -- own next +-- unicode,basename(properties.fullname),parameters.size,charused, +-- extradesc.mathclass,extradesc.mathname) +-- end +-- end +-- end +-- end +-- end +-- +-- utilities.sequencers.appendaction(mathactions,"system","mathematics.extras.copy") |