X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-pretreat.lua;h=42507758e02e60dd71e4dde460de7aaeb372a195;hb=eb118f3e5ea0852407b5261817700401699528b9;hp=080cf893633cd0ef7972b030752e55ef1c58efc8;hpb=56b7f8c76e835f8b8c832550e32a69d3b8ff277c;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-pretreat.lua b/src/ltj-pretreat.lua index 080cf89..4250775 100644 --- a/src/ltj-pretreat.lua +++ b/src/ltj-pretreat.lua @@ -26,9 +26,8 @@ local floor = math.floor local has_attr = Dnode.has_attribute local set_attr = Dnode.set_attribute local node_traverse = Dnode.traverse -local node_remove =luatexja.Dnode_remove -- Dnode.remove +local node_remove = Dnode.remove local node_next = (Dnode ~= node) and Dnode.getnext or node.next -local node_prev = (Dnode ~= node) and Dnode.getprev or node.prev local node_free = Dnode.free local node_end_of_math = Dnode.end_of_math local tex_getcount = tex.getcount @@ -44,7 +43,7 @@ local attr_curtfnt = luatexbase.attributes['ltj@curtfnt'] local attr_icflag = luatexbase.attributes['ltj@icflag'] local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct -local ltjd_get_vert_glyph = ltjd.get_vert_glyph +local ltjs_orig_char_table = ltjs.orig_char_table local ltjf_replace_altfont = ltjf.replace_altfont local attr_orig_char = luatexbase.attributes['ltj@origchar'] local STCK = luatexja.userid_table.STCK @@ -52,60 +51,69 @@ local DIR = luatexja.userid_table.DIR local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG local dir_tate = luatexja.dir_table.dir_tate +local lang_ja = luatexja.lang_ja ------------------------------------------------------------------------ -- MAIN PROCESS STEP 1: replace fonts ------------------------------------------------------------------------ -local wt, wtd +local wt, wtd = {}, {} do - local start_time_measure, stop_time_measure + local ltjd_get_dir_count = ltjd.get_dir_count + local start_time_measure, stop_time_measure = ltjb.start_time_measure, ltjb.stop_time_measure local head - local is_dir_tate - local suppress_hyphenate_ja_aux = {} - suppress_hyphenate_ja_aux[id_glyph] = function(p) - if (has_attr(p, attr_icflag) or 0)<=0 and is_ucs_in_japanese_char(p) then - local pc = getchar(p) - local pf = ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc) - setfield(p, 'font', pf); set_attr(p, attr_curjfnt, pf) - setfield(p, 'subtype', floor(getsubtype(p)*0.5)*2) - set_attr(p, attr_orig_char, pc) - end - return p - end - suppress_hyphenate_ja_aux[id_math] = function(p) - return node_end_of_math(node_next(p)) end - suppress_hyphenate_ja_aux[50] = function(p) return p end - suppress_hyphenate_ja_aux[id_whatsit] = function(p) - if getsubtype(p)==sid_user then - local uid = getfield(p, 'user_id') - if uid==STCK then - wt[#wt+1] = p; head = node_remove(head, p) - elseif uid==DIR then - if has_attr(p, attr_icflag) ', print) return head end @@ -153,4 +165,5 @@ luatexbase.add_to_callback('pre_linebreak_filter', luatexja.pretreat = { set_box_stack_level = set_box_stack_level, + orig_char_table = orig_char_table, }