X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=src%2Fltj-adjust.lua;h=7131bbc7b773d564050baebff2210d78db27e278;hb=d177010c46e52e722b4752eded1ae4a6807953df;hp=c39e48d137df91663271558c51a3f506e73120f6;hpb=4cbb894fd7b6ede9de822c8306e16bab34dc8209;p=luatex-ja%2Fluatexja.git diff --git a/src/ltj-adjust.lua b/src/ltj-adjust.lua index c39e48d..7131bbc 100644 --- a/src/ltj-adjust.lua +++ b/src/ltj-adjust.lua @@ -61,24 +61,32 @@ local priority_num = { 0, 0 } local at2pr = { {}, {} } local at2pr_st, at2pr_sh = at2pr[1], at2pr[2] do + local priority_table = {{},{}} + luatexja.adjust.priority_table = priority_table local tmp = {} local function cmp(a,b) return a[1]>b[1] end -- 大きいほうが先! - local function make_priority_table(glue_sign, xsk, ksk, others) + local function make_priority_table(glue_sign) for i,_ in pairs(tmp) do tmp[i]=nil end - for i=-2,2 do tmp[#tmp+1] = { i, FROM_JFM+i } end - tmp[#tmp+1] = { xsk, XKANJI_SKIP } - tmp[#tmp+1] = { xsk, XKANJI_SKIP_JFM } - tmp[#tmp+1] = { ksk, KANJI_SKIP } - tmp[#tmp+1] = { ksk, KANJI_SKIP_JFM } - tmp[#tmp+1] = { others, -1 } + if glue_sign==2 then -- shrink + for i=0,63 do tmp[#tmp+1] = { (i%8)-4, FROM_JFM+i } end + else -- stretch + for i=0,63 do tmp[#tmp+1] = { math.floor(i/8)-4, FROM_JFM+i } end + end + local pt = priority_table[glue_sign] + tmp[#tmp+1] = { pt[2]/10, XKANJI_SKIP } + tmp[#tmp+1] = { pt[2]/10, XKANJI_SKIP_JFM } + tmp[#tmp+1] = { pt[1]/10, KANJI_SKIP } + tmp[#tmp+1] = { pt[1]/10, KANJI_SKIP_JFM } + tmp[#tmp+1] = { pt[3]/10, -1 } table.sort(tmp, cmp) local a, m, n = at2pr[glue_sign], 10000000, 0 for i=1,#tmp do if tmp[i][1]