OSDN Git Service

lltjext.sty: robustify \parbox and other fix
[luatex-ja/luatexja.git] / src / luatexja.lua
index 2cf0075..b966e83 100644 (file)
@@ -30,6 +30,15 @@ do
        setfield(g,'stretch_order',sto or 0)
        setfield(g,'shrink_order', sho or 0)
     end
+    local getfield = node.direct.getfield
+    luatexja.getglue = node.direct.getglue or
+    function(g)
+       return getfield(g,'width'),
+              getfield(g,'stretch'),
+              getfield(g,'shrink'),
+              getfield(g,'stretch_order'),
+              getfield(g,'shrink_order')
+    end
 end
 
 --- 以下は全ファイルで共有される定数
@@ -38,17 +47,18 @@ luatexja.icflag_table = icflag_table
 icflag_table.ITALIC          = 1
 icflag_table.PACKED          = 2
 icflag_table.KINSOKU         = 3
-icflag_table.FROM_JFM        = 6
+icflag_table.FROM_JFM        = 4
 -- FROM_JFM: 4, 5, 6, 7, 8 →優先度高(伸びやすく,縮みやすい)
 -- 6 が標準
-icflag_table.KANJI_SKIP      = 9
-icflag_table.KANJI_SKIP_JFM  = 10
-icflag_table.XKANJI_SKIP     = 11
-icflag_table.XKANJI_SKIP_JFM = 12
-icflag_table.PROCESSED       = 13
-icflag_table.IC_PROCESSED    = 14
-icflag_table.BOXBDD          = 15
-icflag_table.PROCESSED_BEGIN_FLAG = 128
+icflag_table.KANJI_SKIP      = 68 -- = 4+64
+icflag_table.KANJI_SKIP_JFM  = 69
+icflag_table.XKANJI_SKIP     = 70
+icflag_table.XKANJI_SKIP_JFM = 71
+icflag_table.LINEEND         = 72
+icflag_table.PROCESSED       = 73
+icflag_table.IC_PROCESSED    = 74
+icflag_table.BOXBDD          = 75
+icflag_table.PROCESSED_BEGIN_FLAG = 4096 -- sufficiently large power of 2
 
 local stack_table_index = {}
 luatexja.stack_table_index = stack_table_index
@@ -398,7 +408,8 @@ local function debug_show_node_X(p,print_fn, limit)
          .. tostring(p.font)
          .. ' (' .. print_scaled(p.height) .. '+'
          .. print_scaled(p.depth) .. ')x' .. print_scaled(p.width)
-         .. ' xoff: ' .. print_scaled(p.xoffset)
+         .. ' off: (' .. print_scaled(p.xoffset)
+         .. ',' .. print_scaled(p.yoffset) .. ')'
       print_fn(s)
    elseif pt=='hlist' or pt=='vlist' or pt=='unset'or pt=='ins' then
       if pt=='ins' then
@@ -462,6 +473,8 @@ local function debug_show_node_X(p,print_fn, limit)
         s = s .. ' (for accent)'
       elseif get_attr_icflag(p)==icflag_table.IC_PROCESSED then
         s = s .. ' (italic correction)'
+      elseif get_attr_icflag(p)==icflag_table.LINEEND then
+        s = s .. ' (end-of-line)'
          -- elseif get_attr_icflag(p)==ITALIC then
          --    s = s .. ' (italic correction)'
       elseif get_attr_icflag(p)>icflag_table.KINSOKU