do
local start_time_measure = ltjb.start_time_measure
local stop_time_measure = ltjb.stop_time_measure
- slow_find_char_class = function (c, m, oc)
+ slow_find_char_class = function (c, m, oc,t )
local cls = ltjf_find_char_class(oc, m)
if oc~=c and cls==0 then
return ltjf_find_char_class(-c, m), oc
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local attr_autospc = luatexbase.attributes['ltj@autospc']
local attr_autoxspc = luatexbase.attributes['ltj@autoxspc']
+ local ltjf_get_vert_glyph = ltjf.get_vert_glyph
function set_np_xspc_jachar_yoko(Nx, x)
local m = ltjf_font_metric_table[getfont(x)]
local cls, c = slow_find_char_class(ltjs_orig_char_table[x], m, getchar(x))
Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
end
function set_np_xspc_jachar_tate(Nx, x)
- local m = ltjf_font_metric_table[getfont(x)]
- local cls, c
- local c1, c2 = getchar(x), ltjs_orig_char_table[x][1]
- c = ltjs_orig_char_table[x][2] or c1 or c2
- cls = ltjf_find_char_class(c, m)
- if cls==0 then cls = slow_find_char_class(c2, m, c1) end
+ local c, c_glyph = ltjs_orig_char_table[x], getchar(x)
+ local xf = getfont(x)
+ local m = ltjf_font_metric_table[xf]
+ local cls = slow_find_char_class(c, m, c_glyph)
+ setfield(x, 'char', ltjf_get_vert_glyph(xf, c_glyph) or c_glyph)
Nx.met = m; Nx.class = cls;
if cls~=0 then set_attr(x, attr_jchar_class, cls) end
Nx.pre = table_current_stack[PRE + c] or 0