OSDN Git Service

new syntax in JFM: end_stretch = {-0.5, 0.5}
[luatex-ja/luatexja.git] / src / ltj-jfmglue.lua
index 34472a2..a2c61a2 100644 (file)
@@ -395,7 +395,10 @@ local function calc_np_aux_glyph_common(lp, acc_flag)
       return true, lp
    end
 end
-local calc_np_auxtable = {
+local calc_np_auxtable
+do
+local dir_tate = luatexja.dir_table.dir_tate
+calc_np_auxtable = {
    [id_glyph] = calc_np_aux_glyph_common,
    [id_hlist] = function(lp)
       local op, flag
@@ -422,10 +425,6 @@ local calc_np_auxtable = {
       Np.id = id_box_like;
       return true, node_next(lp)
    end,
-   skip = function(lp)
-      set_attr(lp, attr_icflag, PROCESSED)
-      return false, node_next(lp)
-   end,
    [id_whatsit] = function(lp)
       local lps = getsubtype(lp)
       if lps==sid_user then
@@ -501,12 +500,14 @@ local calc_np_auxtable = {
       return false, node_next(lp)
    end,
 }
+end
 calc_np_auxtable[id_rule]   = calc_np_auxtable.box_like
 calc_np_auxtable[15]        = calc_np_auxtable.box_like
-calc_np_auxtable[id_ins]    = calc_np_auxtable.skip
-calc_np_auxtable[id_mark]   = calc_np_auxtable.skip
-calc_np_auxtable[id_adjust] = calc_np_auxtable.skip
-calc_np_auxtable[node.id('local_par')] = calc_np_auxtable.skip
+
+local function calc_np_aux_skip (lp)
+   set_attr(lp, attr_icflag, PROCESSED)
+   return false, node_next(lp)
+end
 
 function calc_np(last, lp)
    local k
@@ -531,7 +532,7 @@ function calc_np(last, lp)
            return calc_np_pbox(lp, last)
          end -- id_pbox
       else
-        k, lp = calc_np_auxtable[getid(lp)](lp)
+        k, lp = (calc_np_auxtable[getid(lp)] or calc_np_aux_skip)(lp)
         if k then return lp end
       end
    end