OSDN Git Service

Fix bugs introduced by commit 95df0b77 (2012/04/24) and 9528e0be (2011/09/23).
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 30 Jun 2012 02:16:55 +0000 (11:16 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 30 Jun 2012 02:16:55 +0000 (11:16 +0900)
src/ltj-base.sty
src/ltj-charrange.lua
src/ltj-inputbuf.lua
src/ltj-jfmglue.lua
src/ltj-jfont.lua
src/ltj-pretreat.lua
src/ltj-setwidth.lua
src/luatexja-core.sty
src/luatexja.lua
test/test04-jfm.pdf
test/test04-jfm.tex

index a69fcb6..17f69a8 100644 (file)
@@ -19,7 +19,7 @@
 %%------------------ Tiny helpers
 
 %% Registers
-\newcount\ltj@tempcnta
+%\newcount\ltj@tempcnta % defined at luatexja-core.sty
 \newcount\ltj@tempcntb
 \newcount\ltj@tempcntc
 \newdimen\ltj@tempdima
index 6d7f5c3..d833d06 100644 (file)
@@ -13,7 +13,15 @@ local err, warn, info, log = luatexbase.errwarinf(_NAME)
 luatexja.load_module('base');      local ltjb = luatexja.base
 
 local floor = math.floor
+local pow = math.pow
 local has_attr = node.has_attribute
+local kcat_attr_table = {}
+local pow_table = {}
+for i = 0, 216 do
+   kcat_attr_table[i] = luatexbase.attributes['ltj@kcat'..floor(i/31)]
+   pow_table[i] =  pow(2, i%31)
+end
+pow_table[217] = pow(2, 31)
 
 -- jcr_table_main[chr_code] = index
 -- index : internal 0, 1, 2, ..., 216               0: 'other'
@@ -61,20 +69,18 @@ function char_to_range(c) -- return the (external) range number
 end
 
 function get_range_setting(i) -- i: internal range number
-   return floor(tex.getattribute(
-                       luatexbase.attributes['ltj@kcat'..floor(i/31)])
-                    /math.pow(2, i%31))%2
+   return floor(tex.getattribute(kcat_attr_table[i])/pow_table[i])%2
 end
 
 --  glyph_node p は和文文字か?
 function is_ucs_in_japanese_char(p)
    local c = p.char
-   if c<0x80 then return false 
+   if c<0x80 then 
+      return false 
    else 
       local i=jcr_table_main[c] 
       return (floor(
-                has_attr(p, luatexbase.attributes['ltj@kcat'..floor(i/31)])
-                /math.pow(2, i%31))%2 ~= jcr_noncjk) 
+                has_attr(p, kcat_attr_table[i])/pow_table[i])%2 ~= jcr_noncjk) 
    end
 end
 
@@ -89,10 +95,9 @@ function toggle_char_range(g, i) -- i: external range number
       local kc
       if i>0 then kc=0 else kc=1; i=-i end
       if i>216 then i=0 end
-      local attr = luatexbase.attributes['ltj@kcat'..floor(i/31)]
+      local attr = kcat_attr_table[i]
       local a = tex.getattribute(attr)
-      local k = math.pow(2, i%31)
-      tex.setattribute(g,attr,(floor(a/k/2)*2+kc)*k+a%k)
+      tex.setattribute(g,attr,(floor(a/pow_table[i+1])*2+kc)*pow_table[i]+a%pow_table[i])
    end
 end
 
index 6032b50..d23d21c 100644 (file)
@@ -15,6 +15,7 @@ luatexja.load_module('charrange'); local ltjc = luatexja.charrange
 local node_new = node.new
 local id_glyph = node.id('glyph')
 local getcatcode = tex.getcatcode
+local ltjc_is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char
 
 --- the following function is modified from jafontspec.lua (by K. Maeda).
 --- Instead of "%", we use U+FFFFF for suppressing spaces.
@@ -26,18 +27,20 @@ function add_comment(buffer)
    end
    if i>0 then
       local c = utf.byte(buffer, i)
