local id_hlist = node.id('hlist')
local id_glue = node.id('glue')
local id_whatsit = node.id('whatsit')
local id_hlist = node.id('hlist')
local id_glue = node.id('glue')
local id_whatsit = node.id('whatsit')
local attr_icflag = luatexbase.attributes['ltj@icflag']
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local lang_ja = luatexja.lang_ja
local attr_icflag = luatexbase.attributes['ltj@icflag']
local attr_jchar_class = luatexbase.attributes['ltj@charclass']
local lang_ja = luatexja.lang_ja
local total_stsh = {{},{}}
local total_st, total_sh = total_stsh[1], total_stsh[2]
local total_stsh = {{},{}}
local total_st, total_sh = total_stsh[1], total_stsh[2]
- local go, gf, gs
- = getfield(p, 'glue_order'), getfield(p, 'glue_set'), getfield(p, 'glue_sign')
+ local ph = getlist(p)
+ if not ph then return 0 end
for i,_ in pairs(total_st) do total_st[i]=nil; total_sh[i]=nil end
for i=1,#priority_table do
total_st[priority_table[i]]=0; total_sh[priority_table[i]]=0;
end
for i=0,4 do total_st[i*65536]=0; total_sh[i*65536]=0 end
for i,_ in pairs(total_st) do total_st[i]=nil; total_sh[i]=nil end
for i=1,#priority_table do
total_st[priority_table[i]]=0; total_sh[priority_table[i]]=0;
end
for i=0,4 do total_st[i*65536]=0; total_sh[i*65536]=0 end
- total_st[-1]=0; total_sh[-1]=0;
- local pf, pfw
- for q in node_traverse_id(id_glue, getlist(p)) do
+ total_st[-1]=0; total_sh[-1]=0;
+ for q in node_traverse_id(id_glue, ph) do
local a = getfield(q, 'stretch_order')
if a>0 then a=a*65536 else
total_st[0] = total_st[0]+getfield(q, 'stretch')
local a = getfield(q, 'stretch_order')
if a>0 then a=a*65536 else
total_st[0] = total_st[0]+getfield(q, 'stretch')
if not total_sh.order then
total_sh.order, total_sh[-65536] = -1,0.1 -- dummy
end
if not total_sh.order then
total_sh.order, total_sh[-65536] = -1,0.1 -- dummy
end
if (total>0 and total_st.order>0) or (total<0 and total_sh.order>0) then
-- 無限大のグルーで処理が行われているときは処理中止.
return total, false
if (total>0 and total_st.order>0) or (total<0 and total_sh.order>0) then
-- 無限大のグルーで処理が行われているときは処理中止.
return total, false
local min, max = math.min, math.max
local function aw_step1_last(p, total)
local head = getlist(p)
local min, max = math.min, math.max
local function aw_step1_last(p, total)
local head = getlist(p)
local insert_before = node.direct.insert_before
local KINSOKU = luatexja.icflag_table.KINSOKU
function insert_lineend_kern(head, nq, np, Bp)
local insert_before = node.direct.insert_before
local KINSOKU = luatexja.icflag_table.KINSOKU
function insert_lineend_kern(head, nq, np, Bp)