summaryrefslogtreecommitdiff
path: root/tex/context/base/mkxl/math-ext.lmt
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkxl/math-ext.lmt')
-rw-r--r--tex/context/base/mkxl/math-ext.lmt109
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")