diff options
Diffstat (limited to 'Master/texmf-dist/scripts/tex4ebook/list-fonts.lua')
-rwxr-xr-x | Master/texmf-dist/scripts/tex4ebook/list-fonts.lua | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/Master/texmf-dist/scripts/tex4ebook/list-fonts.lua b/Master/texmf-dist/scripts/tex4ebook/list-fonts.lua deleted file mode 100755 index 9acd1665f60..00000000000 --- a/Master/texmf-dist/scripts/tex4ebook/list-fonts.lua +++ /dev/null @@ -1,145 +0,0 @@ -kpse.set_program_name("luatex") -local function exists(fn) - local f = io.open(fn,"r") - if f~=nil then io.close(f) return true else return false end -end -local function load_fontbase(pathtable) - -- path should point to possible location of luaotfload font database - -- pathtable should be array of strings - -- each path should not end with lua - - local path = pathtable - if type(pathtable) =="string" then path = {pathtable} end - if #path == 0 then return nil end - local currentpath = table.remove(path,1) - if exists(currentpath ..".lua") then return require(currentpath) - else return load_fontbase(path) end -end - ---local fontbase = require(kpse.expand_var("$TEXMFSYSVAR") .. "/luatex-cache/generic/names/luaotfload-names.lua") -local sysvar = kpse.expand_var("$TEXMFSYSVAR") -local var = kpse.expand_var("$TEXMFVAR") -local namespath = "/luatex-cache/generic/names/" -local oldnames = "otfl-names" -local newnames = "luaotfload-names" -local compose_path = function(path, name) return path .. namespath .. name end -local fontbase_path = { - compose_path(sysvar, newnames), - compose_path(var, newnames), - compose_path(sysvar, oldnames), - compose_path(var,oldnames) -} - -local fontbase = load_fontbase(fontbase_path) or {} -fontbase.mappings = fontbase.mappings or {} --- assert(fontbase, "Cannot load font names") - - --- [[ --- This is code for querying the database --- -local search = arg[1] or "" -search = unicode.utf8.lower(search) ---]] -local fonts = {} -for _,record in pairs(fontbase.mappings) do - local familyname = record.familyname - local styles = fonts[familyname] or {} - local sanitized = record.sanitized or record.names - local subfamily = sanitized.subfamily --record.sanitized.subfamily or record.names.subfamily - styles[subfamily] = record -- We add subfamily as key to prevent duplicates - fonts[familyname] = styles -end - -local FontLoader = {} - -FontLoader.__index = FontLoader - -FontLoader.load_family = function(familyname) - local self = setmetatable({},FontLoader) - local family = fonts[familyname] - --[[ for _, record in pairs(fontbase.mappings) do - if record.familyname == familyname then - local style = record.sanitized.subfamily - family[style] = record - end - end - --]] - self.family = family - return self -end -FontLoader.get_path =function(self,style) - local rec = self.family[style] - local filename = rec.filename - if type(filename) == "table" then - filename = filename[1] - end - return kpse.find_file(filename,'opentype fonts') or kpse.find_file(filename,'truetype fonts') -end - - -FontLoader.list = function(self) - for style,rec in pairs(self.family) do - print(style, self:get_path(style)) - end -end - - -local FontNames = {} -FontNames.__index = FontNames - -FontNames.new = function() - self = setmetatable({},FontNames) - self.names = {} - return self -end - -FontNames.add_family = function(self,properties) - local properties = properties or {} - return function(names) - local names = names or {} - for _,n in pairs(names) do - self.names[n] = properties - end - end -end - -FontNames.list = function(self) - for name,prop in pairs(self.names) do - local p = {} - for k,v in pairs(prop) do - table.insert(p,k..'='..v) - end - print(name, table.concat(p)) - end -end - ---[[ -local fontnames = {} -for fontname,_ in pairs(fonts) do - local lowername = unicode.utf8.lower(fontname) - if lowername:find(search) then - table.insert(fontnames, fontname) - end -end - -table.sort(fontnames) ---for fontname, styles in pairs (fonts) do -for _, name in pairs(fontnames) do - local fontname = name - local styles = fonts[fontname] - local t = {} - for n,_ in pairs(styles) do table.insert(t,n) end - print(fontname, table.concat(t,', ')) -end ---]] - -local testfont = FontLoader.load_family("math") ---testfont:list() - -local n= FontNames.new() -n:add_family {type = "serif", name = "LMMono10"} {"cmr"} -n:add_family {type = "serif", name = "TeXGyreTermes"} {"ts1-qtmr", "ec-qtmr","ec-qtmri"} ---n:list() - -return {FontLoader = FontLoader, FontNames = n} |