OSDN Git Service

Fix ticket #32527.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 5 Dec 2013 11:07:56 +0000 (20:07 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 5 Dec 2013 11:07:56 +0000 (20:07 +0900)
src/ltj-jfmglue.lua
src/ltj-math.lua
src/ltj-setwidth.lua
test/test06-offset.pdf
test/test06-offset.tex

index 7018c7a..a0df4e7 100644 (file)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.jfmglue',
-  date = '2013/04/27',
+  date = '2013/12/05',
   description = 'Insertion process of JFM glues and kanjiskip',
 })
 module('luatexja.jfmglue', package.seeall)
@@ -336,11 +336,7 @@ local calc_np_auxtable = {
    [id_math] = function(lp)
                  Np.first, Np.nuc = (Np.first or lp), lp; 
                  set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp); 
-                 lp  = node_next(lp) 
-                 while lp.id~=id_math do 
-                    set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp);
-                    lp  = node_next(lp) 
-                 end
+                 lp  = node.end_of_math(lp) 
                  set_attr(lp, attr_icflag, PROCESSED) -- set_attr_icflag_processed(lp); 
                  Np.last, Np.id = lp, id_math;
                  return true, node_next(lp); 
index 52548a7..6735e25 100644 (file)
@@ -34,7 +34,7 @@ local id_frac    = node.id('fraction')
 local id_simple  = node.id('noad')
 local id_sub_mlist = node.id('sub_mlist')
 
-local PROCESSED = luatexja.icflag_table.PROCESSED
+local PROCESSED  = luatexja.icflag_table.PROCESSED
 
 local ltjf_font_metric_table = ltjf.font_metric_table
 local ltjf_find_char_class = ltjf.find_char_class
@@ -101,11 +101,13 @@ function (p, sty)
            local q = node_new(id_sub_box)
            local r = node_new(id_glyph); r.next = nil
            r.char = p.char; r.font = f; r.subtype = 256
+           local k = has_attr(r,attr_ykblshift) or 0
            set_attr(r, attr_ykblshift, 0)
            set_attr(r, attr_icflag, PROCESSED)
            local met = ltjf_font_metric_table[f]
            ltjw.head = r; ltjw.capsule_glyph(r, tex.mathdir , true, met, ltjf_find_char_class(p.char, met));
            q.head = ltjw.head; node_free(p); p=q;
+           set_attr(q.head, attr_yablshift, k)
         end
       end
    end
index 9b7f0e1..acd2b7a 100644 (file)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.setwidth',
-  date = '2013/03/14',
+  date = '2013/12/05',
   description = '',
 })
 module('luatexja.setwidth', package.seeall)
@@ -37,10 +37,10 @@ local attr_icflag = luatexbase.attributes['ltj@icflag']
 
 local ltjf_font_metric_table = ltjf.font_metric_table
 
-local PACKED = 2
-local PROCESSED = 11
-local IC_PROCESSED = 12
-local PROCESSED_BEGIN_FLAG = 32
+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
 
 do
    local floor = math.floor
index 7c0b532..1c1f901 100644 (file)
Binary files a/test/test06-offset.pdf and b/test/test06-offset.pdf differ
index 797e163..a0d8aaf 100644 (file)
 \def\frac#1#2{{#1\over#2}}
 \def\D{%
   \vrule width 40pt height 0.4pt depth 0pt%
-  積分のテストabc$\displaystyle かきく\int_0^x t\,dt = \frac{x^2}2$
+  積分abc%
+  $\displaystyle あ\vrule width 0.4ptheight 10pt depth 10pt
+  \int_0^x t\,dt = \frac{x^2}2 \hbox{いx}$
   \vrule width 40pt height 0.4pt depth 0pt\par
 }
 \baselineskip=40pt
 
 \R{ 0pt}{ 0pt}\D
 \R{ 0pt}{10pt}\D
-\R{-10pt}{0pt}\D
 \R{10pt}{ 0pt}\D
-\R{10pt}{10pt}\D
+\R{10pt}{ 5pt}\D
 
 \end