1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
if not modules then modules = { } end modules ['font-dum'] = {
version = 1.001,
comment = "companion to luatex-*.tex",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
fonts = fonts or { }
-- general
fonts.otf.pack = false
fonts.tfm.resolve_vf = false -- no sure about this
-- readers
fonts.tfm.readers = fonts.tfm.readers or { }
fonts.tfm.readers.sequence = { 'otf', 'ttf', 'tfm' }
fonts.tfm.readers.afm = nil
-- define
fonts.define = fonts.define or { }
--~ fonts.define.method = "tfm"
fonts.define.specify.colonized_default_lookup = "name"
function fonts.define.get_specification(str)
return "", str, "", ":", str
end
-- logger
fonts.logger = fonts.logger or { }
function fonts.logger.save()
end
-- names
fonts.names = fonts.names or { }
fonts.names.basename = "luatex-fonts-names.lua"
fonts.names.new_to_old = { }
fonts.names.old_to_new = { }
local data, loaded = nil, false
function fonts.names.resolve(name,sub)
if not loaded then
local basename = fonts.names.basename
if basename and basename ~= "" then
for _, format in ipairs { "lua", "tex", "other text files" } do
local foundname = resolvers.find_file(basename,format) or ""
if foundname ~= "" then
data = dofile(foundname)
if data then
local d = { }
for k, v in pairs(data.mapping) do
local t = v[1]
if t == "ttf" or t == "otf" or t == "ttc" then
d[k] = v
end
end
data.mapping = d
end
break
end
end
end
loaded = true
end
if type(data) == "table" and data.version == 1.07 then
local condensed = string.gsub(name,"[^%a%d]","")
local found = data.mapping and data.mapping[condensed]
if found then
local filename, is_sub = found[3], found[4]
return filename, is_sub
else
return name, false -- fallback to filename
end
end
end
|