-      local ct = getcatcode(c)
-      local te = tex.endlinechar
-      local ctl = (te ~= -1) and (getcatcode(te)==5) and (getcatcode(0xFFFFF)==14)
-      -- Is the catcode of endline character is 5 (end-of-line)?
-      -- Is the catcode of U+FFFFF (new comment char) is 14 (comment)?
-      if ((ct==11) or (ct==12)) and ctl then
-        local p = node_new(id_glyph)
-        p.char = c
-        if ltjc.is_ucs_in_japanese_char(p) then
-           buffer = buffer .. string.char(0xF3,0xBF,0xBF,0xBF) -- U+FFFFF
+      if c>0x80 then
+        local ct = getcatcode(c)
+        local te = tex.endlinechar
+        local ctl = (te ~= -1) and (getcatcode(te)==5) and (getcatcode(0xFFFFF)==14)
+        -- Is the catcode of endline character is 5 (end-of-line)?
+        -- Is the catcode of U+FFFFF (new comment char) is 14 (comment)?
+        if ((ct==11) or (ct==12)) and ctl then
+           local p = node_new(id_glyph)
+           p.char = c
+           if ltjc_is_ucs_in_japanese_char(p) then
+              buffer = buffer .. string.char(0xF3,0xBF,0xBF,0xBF) -- U+FFFFF
+           end
+           node.free(p)
         end
-        node.free(p)
       end
    end
    return buffer
index be9515e..9530a86 100644 (file)
@@ -28,7 +28,6 @@ local set_attr = node.set_attribute
 local node_insert_before = node.insert_before
 local node_insert_after = node.insert_after
 local round = tex.round
-local table_insert = table.insert
 local uniq_id = 0 -- unique id 
 
 local id_glyph = node.id('glyph')
@@ -127,7 +126,7 @@ end
 -- 「異なる JFM」の間の調整方法
 diffmet_rule = math.two_average
 function math.two_add(a,b) return a+b end
-function math.two_average(a,b) return (a+b)/2 end
+function math.two_average(a,b) return (a+b)*0.5 end
 
 -------------------- idea
 -- 2 node の間に glue/kern/penalty を挿入する.
