OSDN Git Service

suppress loading Japanese fonts in unused direction (incomplete; altfont)
[luatex-ja/luatexja.git] / src / ltj-adjust.lua
index 54af8cf..382e760 100644 (file)
@@ -1,6 +1,7 @@
 --
 -- ltj-adjust.lua
 --
+luatexja.load_module('base');      local ltjb = luatexja.base
 luatexja.load_module('jfont');     local ltjf = luatexja.jfont
 luatexja.load_module('jfmglue');   local ltjj = luatexja.jfmglue
 luatexja.load_module('stack');     local ltjs = luatexja.stack
@@ -404,8 +405,9 @@ do
    local is_reg = false
    function enable_cb(status_le, status_pr, status_lp, status_ls)
       if (status_le>0 or status_pr>0) and (not is_reg) then
-        luatexbase.add_to_callback('post_linebreak_filter',
-                                   adjust_width, 'Adjust width', 100)
+        ltjb.add_to_callback('post_linebreak_filter',
+            adjust_width, 'Adjust width', 
+           luatexbase.priority_in_callback('post_linebreak_filter', 'ltj.lineskip')-1)
         is_reg = true
       elseif is_reg and (status_le==0 and status_pr==0) then
         luatexbase.remove_from_callback('post_linebreak_filter', 'Adjust width')
@@ -413,7 +415,7 @@ do
       end
       if status_le==2 then
         if not luatexbase.in_callback('luatexja.adjust_jfmglue', 'luatexja.adjust') then
-           luatexbase.add_to_callback('luatexja.adjust_jfmglue', insert_lineend_kern, 'luatexja.adjust')
+           ltjb.add_to_callback('luatexja.adjust_jfmglue', insert_lineend_kern, 'luatexja.adjust')
         end
          myaw_step1, myaw_step1_last = dummy, aw_step1_last
       else
@@ -451,7 +453,7 @@ do
   function ltjl.p_profile(before, after, mirrored, bw)
     local t = {}
     do
-      local w_acc, d_before = 0, 0
+      local w_acc, d_before = getfield(before,'shift'), 0
       local x = getlist(before); local xn = node_next(x)
       while x do
         local w, d
@@ -467,7 +469,7 @@ do
       end
     end
     do
-      local w_acc, h_before = 0, 0
+      local w_acc, h_before = getfield(after,'shift'), 0
       local x = getlist(after); local xn = node_next(x)
       while x do
         local w, h, d
@@ -494,7 +496,7 @@ do
         if h>hmax then hmax=h end
         if (bw-h-d)<lmin then lmin=bw-h-d end
       end
-      if lmin==1/0 then lmin = 0 end
+      if lmin==1/0 then lmin = bw end
       return lmin, 
          bw - lmin - getfield(before, 'depth')
              - getfield(after, mirrored and 'depth' or 'height')
@@ -506,9 +508,12 @@ do
   local ltja = luatexja.adjust
   local copy_glue = ltjl.copy_glue
   local floor, max = math.floor, math.max
-  function ltjl.l_step(dist, g, adj, normal, bw)
+  function ltjl.l_step(dist, g, adj, normal, bw, loc)
+    if loc=='alignment' then
+      return ltjl.l_dummy(dist, g, adj, normal, bw, loc)
+    end
     if dist < tex.lineskiplimit then
-       local f = max(1, bw*ltja.step_factor)
+       local f = max(1, bw*ltja.step_factor)
        copy_glue(g, tex.baselineskip, 1, normal - f * floor((dist-tex.lineskip.width)/f))
     else
        copy_glue(g, tex.baselineskip, 2, normal)