+ -- shared
+ k.shared = {
+ otfdata = {
+ cidinfo= k.cidinfo, verbose = false,
+ shared = { featuredata = {}, },
+ luatex = { features = {},
+ defaultwidth=1000,
+ sequences = { }, },
+ },
+ dynamics = {}, features = {}, processes = {},
+ }
+ k.resources = { unicodes = ttu, }
+ k.descriptions = {}
+ cache_chars[cid_name] = { [655360] = k.characters }
+
+ -- tounicode エントリ
+ local cidp = {nil, nil}; local cidmo = cidm
+ tt, ttu, cidm = {}, {}, {}
+ open_cmap_file(cid_name .. "-UCS2",
+ function(a)
+ a[2] = a[2] +1 ; return a
+ end,
+ function(a)
+ cidp[1] = string.upper(string.sub(a,1,string.len(a)-4))
+ cidp[2] = tonumber(string.sub(a,-4),16)
+ return cidp
+ end,
+ function(a) return a[1] ..string.format('%04X',a[2]) end)
+ -- tt は cid -> tounicode になっているので cidm -> tounicode に変換
+ local kxf = kx[4]
+ for i,v in ipairs(cidmo) do
+ k.characters[v].width = kxf(i)
+ if v>=0xF0000 then
+ k.characters[v].tounicode = tt[i]
+ end
+ end
+