X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-rmlgbm.lua;h=f12e1a361d74e40b7a58cef64354cf6f52a08c9e;hb=5bb253ab78fb107b8f34b3b7d31c8cb9b9e57261;hp=a4a06c777505c0a1f02625a6d77f008a1abe7186;hpb=2f9bb44bdca1b720c547ed5e19b5a28e90083828;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-rmlgbm.lua b/src/ltj-rmlgbm.lua index a4a06c7..f12e1a3 100644 --- a/src/ltj-rmlgbm.lua +++ b/src/ltj-rmlgbm.lua @@ -5,7 +5,7 @@ luatexja.load_module('base'); local ltjb = luatexja.base local cidfont_data = {} local cache_chars = {} -local cache_ver = 5 +local cache_ver = 7 local identifiers = fonts.hashes.identifiers local cid_reg, cid_order, cid_supp, cid_name @@ -118,6 +118,7 @@ do }, embedding = "no", cache = "yes", factor = 0, hfactor = 0, vfactor = 0, tounicode = 1, + properties = { language = "dflt", script = "dflt" }, } cidfont_data[cid_name] = k @@ -147,8 +148,11 @@ do }, dynamics = {}, features = {}, processes = {}, --rawdata = { descriptions = {} }, - } - k.resources = { unicodes = ttu, } + } + k.resources = { + unicodes = ttu, + features = { dummy={dummy={dflt=true}} } + } k.descriptions = {} cache_chars[cid_name] = { [655360] = k.characters } @@ -200,7 +204,7 @@ do cidf_vert_processor = { function (head, fnum) local fontdata = identifiers[fnum] - if fontdata.is_ltj_vert then + if luatexja.jfont.font_metric_table[fnum].vert_activated then local vt = fontdata.shared.ltj_vert_table for n in traverse_id(id_glyph, head) do if n.font==fnum then @@ -316,9 +320,6 @@ local function mk_rml(name, size, id) e = e * 1000 var, fontdata.extend = var .. 'x' .. tostring(e), e end - if string.match(specification.detail, '(%+?vert)') then - cachedata.is_ltj_vert = true - end fontdata.name = specification.name .. size .. var; cachedata.name = fontdata.name fontdata.fullname = specification.name .. var; cachedata.fullname = fontdata.fullname fontdata.psname = specification.name; cachedata.psname = fontdata.psname @@ -328,7 +329,8 @@ local function mk_rml(name, size, id) end local function font_callback(name, size, id, fallback) - local p = name:find(":") or name:len()+1 + if name:sub(1,1)=="{" and name:sub(-1)=="}" then name = name:sub(2,-2) end + local p = name:find(":") or 0 if name:sub(1, p-1) == 'psft' then local s = "Adobe-Japan1-6" local basename = name:sub(p+1) @@ -349,6 +351,9 @@ local function font_callback(name, size, id, fallback) if xname:len()+1==q then p = nil else p = q + 1 end end end + p = basename:find(":") + if p then basename=basename:sub(1,p-1) end + if basename:sub(1,1)=="{" and basename:sub(-1)=="}" then basename = basename:sub(2,-2) end cid_reg, cid_order = string.match(s, "^(.-)%-(.-)%-(%d-)$") if not cid_reg then cid_reg, cid_order = string.match(s, "^(.-)%-(.-)$")