X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=test%2Fvalign.lua;h=94f952e8bc1761286945892ddbf5f6acbe620478;hb=cf51a2259a27eeed9a3d5d0c40c767a5e6bc403e;hp=c044e6ff06f5da4bea0141f23ea97fa49b4bac86;hpb=05afdf69f62c5e8b00d4af07118fc4a11e23f817;p=luatex-ja%2Fluatexja.git diff --git a/test/valign.lua b/test/valign.lua index c044e6f..94f952e 100644 --- a/test/valign.lua +++ b/test/valign.lua @@ -1,8 +1,8 @@ -require('luatexja.base'); local ltjb = luatexja.base -require('luatexja.jfont'); local ltjf = luatexja.jfont +luatexja.load_module('base'); local ltjb = luatexja.base +luatexja.load_module('jfont'); local ltjf = luatexja.jfont local round = tex.round - +local floor = math.floor local attr_curjfnt = luatexbase.attributes['ltj@curjfnt'] local attr_jchar_class = luatexbase.attributes['ltj@charclass'] local attr_yablshift = luatexbase.attributes['ltj@yablshift'] @@ -11,9 +11,26 @@ local attr_ykblshift = luatexbase.attributes['ltj@ykblshift'] local ltjf_font_metric_table = ltjf.font_metric_table local ltjf_find_char_class = ltjf.find_char_class +local unity=65536 +local function print_scaled(s) + local out='' + local delta=10 + if s<0 then + out=out..'-'; s=-s + end + out=out..tostring(floor(s/unity)) .. '.' + s=10*(s%unity)+5 + repeat + if delta>unity then s=s+32768-50000 end + out=out .. tostring(floor(s/unity)) + s=10*(s%unity) + delta=delta*10 + until s<=delta + return out +end local function set_valign(fmtable, fn) local fi = fonts.ids[fn] - local mt = ltjf.metrics[fmtable.jfm].char_type[0] + local mt = fmtable.char_type[0] local ma = mt.height / (mt.height + mt.depth) * (fi.ascender + fi.descender) fmtable.down_offset = round(fi.ascender - ma) print('loading :', fn, print_scaled(fmtable.down_offset) @@ -22,7 +39,7 @@ local function set_valign(fmtable, fn) end luatexbase.add_to_callback("luatexja.define_jfont", set_valign, "ltj.valign.define_jfont", 1) --- ´û¤ËÆɤ߹þ¤Þ¤ì¤Æ¤¤¤ë¥Õ¥©¥ó¥È¤ËÂФ·¤Æ¤â¡¤Æ±¤¸¤³¤È¤ò¤ä¤é¤Ê¤¤¤È¤¤¤±¤Ê¤¤ +-- 既に読み込まれているフォントに対しても,同じことをやらないといけない for fn, v in pairs(ltjf_font_metric_table) do ltjf_font_metric_table[fn] = set_valign(v, fn) end