Np.first = Np.first or lp; Np.id = id_pbox
set_attr(lp, attr_icflag, get_attr_icflag(lp));
while lp ~=last and (lpa>=PACKED) and (lpa<BOXBDD) do
Np.first = Np.first or lp; Np.id = id_pbox
set_attr(lp, attr_icflag, get_attr_icflag(lp));
while lp ~=last and (lpa>=PACKED) and (lpa<BOXBDD) do
head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox')
Np.first = first and nc or Np.first
head, lp, nc = ltjd_make_dir_whatsit(head, lp, list_dir, 'jfm pbox')
Np.first = first and nc or Np.first
Np.first= (Np.first or lp)
if getfield(lp, 'lang') == lang_ja then
Np.id = id_jglyph
Np.first= (Np.first or lp)
if getfield(lp, 'lang') == lang_ja then
Np.id = id_jglyph
- lp, head, npi, npf = capsule_glyph(lp, m, cls, head, tex_dir, lp)
+ lp, head, npi, npf = capsule_glyph(lp, m, mc[cls], head, tex_dir)
Np.first = (Np.first~=Np.nuc) and Np.first or npf or npi
Np.nuc = npi
return true, check_next_ickern(lp);
Np.first = (Np.first~=Np.nuc) and Np.first or npf or npi
Np.nuc = npi
return true, check_next_ickern(lp);
c = c or c_glyph
local cls = slow_find_char_class(c, m, c_glyph)
Nx.met, Nx.class, Nx.char = m, cls, c;
c = c or c_glyph
local cls = slow_find_char_class(c, m, c_glyph)
Nx.met, Nx.class, Nx.char = m, cls, c;
if cls~=0 then set_attr(x, attr_jchar_class, cls) end
if c~=c_glyph then set_attr(x, attr_jchar_code, c) end
Nx.pre = table_current_stack[PRE + c] or 0
if cls~=0 then set_attr(x, attr_jchar_class, cls) end
if c~=c_glyph then set_attr(x, attr_jchar_code, c) end
Nx.pre = table_current_stack[PRE + c] or 0
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.kcat = table_current_stack[KCAT + c] or 0
Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.kcat = table_current_stack[KCAT + c] or 0
Nx.auto_kspc, Nx.auto_xspc = (has_attr(x, attr_autospc)==1), (has_attr(x, attr_autoxspc)==1)
end
function set_np_xspc_jachar_hbox(Nx, x)
local m = ltjf_font_metric_table[getfont(x)]
local c = has_attr(x, attr_jchar_code) or getchar(x)
Nx.met, Nx.char = m, c; Nx.class = has_attr(x, attr_jchar_class) or 0;
end
function set_np_xspc_jachar_hbox(Nx, x)
local m = ltjf_font_metric_table[getfont(x)]
local c = has_attr(x, attr_jchar_code) or getchar(x)
Nx.met, Nx.char = m, c; Nx.class = has_attr(x, attr_jchar_class) or 0;
Nx.pre = table_current_stack[PRE + c] or 0
Nx.post = table_current_stack[POST + c] or 0
Nx.xspc = table_current_stack[XSP + c] or 3
Nx.pre = table_current_stack[PRE + c] or 0
Nx.post = table_current_stack[POST + c] or 0
Nx.xspc = table_current_stack[XSP + c] or 3
if g then
if g[1] then
local f = node_new(id_glue)
set_attr(f, attr_icflag, g.priority)
setfield(f, 'spec', node_copy(g[2]))
if g then
if g[1] then
local f = node_new(id_glue)
set_attr(f, attr_icflag, g.priority)
setfield(f, 'spec', node_copy(g[2]))
- return f, g.ratio, g.ksp_natural, g.ksp_stretch, g.ksp_shrink
+ return f, g.ratio, g.kanjiskip_natural, g.kanjiskip_stretch, g.kanjiskip_shrink
else
return node_copy(g[2]), g.ratio, false, false, false
end
else
return node_copy(g[2]), g.ratio, false, false, false
end
local KANJI_SKIP_JFM = luatexja.icflag_table.KANJI_SKIP_JFM
get_kanjiskip_low = function(flag, qm, bn, bp, bh)
local KANJI_SKIP_JFM = luatexja.icflag_table.KANJI_SKIP_JFM
get_kanjiskip_low = function(flag, qm, bn, bp, bh)
if kanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
if kanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
calc_ja_ja_glue = function ()
local qm, pm = Nq.met, Np.met
calc_ja_ja_glue = function ()
local qm, pm = Nq.met, Np.met
- if (qm.char_type==pm.char_type) and (qm.var==pm.var) then
- local g, _, kn, kp, kh = new_jfm_glue(qm, Nq.class, Np.class)
+ local qmc, pmc = qm.char_type, pm.char_type
+ if (qmc==pmc) and (qm.var==pm.var) then
+ local g, _, kn, kp, kh = new_jfm_glue(qmc, Nq.class, Np.class)
return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(false, qm, kn, kp, kh)
else
local npn, nqn = Np.nuc, Nq.nuc
local gb, db, bn, bp, bh
return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(false, qm, kn, kp, kh)
else
local npn, nqn = Np.nuc, Nq.nuc
local gb, db, bn, bp, bh
slow_find_char_class(Nq.char,
pm, getchar(nqn)),
Np.class)
local g = calc_ja_ja_aux(gb, ga, db, da)
local k
slow_find_char_class(Nq.char,
pm, getchar(nqn)),
Np.class)
local g = calc_ja_ja_aux(gb, ga, db, da)
local k
gb = get_kanjiskip_low(false, qm, bn, bp, bh)
ga = get_kanjiskip_low(false, pm, an, ap, ah)
k = calc_ja_ja_aux(gb, ga, db, da)
gb = get_kanjiskip_low(false, qm, bn, bp, bh)
ga = get_kanjiskip_low(false, pm, an, ap, ah)
k = calc_ja_ja_aux(gb, ga, db, da)
local XKANJI_SKIP_JFM = luatexja.icflag_table.XKANJI_SKIP_JFM
get_xkanjiskip_low = function(flag, qm, bn, bp, bh)
local XKANJI_SKIP_JFM = luatexja.icflag_table.XKANJI_SKIP_JFM
get_xkanjiskip_low = function(flag, qm, bn, bp, bh)
if xkanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
if xkanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
local function get_OA_skip(is_kanji)
local pm = Np.met
local g, _, kn, kp, kh = new_jfm_glue(
local function get_OA_skip(is_kanji)
local pm = Np.met
local g, _, kn, kp, kh = new_jfm_glue(
local function get_OB_skip(is_kanji)
local qm = Nq.met
local g, _, kn, kp, kh = new_jfm_glue(
local function get_OB_skip(is_kanji)
local qm = Nq.met
local g, _, kn, kp, kh = new_jfm_glue(
-- the current list is the contents of a hbox
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
-- the current list is the contents of a hbox
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
- local g = new_jfm_glue(pm, Np.class, fast_find_char_class('boxbdd', pm))
+ local g = new_jfm_glue(pm.char_type, Np.class, fast_find_char_class('boxbdd', pm))
if g then
set_attr(g, attr_icflag, BOXBDD)
head = insert_after(head, Np.last, g)
if g then
set_attr(g, attr_icflag, BOXBDD)
head = insert_after(head, Np.last, g)
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
if non_ihb_flag then
local npi, pm = Np.id, Np.met
if npi == id_jglyph or (npi==id_pbox and pm) then
if non_ihb_flag then
- local g = new_jfm_glue(pm, fast_find_char_class(par_indented, pm), Np.class)
+ local g = new_jfm_glue(pm.char_type, fast_find_char_class(par_indented, pm), Np.class)
if g then
set_attr(g, attr_icflag, BOXBDD)
if getid(g)==id_glue and #Bp==0 then
if g then
set_attr(g, attr_icflag, BOXBDD)
if getid(g)==id_glue and #Bp==0 then