X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-rmlgbm.lua;h=5ee567b5b872b5c6bd1c068415950c298c7074e2;hb=c35bc9236b8c249d3089a824fe197d0d1cde7e78;hp=388577e02058bcd47c15089e77eb21b9d79bd6af;hpb=bfdb46e566bcc2729577b45344a901ff789128d6;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-rmlgbm.lua b/src/ltj-rmlgbm.lua index 388577e..5ee567b 100644 --- a/src/ltj-rmlgbm.lua +++ b/src/ltj-rmlgbm.lua @@ -10,12 +10,10 @@ luatexbase.provides_module({ module('luatexja.rmlgbm', package.seeall) local err, warn, info, log = luatexbase.errwarinf(_NAME) -require('luatexja.base'); local ltjb = luatexja.base +luatexja.load_module('base'); local ltjb = luatexja.base -local round = tex.round local cidfont_data = {} local cache_chars = {} -local taux_dir = 'luatex-cache/luatexja' local path = { localdir = file.join(kpse.expand_var("$TEXMFVAR"), aux_dir), systemdir = file.join(kpse.expand_var("$TEXMFSYSVAR"), aux_dir), @@ -30,17 +28,19 @@ local function read_cid_font(cid_name) if kpsefound and file.isreadable(kpsefound) then cidfont_data[cid_name] = require(kpsefound) cache_chars[cid_name] = { [655360] = cidfont_data[cid_name].characters } - return elseif file.isreadable(localpath) then cidfont_data[cid_name] = require(localpath) cache_chars[cid_name] = { [655360] = cidfont_data[cid_name].characters } - return elseif file.isreadable(systempath) then cidfont_data[cid_name] = require(systempath) cache_chars[cid_name] = { [655360] = cidfont_data[cid_name].characters } - return end - -- + if cidfont_data[cid_name] then + for i,v in pairs(cidfont_data[cid_name].characters) do + if not v.width then v.width = 655360 end + v.height, v.depth = 576716.8, 78643.2 -- optimized for jfm-ujis.lua + end + end end -- High-level @@ -75,13 +75,13 @@ local function mk_rml(name, size, id, cid_name) -- characters & scaling if size < 0 then size = -size * 655.36 end local scale = size / 655360 - local def_height = round(0.88 * size) -- character's default height (optimized for jfm-ujis.lua) - local def_depth = round(0.12 * size) -- and depth. + local def_height = 0.88 * size -- character's default height (optimized for jfm-ujis.lua) + local def_depth = 0.12 * size -- and depth. if not cache_chars[cid_name][size] then cache_chars[cid_name][size] = {} for k, v in pairs(cache_chars[cid_name][655360]) do cache_chars[cid_name][size][k] = { - index = v.index, width = round(v.width * scale), + index = v.index, width = v.width * scale, height = def_height, depth = def_depth, tounicode = v.tounicode, } end @@ -140,19 +140,19 @@ function fonts.define.read(name, size, id) end cid_reg, cid_order = string.match(s, "^(.-)%-(.-)%-(%d-)$") if not cid_reg then - cid_reg, cid_order = string.match(s, "^(.-)%-(.-)$") + cid_reg, cid_order = string.match(s, "^(.-)%-(.-)$") end cid_name = cid_reg .. '-' .. cid_order if not cidfont_data[cid_name] then - read_cid_font(cid_name) - if not cidfont_data[cid_name] then - ltjb.package_error('luatexja', - "bad cid key `" .. s .. "'", - "I couldn't find any non-embedded font information for the CID\n" .. - '`' .. s .. "'. For now, I'll use `Adobe-Japan1-6'.\n".. - 'Please contact the LuaTeX-ja project team.') - cid_name = "Adobe-Japan1" - end + read_cid_font(cid_name) + if not cidfont_data[cid_name] then + ltjb.package_error('luatexja', + "bad cid key `" .. s .. "'", + "I couldn't find any non-embedded font information for the CID\n" .. + '`' .. s .. "'. For now, I'll use `Adobe-Japan1-6'.\n".. + 'Please contact the LuaTeX-ja project team.') + cid_name = "Adobe-Japan1" + end end return mk_rml(basename, size, id, cid_name) else @@ -161,6 +161,4 @@ function fonts.define.read(name, size, id) end -read_cid_font("Adobe-Japan1") - - +read_cid_font("Adobe-Japan1") \ No newline at end of file