summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/s-math-characters.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/s-math-characters.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/s-math-characters.lua242
1 files changed, 0 insertions, 242 deletions
diff --git a/Master/texmf-dist/tex/context/base/s-math-characters.lua b/Master/texmf-dist/tex/context/base/s-math-characters.lua
deleted file mode 100644
index 8ff3a8660df..00000000000
--- a/Master/texmf-dist/tex/context/base/s-math-characters.lua
+++ /dev/null
@@ -1,242 +0,0 @@
-if not modules then modules = { } end modules['s-math-characters'] = {
- version = 1.001,
- comment = "companion to s-math-characters.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
--- This is one of the oldest cld files but I'm not going to clean it up.
-
-moduledata.math = moduledata.math or { }
-moduledata.math.characters = moduledata.math.characters or { }
-
-local concat = table.concat
-local lower = string.lower
-local utfchar = utf.char
-local round = math.round
-
-local fontdata = fonts.hashes.identifiers
-local chardata = characters.data
-local blocks = characters.blocks
-
-local no_description = "no description, private to font"
-
-local limited = true
-local fillinthegaps = true
-local upperlimit = 0x0007F
-local upperlimit = 0xF0000
-
-local f_unicode = string.formatters["%U"]
-local f_slot = string.formatters["%s/%0X"]
-
-function moduledata.math.characters.showlist(specification)
- specification = interfaces.checkedspecification(specification)
- local id = specification.number -- or specification.id
- local list = specification.list
- local showvirtual = specification.virtual == "all"
- local check = specification.check == "yes"
- if not id then
- id = font.current()
- end
- if list == "" then
- list = nil
- end
- local tfmdata = fontdata[id]
- local characters = tfmdata.characters
- local descriptions = tfmdata.descriptions
- local resources = tfmdata.resources
- local lookuptypes = resources.lookuptypes
- local virtual = tfmdata.properties.virtualized
- local names = { }
- local gaps = mathematics.gaps
- local sorted = { }
- if type(list) == "string" then
- sorted = utilities.parsers.settings_to_array(list)
- elseif type(list) == "table" then
- sorted = list
- elseif fillinthegaps then
- sorted = table.keys(characters)
- for k, v in next, gaps do
- if characters[v] then
- sorted[#sorted+1] = k
- end
- end
- table.sort(sorted)
- else
- sorted = table.sortedkeys(characters)
- end
- if virtual then
- for k, v in ipairs(tfmdata.fonts) do
- local id = v.id
- local name = fontdata[id].properties.name
- names[k] = (name and file.basename(name)) or id
- end
- end
- if check then
- for k, v in table.sortedhash(blocks) do
- if v.math then
- local first = v.first
- local last = v.last
- local f, l = 0, 0
- if first and last then
- for unicode=first,last do
- local code = gaps[unicode] or unicode
- local char = characters[code]
- if char and not (char.commands and not showvirtual) then
- f = unicode
- break
- end
- end
- for unicode=last,first,-1 do
- local code = gaps[unicode] or unicode
- local char = characters[code]
- if char and not (char.commands and not showvirtual) then
- l = unicode
- break
- end
- end
- context.showmathcharacterssetrange(k,f,l)
- end
- end
- end
- else
- context.showmathcharactersstart()
- for _, unicode in next, sorted do
- if not limited or unicode < upperlimit then
- local code = gaps[unicode] or unicode
- local char = characters[code]
- local desc = descriptions[code]
- local info = chardata[code]
- if char then
- local commands = char.commands
- if commands and not showvirtual then
- -- skip
- else
- local next_sizes = char.next
- local v_variants = char.vert_variants
- local h_variants = char.horiz_variants
- local slookups = desc and desc.slookups
- local mlookups = desc and desc.mlookups
- local mathclass = info.mathclass
- local mathspec = info.mathspec
- local mathsymbol = info.mathsymbol
- local description = info.description or no_description
- context.showmathcharactersstartentry()
- context.showmathcharactersreference(f_unicode(unicode))
- context.showmathcharactersentryhexdectit(f_unicode(code),code,lower(description))
- context.showmathcharactersentrywdhtdpic(round(char.width or 0),round(char.height or 0),round(char.depth or 0),round(char.italic or 0))
- if virtual and commands then
- local t = { }
- for i=1,#commands do
- local ci = commands[i]
- if ci[1] == "slot" then
- local fnt, idx = ci[2], ci[3]
- t[#t+1] = f_slot(names[fnt] or fnt,idx)
- end
- end
- if #t > 0 then
- context.showmathcharactersentryresource(concat(t,", "))
- end
- end
- if mathclass or mathspec then
- context.showmathcharactersstartentryclassspec()
- if mathclass then
- context.showmathcharactersentryclassname(mathclass,info.mathname or "no name")
- end
- if mathspec then
- for i=1,#mathspec do
- local mi = mathspec[i]
- context.showmathcharactersentryclassname(mi.class,mi.name or "no name")
- end
- end
- context.showmathcharactersstopentryclassspec()
- end
- if mathsymbol then
- context.showmathcharactersentrysymbol(f_unicode(mathsymbol),mathsymbol)
- end
- if next_sizes then
- local n, done = 0, { }
- context.showmathcharactersstartnext()
- while next_sizes do
- n = n + 1
- if done[next_sizes] then
- context.showmathcharactersnextcycle(n)
- break
- else
- done[next_sizes] = true
- context.showmathcharactersnextentry(n,f_unicode(next_sizes),next_sizes)
- next_sizes = characters[next_sizes]
- v_variants = next_sizes.vert_variants or v_variants
- h_variants = next_sizes.horiz_variants or h_variants
- if next_sizes then
- next_sizes = next_sizes.next
- end
- end
- end
- context.showmathcharactersstopnext()
- if h_variants or v_variants then
- context.showmathcharactersbetweennextandvariants()
- end
- end
- if h_variants then
- context.showmathcharactersstarthvariants()
- for i=1,#h_variants do -- we might go top-down in the original
- local vi = h_variants[i]
- context.showmathcharactershvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
- end
- context.showmathcharactersstophvariants()
- elseif v_variants then
- context.showmathcharactersstartvvariants()
- for i=1,#v_variants do
- local vi = v_variants[#v_variants-i+1]
- context.showmathcharactersvvariantsentry(i,f_unicode(vi.glyph),vi.glyph)
- end
- context.showmathcharactersstopvvariants()
- end
- if slookups or mlookups then
- local variants = { }
- if slookups then
- for lookupname, lookupdata in next, slookups do
- local lookuptype = lookuptypes[lookupname]
- if lookuptype == "substitution" then
- variants[lookupdata] = "sub"
- elseif lookuptype == "alternate" then
- for i=1,#lookupdata do
- variants[lookupdata[i]] = "alt"
- end
- end
- end
- end
- if mlookups then
- for lookupname, lookuplist in next, mlookups do
- local lookuptype = lookuptypes[lookupname]
- for i=1,#lookuplist do
- local lookupdata = lookuplist[i]
- local lookuptype = lookuptypes[lookupname]
- if lookuptype == "substitution" then
- variants[lookupdata] = "sub"
- elseif lookuptype == "alternate" then
- for i=1,#lookupdata do
- variants[lookupdata[i]] = "alt"
- end
- end
- end
- end
- end
- context.showmathcharactersstartlookupvariants()
- local i = 0
- for variant, lookuptype in table.sortedpairs(variants) do
- i = i + 1
- context.showmathcharacterslookupvariant(i,f_unicode(variant),variant,lookuptype)
- end
- context.showmathcharactersstoplookupvariants()
- end
- context.showmathcharactersstopentry()
- end
- end
- end
- end
- context.showmathcharactersstop()
- end
-end