OSDN Git Service

ltjclasses.dtx: Make ltjt*.cls compatible with \geometry, etc.
[luatex-ja/luatexja.git] / src / ltj-setwidth.lua
index 99bc9db..d92a4c6 100644 (file)
@@ -37,9 +37,7 @@ local id_whatsit = node.id('whatsit')
 local sid_save = node.subtype('pdf_save')
 local sid_restore = node.subtype('pdf_restore')
 local sid_matrix = node.subtype('pdf_setmatrix')
-local dir_tate = 3
-local dir_yoko = 4
-local DIR = luatexja.stack_table_index.DIR
+local dir_tate = luatexja.dir_table.dir_tate
 
 local attr_jchar_class = luatexbase.attributes['ltj@charclass']
 local attr_curjfnt = luatexbase.attributes['ltj@curjfnt']
@@ -99,12 +97,12 @@ local function capsule_glyph_yoko(p, met, class)
       setfield(box, 'head', p)
       setfield(box, 'shift', y_shift)
       setfield(box, 'dir', dir)
-      set_attr(box, attr_icflag, PACKED + get_pr_begin_flag(p))
+      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
    else
-      set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p))
+      set_attr(p, attr_icflag, PROCESSED)
       setfield(p, 'xoffset', getfield(p, 'xoffset') - fshift.left)
       setfield(p, 'yoffset', getfield(p, 'yoffset')
                  - (has_attr(p, attr_ykblshift) or 0) - fshift.down)
@@ -151,7 +149,7 @@ local function capsule_glyph_tate(p, met, class)
    setfield(k2, 'next', p);   setfield(p, 'next', k3);
    setfield(k3, 'next', wr);
 
-   set_attr(box, attr_icflag, PACKED + get_pr_begin_flag(p))
+   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
@@ -176,7 +174,7 @@ local function capsule_glyph_math(p, met, class)
    setfield(box, 'head', p)
    setfield(box, 'shift', y_shift)
    setfield(box, 'dir', tex.mathdir)
-   set_attr(box, attr_icflag, PACKED + get_pr_begin_flag(p))
+   set_attr(box, attr_icflag, PACKED)
    return box
 end
 luatexja.setwidth.capsule_glyph_math = capsule_glyph_math
@@ -196,7 +194,9 @@ function luatexja.setwidth.set_ja_width(ahead, adir)
            p = capsule_glyph(p, ltjf_font_metric_table[pf],
                              has_attr(p, attr_jchar_class))
         else
-           set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p))
+           -- TODO: neg. offset does not increase depth
+           --local d = getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0)
+           set_attr(p, attr_icflag, PROCESSED)
            setfield(p, 'yoffset',
                     getfield(p, 'yoffset') - (has_attr(p,attr_ablshift) or 0))
            p = node_next(p)
@@ -215,7 +215,7 @@ function luatexja.setwidth.set_ja_width(ahead, adir)
                  local v = has_attr(p,attr_yablshift) or 0
                   setfield(p, 'height', getfield(p, 'height')-v)
                   setfield(p, 'depth', getfield(p, 'depth')+v)
-                 set_attr(p, attr_icflag, PROCESSED + get_pr_begin_flag(p))
+                 set_attr(p, attr_icflag, PROCESSED)
               end
            end
         end