diff options
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua index 77855f5374a..c7f8593e646 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua @@ -155,13 +155,22 @@ function define_jfm(t) if type(x)=='number' then v.kern[j] = {x, 0.5} elseif type(x)=='table' then - v.kern[j] = { x[1], ratio=x.ratio or (x[2] and 0.5*(1+x[2]) or 0.5) } + v.kern[j] = { x[1], (x.ratio or (x[2] and 0.5*(1+x[2]) or 0.5)) } end end t.char_type[i] = v t[i] = nil end end + if t.version<3 then + -- In version 3, 'jcharbdd' is divided into + -- 'alchar': ALchar (or math boundary) + -- 'nox_alchar': ALchar (or math boundary), where xkanjiskip won't inserted + -- 'glue': glue/kern, 'jcharbdd': other cases (和文B, rule, ...) + t.chars.alchar = t.chars.jcharbdd + t.chars.nox_alchar = t.chars.jcharbdd + t.chars.glue = t.chars.jcharbdd + end t = luatexbase.call_callback("luatexja.load_jfm", t, jfm_file_name) t.size_cache = {} defjfm_res = t @@ -804,7 +813,13 @@ do return dest end prepare_fl_data = function (dest, id) - local fl = fontloader.open(id.filename) + local t = fontloader.info(id.filename) + local fl + if t.filename then + fl = fontloader.open(id.filename) + else + fl = fontloader.open(id.filename, id.fullname) + end local ind_to_uni, unicodes = {}, {} for i,v in pairs(id.characters) do ind_to_uni[v.index] = i @@ -856,16 +871,16 @@ end -- do - local cache_ver = 11 + local cache_ver = 12 local checksum = file.checksum local function prepare_extra_data_base(id) if (not id) or (not id.filename) then return end - local bname = file.nameonly(id.filename) + local bname = id.psname or file.nameonly(id.filename) if not font_extra_basename[bname] then -- if the cache is present, read it local newsum = checksum(id.filename) -- MD5 checksum of the fontfile - local v = "extra_" .. string.lower(file.nameonly(id.filename)) + local v = "extra_" .. string.lower(bname) local dat = ltjb.load_cache( v, function (t) return (t.version~=cache_ver) or (t.chksum~=newsum) end @@ -888,8 +903,8 @@ do end end local function prepare_extra_data_font(id, res) - if type(res)=='table' and res.shared and res.filename then - font_extra_info[id] = font_extra_basename[file.nameonly(res.filename)] + if type(res)=='table' and res.shared and (res.psname or res.filename) then + font_extra_info[id] = font_extra_basename[res.psname or file.nameonly(res.filename)] end end luatexbase.add_to_callback( |