OSDN Git Service

fix "bad argument #2 to '__index' (invalid option 'glyphmin')" error
[luatex-ja/luatexja.git] / src / ltj-setwidth.lua
index 0a5c678..1d4da31 100644 (file)
@@ -50,11 +50,10 @@ local ltjf_font_extra_info = ltjf.font_extra_info
 
 local PACKED       = luatexja.icflag_table.PACKED
 local PROCESSED    = luatexja.icflag_table.PROCESSED
-local IC_PROCESSED = luatexja.icflag_table.IC_PROCESSED
-local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
 
 local get_pr_begin_flag
 do
+   local PROCESSED_BEGIN_FLAG = luatexja.icflag_table.PROCESSED_BEGIN_FLAG
    local floor = math.floor
    get_pr_begin_flag = function (p)
       local i = has_attr(p, attr_icflag) or 0
@@ -87,13 +86,12 @@ local function capsule_glyph_yoko(p, met, class, head, dir)
    local fheight, fdepth = char_data.height, char_data.depth
    local kbl = has_attr(p, attr_ykblshift) or 0
    --
-   local need_hbox
    if pwidth==fwidth then
       -- 補正後glyph node は ht: p.height - kbl - down, dp: p.depth + min(0, kbl+down) を持つ
       -- 設定されるべき寸法: ht: fheight - kbl, dp: fdepth + kbl
       local ht_diff = fheight + fshift.down - getfield(p, 'height')
       local dp_diff = fdepth  + kbl - getfield(p, 'depth') - min(kbl + fshift.down, 0)
-      if  ht_diff == 0 and dp_diff ==0 then -- offset only
+      if ht_diff == 0 and dp_diff ==0 then -- offset only
         set_attr(p, attr_icflag, PROCESSED)
         setfield(p, 'xoffset', getfield(p, 'xoffset') - fshift.left)
         setfield(p, 'yoffset', getfield(p, 'yoffset') - kbl - fshift.down)
@@ -110,33 +108,26 @@ local function capsule_glyph_yoko(p, met, class, head, dir)
         head = p and node_insert_before(head, p, box)
            or node_insert_after(head, node_tail(head), box)
         return node_next(p), head, p, box
-      else
-        need_hbox = true
       end
-   else
-      need_hbox = true
    end
 
-   if need_hbox then
-      local q
-      head, q = node_remove(head, p)
-      local box = node_new(id_hlist)
-      setfield(p, 'yoffset', getfield(p, 'yoffset') -fshift.down);
-      setfield(p, 'next', nil)
-      setfield(p, 'xoffset', getfield(p, 'xoffset')
-                 + char_data.align*(fwidth-pwidth) - fshift.left)
-      local box = node_new(id_hlist)
-      setfield(box, 'width', fwidth)
-      setfield(box, 'height', fheight)
-      setfield(box, 'depth', fdepth)
-      setfield(box, 'head', p)
-      setfield(box, 'shift', kbl)
-      setfield(box, 'dir', dir)
-      set_attr(box, attr_icflag, PACKED)
-      head = q and node_insert_before(head, q, box)
-               or node_insert_after(head, node_tail(head), box)
-      return q, head, box
-   end
+   local q
+   head, q = node_remove(head, p)
+   setfield(p, 'yoffset', getfield(p, 'yoffset') -fshift.down);
+   setfield(p, 'next', nil)
+   setfield(p, 'xoffset', getfield(p, 'xoffset')
+              + char_data.align*(fwidth-pwidth) - fshift.left)
+   local box = node_new(id_hlist)
+   setfield(box, 'width', fwidth)
+   setfield(box, 'height', fheight)
+   setfield(box, 'depth', fdepth)
+   setfield(box, 'head', p)
+   setfield(box, 'shift', kbl)
+   setfield(box, 'dir', dir)
+   set_attr(box, attr_icflag, PACKED)
+   head = q and node_insert_before(head, q, box)
+      or node_insert_after(head, node_tail(head), box)
+   return q, head, box
 end
 
 luatexja.setwidth.capsule_glyph_yoko = capsule_glyph_yoko