@@ -261,8 +260,7 @@ luatexbase.create_callback("luatexja.jfmglue.whatsit_after", "data",
 
 -- calc next Np
 local function set_attr_icflag_processed(p)
-   local a = has_attr(p, attr_icflag) or 0
-   if a<= ITALIC then 
+   if (has_attr(p, attr_icflag) or 0)<= ITALIC then 
       set_attr(p, attr_uniqid, uniq_id) 
       set_attr(p, attr_icflag, PROCESSED) 
    end
@@ -285,9 +283,10 @@ local function calc_np_pbox()
       Np.nuc = lp; set_attr(lp, attr_uniqid, uniq_id) 
       lp = node_next(lp); lpa = has_attr(lp, attr_icflag) or 0
    end
-   check_next_ickern()
+   return check_next_ickern()
 end
 
+
 local calc_np_auxtable = {
    [id_glyph] = function() 
                   Np.first = Np.first or lp
@@ -407,13 +406,12 @@ local calc_np_auxtable = {
 
 local function calc_np()
    -- We assume lp = node_next(Np.last)
-   local lpi, lpa, Nr
-   Nr = Nq; for k in pairs(Nr) do Nr[k] = nil end
-   Nq = Np; Np = Nr
+   local Nr = Nq
+   for k in pairs(Nr) do Nr[k] = nil end; Nq = Np; Np = Nr
    for k in pairs(Bp) do Bp[k] = nil end
    ihb_flag = false 
    while lp ~= last do
-      lpa = has_attr(lp, attr_icflag) or 0
+      local lpa = has_attr(lp, attr_icflag) or 0
       if lpa>=PACKED then
          if lpa == BOXBDD then
             local lq = node_next(lp)
@@ -425,6 +423,9 @@ local function calc_np()
    Np = nil; return
 end
 
+
+
+
 -- extract informations from Np
 -- We think that "Np is a Japanese character" if Np.met~=nil,
 --            "Np is an alphabetic character" if Np.pre~=nil,
@@ -446,11 +447,7 @@ function set_np_xspc_jachar(Nx, x)
    Nx.post = ltjs_get_penalty_table('post', c, 0, box_stack_level)
    z = fast_find_char_class('lineend', m)
    local y = m.size_cache[Nx.size].char_type[Nx.class]
-   if y.kern and y.kern[z] then 
-      Nx.lend = y.kern[z]
-   else 
-      Nx.lend = 0 
-   end
+   Nx.lend = y.kern[z] or 0
    y = ltjs_get_penalty_table('xsp', c, 3, box_stack_level)
    Nx.xspc_before = (y%2==1)
    Nx.xspc_after  = (y>=2)
@@ -464,11 +461,11 @@ local ligature_tail = 2
 function set_np_xspc_alchar(Nx, c,x, lig)
    if c~=-1 then
       if lig == ligature_head then
-        while x.components and x.subtype and math.floor(x.subtype/2)%2==1 do
+        while x.components and x.subtype and math.floor(x.subtype*0.5)%2==1 do
            x = x.components; c = x.char
         end
       else
-        while x.components and x.subtype and math.floor(x.subtype/2)%2==1 do
+        while x.components and x.subtype and math.floor(x.subtype*0.5)%2==1 do
            x = node_tail(x.components); c = x.char
         end
       end
@@ -487,13 +484,13 @@ end
 
 -- Np の情報取得メインルーチン
 local function extract_np()
-   local x = Np.nuc;
-   if Np.id ==  id_jglyph then set_np_xspc_jachar(Np, x)
-   elseif Np.id == id_glyph then set_np_xspc_alchar(Np, x.char, x, ligature_head)
-   elseif Np.id == id_hlist then Np.last_char = check_box_high(Np, x.head, nil)
-   elseif Np.id == id_pbox then Np.last_char = check_box_high(Np, Np.first, node.next(Np.last))
-   elseif Np.id == id_disc then Np.last_char = check_box_high(Np, x.replace, nil)
-   elseif Np.id == id_math then set_np_xspc_alchar(Np, -1, x)
+   local x, i = Np.nuc, Np.id;
+   if i ==  id_jglyph then return set_np_xspc_jachar(Np, x)
+   elseif i == id_glyph then return set_np_xspc_alchar(Np, x.char, x, ligature_head)
+   elseif i == id_hlist then Np.last_char = check_box_high(Np, x.head, nil)
+   elseif i == id_pbox then Np.last_char = check_box_high(Np, Np.first, node.next(Np.last))
+   elseif i == id_disc then Np.last_char = check_box_high(Np, x.replace, nil)
+   elseif i == id_math then return set_np_xspc_alchar(Np, -1, x)
    end
 end
 
@@ -513,7 +510,7 @@ end
 
 local function after_alchar(Nx)
    local x = Nx.nuc
-   set_np_xspc_alchar(Nx, x.char,x, ligature_tail)
+   return set_np_xspc_alchar(Nx, x.char,x, ligature_tail)
 end
 
 
@@ -545,7 +542,7 @@ local function handle_penalty_normal(post, pre, g)
         if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
         p.penalty = a
         head = node_insert_before(head, Np.first, p)
-     table_insert(Bp, p)
+        Bp[#Bp+1]=p
      set_attr(p, attr_icflag, KINSOKU)
      set_attr(p, attr_uniqid, uniq_id) 
       end
@@ -561,7 +558,7 @@ local function handle_penalty_always(post, pre, g)
         if a<-10000 then a = -10000 elseif a>10000 then a = 10000 end
         p.penalty = a
         head = node_insert_before(head, Np.first, p)
-        table_insert(Bp, p)
+        Bp[#Bp+1]=p
      set_attr(p, attr_icflag, KINSOKU)
      set_attr(p, attr_uniqid, uniq_id) 
       end
@@ -575,7 +572,7 @@ local function handle_penalty_suppress(post, pre, g)
       if g and g.id==id_glue then
         local p = node_new(id_penalty)
         p.penalty = 10000; head = node_insert_before(head, Np.first, p)
-        table_insert(Bp, p); 
+        Bp[#Bp+1]=p
      set_attr(p, attr_icflag, KINSOKU)
      set_attr(p, attr_uniqid, uniq_id) 
       end
@@ -588,20 +585,18 @@ local function new_jfm_glue(Nn, bc, ac)
 -- bc, ac: char classes
    local g = nil
    local z = Nn.met.size_cache[Nn.size].char_type[bc]
-   if z.glue and z.glue[ac] then
+   if z.glue[ac] then
       local h = node_new(id_glue_spec)
       h.width   = z.glue[ac][1]
       h.stretch = z.glue[ac][2]
       h.shrink  = z.glue[ac][3]
       h.stretch_order=0; h.shrink_order=0
-      g = node_new(id_glue)
-      g.subtype = 0; g.spec = h
-   elseif z.kern and z.kern[ac] then
+      g = node_new(id_glue); g.subtype = 0; g.spec = h
+      set_attr(g, attr_icflag, FROM_JFM); set_attr(g, attr_uniqid, uniq_id)
+   elseif z.kern[ac] then
       g = node_new(id_kern)
       g.subtype = 1; g.kern = z.kern[ac]
-   end
-   if g then 
-      set_attr(g, attr_icflag, FROM_JFM); set_attr(g, attr_uniqid, uniq_id) 
+      set_attr(g, attr_icflag, FROM_JFM); set_attr(g, attr_uniqid, uniq_id)
    end
    return g
 end
@@ -626,6 +621,7 @@ end
 -- get kanjiskip
 local function get_kanji_skip_from_jfm(Nn)
    local i = Nn.met.size_cache[Nn.size].kanjiskip
+   print(Nn.met.size_cache[Nn.size])
    if i then
       return { i[1], i[2], i[3] }
    else return nil
@@ -638,11 +634,13 @@ local function get_kanjiskip()
         local gx = node_new(id_glue_spec);
         gx.stretch_order = 0; gx.shrink_order = 0
         local bk = get_kanji_skip_from_jfm(Nq)
+        if bk then    print('bk: ', bk[1], bk[2], bk[3]) else print('bk: nil') end
         local ak
         if (Np.met==Nq.met) and (Nq.size==Np.size) and (Nq.var==Np.var) then
            ak = nil
         else
            ak = get_kanji_skip_from_jfm(Np)
+           if ak then print('ak: ', ak[1], ak[2], ak[3]) else print('ak: nil') end
         end
         if bk then
            if ak then
@@ -721,7 +719,7 @@ end
 local function get_xkanji_skip_from_jfm(Nn)
    local i = Nn.met.size_cache[Nn.size].xkanjiskip
    if i then
-      return { i[1], i[2], i[3] }
+      return i and { i[1], i[2], i[3] }
    else return nil
    end
 end
@@ -751,14 +749,14 @@ end
 
 local function get_OA_skip()
    if not ihb_flag then
-      local c = Nq.char or 'jcharbdd'
+      local c = (Np.id == id_math and -1) or 'jcharbdd'
       return new_jfm_glue(Np, fast_find_char_class(c,Np.met), Np.class)
    else return nil
    end
 end
 local function get_OB_skip()
    if not ihb_flag then
-      local c = Np.char or 'jcharbdd'
+      local c = (Np.id == id_math and -1) or'jcharbdd'
       return new_jfm_glue(Nq, Nq.class, fast_find_char_class(c,Nq.met))
    else return nil
    end
@@ -768,8 +766,7 @@ end
 local function handle_np_jachar()
    local g
    if Nq.id==id_jglyph or ((Nq.id==id_pbox or Nq.id==id_pbox_w) and Nq.met) then 
-      g = calc_ja_ja_glue() or get_kanjiskip() -- M->K
-      g = lineend_fix(g)
+      g = lineend_fix(calc_ja_ja_glue() or get_kanjiskip()) -- M->K
       handle_penalty_normal(Nq.post, Np.pre, g); real_insert(Nq.lend, g)
    elseif Nq.met then  -- Nq.id==id_hlist
       g = get_OA_skip() or get_kanjiskip() -- O_A->K
@@ -798,11 +795,10 @@ local function handle_nq_jachar()
    local g
    if Np.pre then 
       if Np.id==id_hlist then Np.pre = 0 end
-      g = get_OB_skip() or get_xkanjiskip(Nq) -- O_B->X
-      g = lineend_fix(g)
+      g = lineend_fix(get_OB_skip() or get_xkanjiskip(Nq)) -- O_B->X
       handle_penalty_normal(Nq.post, Np.pre, g); real_insert(Nq.lend, g)
    else
-      g = get_OB_skip(); g = lineend_fix(g) -- O_B
+      g = lineend_fix(get_OB_skip()) -- O_B
       if Np.id==id_glue then handle_penalty_normal(Nq.post, 0, g)
       elseif Np.id==id_kern then handle_penalty_suppress(Nq.post, 0, g)
       else handle_penalty_always(Nq.post, 0, g)
@@ -811,12 +807,12 @@ local function handle_nq_jachar()
    end
 end
 
--- (anything) .. (和文文字で終わる hlist)
+-- (anything) .. (和文文字で始まる hlist)
 local function handle_np_ja_hlist()
    local g
+   print('handle_np_ja_hlist', Nq.id)
    if Nq.id==id_jglyph or ((Nq.id==id_pbox or Nq.id == id_pbox_w) and Nq.met) then 
-      g = get_OB_skip() or get_kanjiskip() -- O_B->K
-      g = lineend_fix(g)
+      g = lineend_fix(get_OB_skip() or get_kanjiskip()) -- O_B->K
       handle_penalty_normal(Nq.post, 0, g); real_insert(Nq.lend, g)
    elseif Nq.met then  -- Nq.id==id_hlist
       g = get_kanjiskip() -- K
index 2ca43da..4c6d666 100644 (file)
@@ -89,10 +89,10 @@ function define_jfm(t)
            end
            v.chars = nil
         end
-        if v.kern and v.glue then
-           for j,w in pairs(v.glue) do
-              if v.kern[j] then defjfm_res= nil; return end
-           end
+        if not v.kern then v.kern = {} end
+        if not v.glue then v.glue = {} end
+        for j in pairs(v.glue) do
+           if v.kern[j] then defjfm_res= nil; return end
         end
         t.char_type[i] = v
         t[i] = nil
@@ -123,7 +123,7 @@ local function update_jfm_cache(j,sz)
    if metrics[j].size_cache[sz] then return end
    metrics[j].size_cache[sz] = {}
    metrics[j].size_cache[sz].char_type = mult_table(metrics[j].char_type, sz)
-   metrics[j].size_cache[sz].kanjijskip = mult_table(metrics[j].kanjiskip, sz)
+   metrics[j].size_cache[sz].kanjiskip = mult_table(metrics[j].kanjiskip, sz)
    metrics[j].size_cache[sz].xkanjiskip = mult_table(metrics[j].xkanjiskip,sz)
    metrics[j].size_cache[sz].zw = round(metrics[j].zw*sz)
    metrics[j].size_cache[sz].zh = round(metrics[j].zh*sz)
index aa8ddf4..deb7516 100644 (file)
@@ -14,9 +14,10 @@ luatexja.load_module('charrange'); local ltjc = luatexja.charrange
 luatexja.load_module('jfont');     local ltjf = luatexja.jfont
 luatexja.load_module('stack');     local ltjs = luatexja.stack
 
+local floor = math.floor
 local has_attr = node.has_attribute
 local set_attr = node.set_attribute
-local unset_attr = node.unset_attribute
+local node_traverse = node.traverse
 local node_type = node.type
 local node_remove = node.remove
 local node_next = node.next
@@ -33,7 +34,7 @@ local attr_yablshift = luatexbase.attributes['ltj@yablshift']
 local attr_ykblshift = luatexbase.attributes['ltj@ykblshift']
 
 local ltjf_font_metric_table = ltjf.font_metric_table
-
+local ltjc_is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char
 ------------------------------------------------------------------------
 -- MAIN PROCESS STEP 1: replace fonts
 ------------------------------------------------------------------------
@@ -42,22 +43,12 @@ box_stack_level = 0
 
 local function suppress_hyphenate_ja(head)
    local non_math = true
-   for p in node.traverse(head) do
+   for p in node_traverse(head) do
       if p.id == id_glyph and non_math then
-        local i = has_attr(p, attr_icflag) or 0
-        if i==0 and ltjc.is_ucs_in_japanese_char(p) then
-           local v = has_attr(p, attr_curjfnt)
-           if v then 
-              p.font = v 
-           end
-           v = has_attr(p, attr_ykblshift)
-           if v then 
-              set_attr(p, attr_yablshift, v)
-           else
-              unset_attr(p, attr_yablshift)
-           end
-           if p.subtype%2==1 then p.subtype = p.subtype - 1 end
-           -- p.lang=lang_ja
+        if (has_attr(p, attr_icflag) or 0)==0 and ltjc_is_ucs_in_japanese_char(p) then
+           p.font = has_attr(p, attr_curjfnt) or p.font
+           set_attr(p, attr_yablshift, has_attr(p, attr_ykblshift) or 0)
+           p.subtype = floor(p.subtype/2)*2
         end
       elseif p.id == id_math then 
         non_math = (p.subtype ~= 0)
@@ -79,11 +70,7 @@ function set_box_stack_level(head, mode)
         head, p = node_remove(head, g); node_free(g); break
       end
    end
-   if box_set then 
-      box_stack_level = tex.getcount('ltj@@stack') + 1 
-   else 
-      box_stack_level = tex.getcount('ltj@@stack') 
-   end
+   box_stack_level = tex.getcount('ltj@@stack') + (box_set and 1 or 0)
    return head
 end
 
index 457ecd8..7946829 100644 (file)
@@ -78,9 +78,9 @@ function capsule_glyph(p, dir, mode, met, class)
         if char_data.align=='right' then
            h.kern = total; p.next = nil; h.next = p
         elseif char_data.align=='middle' then
-           h.kern = round(total/2); p.next = h
+           h.kern = round(total*0.5); p.next = h
            h = node_new(id_kern); h.subtype = 0
-           h.kern = total - round(total/2); h.next = p
+           h.kern = total - round(total*0.5); h.next = p
         else -- left
            h.kern = total; p.next = h; h = p
         end
index 2559aaf..43308cd 100644 (file)
 \newluatexattribute\ltj@autoxspc  % attribute for autoxspacing
 \newluatexattribute\ltj@icflag    % attribute for italic correction
 
+%%%%%%%% Attributes for character ranges
+\newcount\ltj@tempcnta
+\ltj@tempcnta=0
+\loop\ifnum\ltj@tempcnta<7
+  \expandafter\newluatexattribute%
+    \csname ltj@kcat\the\ltj@tempcnta\endcsname
+  \csname ltj@kcat\the\ltj@tempcnta\endcsname=0
+  \advance\ltj@tempcnta by1
+\repeat
+
+
 %%%%%%%% Loading luatexja.lua
 %% Quark tokens needed in ltj-base
 \protected\def\ltj@@q@escape{\ltj@@q@escape@}
 \fi                             %</LaTeX>
 
 
-%%%%%%%% Attributes for character ranges
-\ltj@tempcnta=0
-\loop\ifnum\ltj@tempcnta<7
-  \expandafter\newluatexattribute%
-    \csname ltj@kcat\the\ltj@tempcnta\endcsname
-  \csname ltj@kcat\the\ltj@tempcnta\endcsname=0
-  \advance\ltj@tempcnta by1
-\repeat
-
 %%%%%%%% \asluastring
 \def\asluastring#1{'\luaescapestring{\detokenize{#1}}'}
 
index 7b608d5..4b134d6 100644 (file)
@@ -120,7 +120,7 @@ local function print_glue(d,order)
    return out
 end
 
-local function print_spec(p)
+function print_spec(p)
    local out=print_scaled(p.width)..'pt'
    if p.stretch~=0 then
       out=out..' plus '..print_glue(p.stretch,p.stretch_order)
@@ -131,8 +131,6 @@ local function print_spec(p)
 return out
 end
 
-function math.two_add(a,b) return a+b end
-function math.two_average(a,b) return (a+b)/2 end
 
 ---- table: charprop_stack_table [stack_level].{pre|post|xsp}[chr_code]
 
@@ -249,7 +247,7 @@ local function debug_show_node_X(p,print_fn)
    local s
    local pt=node_type(p.id)
    local base = debug_depth .. string.format('%X', has_attr(p,attr_icflag) or 0)
-       .. ' ' .. tostring(p)
+   .. ' ' .. pt .. ' ' .. tostring(p.subtype) .. ' '
    if pt == 'glyph' then
       s = base .. ' ' .. utf.char(p.char) .. ' ' .. tostring(p.font)
          .. ' (' .. print_scaled(p.height) .. '+' 
index a4a6fa0..44ab5d1 100644 (file)
Binary files a/test/test04-jfm.pdf and b/test/test04-jfm.pdf differ
index 187f14e..4d7ca23 100644 (file)
 \noindent{\gt\bf [x]kanjiskipの挿入}
 
 \head{kanjiskip from JFM, autospacing (JA--JA)}
-\setbox0=\hbox{あ\rmlh あ}\dumplist0
+\setbox0=\hbox{\rmlh ああ}\dumplist0
 
 {\ltjsetparameter{kanjiskip=\maxdimen}
-\setbox0=\hbox{あ\rmlh あ}\dumplist0
+\setbox0=\hbox{\rmlh ああ}\dumplist0
 \jfont\rmlk={psft:Ryumin-Light:jfm=test} at 12pt
 \setbox0=\hbox{\rmlk は\rmlh あ}\dumplist0}
 
 \def\naspc{\ltjsetparameter{autospacing=false}\relax}
 \def\naxspc{\ltjsetparameter{autoxspacing=false}\relax}
-\setbox0=\hbox{あ\naspc ああ}\dumplist0
+\setbox0=\hbox{\rmlh あ\naspc ああ}\dumplist0
 
 \head{kanjiskip from JFM/autoxspacing (JA--EN)}
 \setbox0=\hbox{\rmlh まx}\dumplist0