OSDN Git Service

Backported commits 36ad2f96 and 98cb5558
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 7 Oct 2014 04:41:15 +0000 (13:41 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Tue, 7 Oct 2014 04:41:15 +0000 (13:41 +0900)
src/ltj-jfont.lua
src/ltj-pretreat.lua
src/luatexja-core.sty

index 45bf490..ff0788d 100644 (file)
@@ -553,6 +553,7 @@ end
 ------------------------------------------------------------------------
 
 local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
+local font = font
 -- EXT: italic correction
 function append_italic()
    local p = to_direct(tex.nest[tex.nest.ptr].tail)
@@ -566,7 +567,7 @@ function append_italic()
         local j = font_metric_table[f]
         setfield(g, 'kern', j.char_type[find_char_class(getchar(p), j)].italic)
       else
-        local h = font_getfont(f)
+        local h = font_getfont(f) or font.fonts[f]
         if h then
            setfield(g, 'kern', h.characters[getchar(p)].italic)
         else
index 14cec98..5cdb140 100644 (file)
@@ -42,6 +42,7 @@ local is_ucs_in_japanese_char = ltjc.is_ucs_in_japanese_char_direct
 local ltjf_replace_altfont = ltjf.replace_altfont
 local attr_orig_char = luatexbase.attributes['ltj@origchar']
 local STCK = luatexja.userid_table.STCK
+local lang_ja = token.create('ltj@japanese')[2]
 
 ------------------------------------------------------------------------
 -- MAIN PROCESS STEP 1: replace fonts
@@ -56,7 +57,8 @@ do
         local pc = getchar(p)
         local pf = ltjf_replace_altfont(has_attr(p, attr_curjfnt) or getfont(p), pc)
         setfield(p, 'font', pf);  set_attr(p, attr_curjfnt, pf)
-        setfield(p, 'subtype', floor(getsubtype(p)*0.5)*2)
+        setfield(p, 'lang', lang_ja)
+        -- setfield(p, 'subtype', floor(getsubtype(p)*0.5)*2)
         set_attr(p, attr_orig_char, pc)
       end
       return p
@@ -74,8 +76,7 @@ do
       wt, head = {}, p
       while p do
         local pfunc = suppress_hyphenate_ja_aux[getid(p)]
-        if pfunc then p = pfunc(p) end
-        p = node_next(p)
+        p = node_next(pfunc and pfunc(p) or p)
       end
       head = to_node(head)
       lang.hyphenate(head)
index b4fd007..75b011c 100644 (file)
 \newluatexattribute\ltj@yablshift % attribute for \yabaselineshift
 \newluatexattribute\ltj@ykblshift % attribute for \ykbaselineshift
 \newluatexattribute\jfam          % index for current jfam
+\newlanguage\ltj@@japanese
 \ltj@icflag=0
 \ltj@origchar=0
 \ltj@charclass=0