summaryrefslogtreecommitdiff
path: root/tex/context/base/s-fonts-coverage.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/s-fonts-coverage.lua')
-rw-r--r--tex/context/base/s-fonts-coverage.lua226
1 files changed, 113 insertions, 113 deletions
diff --git a/tex/context/base/s-fonts-coverage.lua b/tex/context/base/s-fonts-coverage.lua
index db47e57c4..668c430a9 100644
--- a/tex/context/base/s-fonts-coverage.lua
+++ b/tex/context/base/s-fonts-coverage.lua
@@ -1,113 +1,113 @@
-if not modules then modules = { } end modules ['s-fonts-coverage'] = {
- version = 1.001,
- comment = "companion to s-fonts-coverage.mkiv",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files"
-}
-
-moduledata.fonts = moduledata.fonts or { }
-moduledata.fonts.coverage = moduledata.fonts.coverage or { }
-
-local upper, format = string.upper, string.format
-local lpegmatch = lpeg.match
-local concat = table.concat
-
-local context = context
-local NC, NR, HL = context.NC, context.NR, context.HL
-local char, bold, getvalue = context.char, context.bold, context.getvalue
-
-local chardata = characters.data
-
-function moduledata.fonts.coverage.showcomparison(specification)
-
- specification = interfaces.checkedspecification(specification)
-
- local fontfiles = utilities.parsers.settings_to_array(specification.list or "")
- local pattern = upper(specification.pattern or "")
-
- local present = { }
- local names = { }
- local files = { }
-
- if not pattern then
- -- skip
- elseif pattern == "" then
- pattern = nil
- elseif tonumber(pattern) then
- pattern = tonumber(pattern)
- else
- pattern = lpeg.oneof(utilities.parsers.settings_to_array(pattern))
- pattern = (1-pattern)^0 * pattern
- end
-
- for i=1,#fontfiles do
- local fontname = format("testfont-%s",i)
- local fontfile = fontfiles[i]
- local fontsize = tex.dimen.bodyfontsize
- local id, fontdata = fonts.definers.define {
- name = fontfile,
- size = fontsize,
- cs = fontname,
- }
- if id and fontdata then
- for k, v in next, fontdata.characters do
- present[k] = true
- end
- names[#names+1] = fontname
- files[#files+1] = fontfile
- end
- end
-
- local t = { }
-
- context.starttabulate { "|Tr" .. string.rep("|l",#names) .. "|" }
- for i=1,#files do
- local file = files[i]
- t[#t+1] = i .. "=" .. file
- NC()
- context(i)
- NC()
- context(file)
- NC()
- NR()
- end
- context.stoptabulate()
-
- context.setupfootertexts {
- table.concat(t," ")
- }
-
- context.starttabulate { "|Tl" .. string.rep("|c",#names) .. "|Tl|" }
- NC()
- bold("unicode")
- NC()
- for i=1,#names do
- bold(i)
- NC()
- end
- bold("description")
- NC()
- NR()
- HL()
- for k, v in table.sortedpairs(present) do
- if k > 0 then
- local description = chardata[k].description
- if not pattern or (pattern == k) or (description and lpegmatch(pattern,description)) then
- NC()
- context("%05X",k)
- NC()
- for i=1,#names do
- getvalue(names[i])
- char(k)
- NC()
- end
- context(description)
- NC()
- NR()
- end
- end
- end
- context.stoptabulate()
-
-end
+if not modules then modules = { } end modules ['s-fonts-coverage'] = {
+ version = 1.001,
+ comment = "companion to s-fonts-coverage.mkiv",
+ author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
+ copyright = "PRAGMA ADE / ConTeXt Development Team",
+ license = "see context related readme files"
+}
+
+moduledata.fonts = moduledata.fonts or { }
+moduledata.fonts.coverage = moduledata.fonts.coverage or { }
+
+local upper, format = string.upper, string.format
+local lpegmatch = lpeg.match
+local concat = table.concat
+
+local context = context
+local NC, NR, HL = context.NC, context.NR, context.HL
+local char, bold, getvalue = context.char, context.bold, context.getvalue
+
+local chardata = characters.data
+
+function moduledata.fonts.coverage.showcomparison(specification)
+
+ specification = interfaces.checkedspecification(specification)
+
+ local fontfiles = utilities.parsers.settings_to_array(specification.list or "")
+ local pattern = upper(specification.pattern or "")
+
+ local present = { }
+ local names = { }
+ local files = { }
+
+ if not pattern then
+ -- skip
+ elseif pattern == "" then
+ pattern = nil
+ elseif tonumber(pattern) then
+ pattern = tonumber(pattern)
+ else
+ pattern = lpeg.oneof(utilities.parsers.settings_to_array(pattern))
+ pattern = (1-pattern)^0 * pattern
+ end
+
+ for i=1,#fontfiles do
+ local fontname = format("testfont-%s",i)
+ local fontfile = fontfiles[i]
+ local fontsize = tex.dimen.bodyfontsize
+ local id, fontdata = fonts.definers.define {
+ name = fontfile,
+ size = fontsize,
+ cs = fontname,
+ }
+ if id and fontdata then
+ for k, v in next, fontdata.characters do
+ present[k] = true
+ end
+ names[#names+1] = fontname
+ files[#files+1] = fontfile
+ end
+ end
+
+ local t = { }
+
+ context.starttabulate { "|Tr" .. string.rep("|l",#names) .. "|" }
+ for i=1,#files do
+ local file = files[i]
+ t[#t+1] = i .. "=" .. file
+ NC()
+ context(i)
+ NC()
+ context(file)
+ NC()
+ NR()
+ end
+ context.stoptabulate()
+
+ context.setupfootertexts {
+ table.concat(t," ")
+ }
+
+ context.starttabulate { "|Tl" .. string.rep("|c",#names) .. "|Tl|" }
+ NC()
+ bold("unicode")
+ NC()
+ for i=1,#names do
+ bold(i)
+ NC()
+ end
+ bold("description")
+ NC()
+ NR()
+ HL()
+ for k, v in table.sortedpairs(present) do
+ if k > 0 then
+ local description = chardata[k].description
+ if not pattern or (pattern == k) or (description and lpegmatch(pattern,description)) then
+ NC()
+ context("%05X",k)
+ NC()
+ for i=1,#names do
+ getvalue(names[i])
+ char(k)
+ NC()
+ end
+ context(description)
+ NC()
+ NR()
+ end
+ end
+ end
+ context.stoptabulate()
+
+end