- local is_dir_tate
- local suppress_hyphenate_ja_aux_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 pof, pcj = getfont(p), has_attr(p, attr_curjfnt)
- local pf = ltjf_replace_altfont(pcj or pof, pc)
- if pof~=pf then setfield(p, 'font', pf) end
- if pcj~=pf then set_attr(p, attr_curjfnt, pf) end
- setfield(p, 'subtype', floor(getsubtype(p)*0.5)*2)
- set_attr(p, attr_orig_char, pc)
- end
- end
- local suppress_hyphenate_ja_aux_whatsit = function(p)
- if getsubtype(p)==sid_user then
- local uid = getfield(p, 'user_id')
- if uid==STCK then
- wt[#wt+1] = p
- elseif uid==DIR then
- if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
- ltjs.list_dir = has_attr(p, attr_dir)
+ local suppress_hyphenate_ja_aux = {
+ [id_math] = function(p) return node_next(node_end_of_math(node_next(p))) end,
+ [id_whatsit] = function(p)
+ if getsubtype(p)==sid_user then
+ local uid = getfield(p, 'user_id')
+ if uid==STCK then
+ wt[#wt+1] = p; node_remove(head, p)
+ elseif uid==DIR then
+ if has_attr(p, attr_icflag)<PROCESSED_BEGIN_FLAG then
+ ltjs.list_dir = has_attr(p, attr_dir)
+ else -- こっちのケースは通常使用では起こらない
+ wtd[#wtd+1] = p; node_remove(head, p)
+ end