X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-jfont.lua;h=e18fece15bb4da1b00be78e038579539b80afd4a;hb=d177010c46e52e722b4752eded1ae4a6807953df;hp=40042eccb3a53810085dd245b1ad1eb27c005ab4;hpb=d85642369bcae6331dc9d55fa5978104c7a8631a;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-jfont.lua b/src/ltj-jfont.lua index 40042ec..e18fece 100644 --- a/src/ltj-jfont.lua +++ b/src/ltj-jfont.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfont', - date = '2017/08/09', + date = '2017/09/04', description = 'Loader for Japanese fonts', }) module('luatexja.jfont', package.seeall) @@ -859,12 +859,21 @@ do end prepare_fl_data = function (dest, id) local t = fontloader.info(id.filename) + if not t then return dest end local fl - if t.filename then + if t.fontname then fl = fontloader.open(id.filename) else - fl = fontloader.open(id.filename, id.fullname) + fl = fontloader.open(id.filename, id.fontname) -- マニュアルにはこっちで書いてあるが? + if not fl then + local index + for i,v in ipairs(t) do + if v.fontname == id.fontname then index=i; break end + end + fl = fontloader.open(id.filename, index) + end end + if not fl then fontloader.close(fl); return dest end local ind_to_uni, unicodes = {}, {} for i,v in pairs(id.characters) do ind_to_uni[v.index] = i @@ -940,7 +949,7 @@ do font_extra_basename[bname] = dat or {} ltjb.save_cache( v, { - chksum = checksum(id.filename), + chksum = newsum, version = cache_ver, dat, })