OSDN Git Service

target release date: 2020-01-27
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 23 Jan 2020 11:16:54 +0000 (20:16 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Thu, 23 Jan 2020 11:16:54 +0000 (20:16 +0900)
doc/luatexja.dtx
src/ltj-jfmglue.lua
src/luatexja.sty
test/test04-jfm-20200123.txt [new file with mode: 0644]

index d12ea01..a33916e 100644 (file)
@@ -9939,6 +9939,10 @@ x+y&($\Param{diffrentjfm}=\texttt{both}$).
 という3ノードを考える(それぞれ単独でクラスタをなす).
 この場合,$p$と$q$の間は,実フォントが異なるにもかかわらず2.の状況となる一方で,
 $q$と$r$の間は(実フォントが同じなのに)\texttt{jfmvar} キーの内容が異なるので3.の状況となる.
+
+  なお,JFMで\texttt{kanjiskip\_natural}, \texttt{kanjiskip\_stretch},\
+\texttt{kanjiskip\_shrink}キーが指定されていた場合は,……
+  
 \item[\Param{kanjiskip}~{[K]}] 上の[M]において空白が定まらなかった場合,
 以下で定めた量「右空白」として採用する.
 この段階においては,\cs{inhibitglue} は効力を持たないため,
index 7bcaeae..d4d5e94 100644 (file)
@@ -3,7 +3,7 @@
 --
 luatexbase.provides_module({
   name = 'luatexja.jfmglue',
-  date = '2019/09/26',
+  date = '2020/01/23',
   description = 'Insertion process of JFM glues, [x]kanjiskip and others',
 })
 luatexja.jfmglue = luatexja.jfmglue or {}
@@ -557,6 +557,8 @@ function calc_np(last, lp)
    Np.post, Np.pre, Np.xspc = nil, nil, nil
    Np.first, Np.id, Np.last, Np.met, Np.class= nil, nil, nil, nil
    Np.auto_kspc, Np.auto_xspc, Np.char, Np.nuc = nil, nil, nil, nil
+   -- auto_kspc, auto_xspc: normally true/false, 
+   -- but the number 0 when Np is ''the beginning of the box/paragraph''.
    for k in pairs(Np) do Np[k] = nil end
 
    for k = 1,#Bp do Bp[k] = nil end
@@ -782,58 +784,50 @@ do
    local function blend_diffmet(b, a, rb, ra)
       return round(luatexja.jfmglue.diffmet_rule((1-rb)*b+rb*a, (1-ra)*b+ra*a))
    end
+   local blend_diffmet_inf
+   do
+      local abs, log, log264, floor = math.abs, math.log, math.log(2)*64, math.floor
+      blend_diffmet_inf = function (b, a, bo, ao, rb, ra)
+         local nb, na = (bo and b*2.0^(64*bo) or 0), (ao and a*2.0^(64*ao) or 0)
+         local r = luatexja.jfmglue.diffmet_rule((1-rb)*b+rb*a, (1-ra)*b+ra*a)
+         local ro = (r~=0) and floor(log(abs(r))/log264+0.0625) or 0
+         return round(r/2.^(64*ro)), ro
+      end
+   end
+   local getglue = luatexja.getglue
    calc_ja_ja_aux = function (gb, ga, db, da)
       if luatexja.jfmglue.diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright
           and luatexja.jfmglue.diffmet_rule ~= math.two_paverage then
         db, da = 0, 1
       end
       if not gb then
-        if ga then
-           gb = node_new(id_kern, 1); setfield(gb, 'kern', 0)
+        if ga then gb = node_new(id_kern, 1); setfield(gb, 'kern', 0)
         else return nil end
       elseif not ga then
         ga = node_new(id_kern, 1); setfield(ga, 'kern', 0)
       end
-
-      local k = 2*getid(gb) - getid(ga)
-      if k == bg_ag then
-        -- 両方とも glue.
-        setglue(gb, blend_diffmet(
-                       getfield(gb, 'width'), getfield(ga, 'width'), db, da),
-                    blend_diffmet(
-                       getfield(gb, 'stretch'), getfield(ga, 'stretch'), db, da),
-                    -blend_diffmet(
-                    -getfield(gb, 'shrink'), -getfield(ga, 'shrink'), db, da),
-                    getfield(gb, 'stretch_order'), getfield(gb, 'shrink_order'))
-                    -- {stretch, shrink}_order: [x]kanjiskip のとき
-        node_free(ga)
-        return gb
-      elseif k == bk_ak then
-        -- 両方とも kern.
-        setfield(gb, 'kern', blend_diffmet(
-                    getfield(gb, 'kern'), getfield(ga, 'kern'), db, da))
-        node_free(ga)
-        return gb
-      elseif k == bk_ag then
-        -- gb: kern, ga: glue
-        setglue(ga, blend_diffmet(
-                       getfield(gb, 'kern'), getfield(ga, 'width'), db, da),
-                    blend_diffmet(
-                       0, getfield(ga, 'stretch'), db, da),
-                    -blend_diffmet(
-                       0, -getfield(ga, 'shrink'), db, da))
-        node_free(gb)
-        return ga, 0, 0, 0
+      local gbw, gaw, gbst, gast, gbsto, gasto, gbsh, gash, gbsho, gasho
+      if getid(gb)==id_glue then
+         gbw, gbst, gbsh, gbsto, gbsho = getglue(gb)
       else
-        -- gb: glue, ga: kern
-        setglue(gb, blend_diffmet(
-                       getfield(gb, 'width'), getfield(ga, 'kern'), db, da),
-                    blend_diffmet(
-                       getfield(gb, 'stretch'), 0, db, da),
-                    -blend_diffmet(
-                       -getfield(gb, 'shrink'), 0, db, da))
-        node_free(ga)
-        return gb
+        gbw = getfield(gb, 'kern')
+      end
+      if getid(ga)==id_glue then
+         gaw, gast, gash, gasto, gasho = getglue(ga)
+      else
+        gaw = getfield(ga, 'kern')
+      end
+      if not (gbst or gast) then -- 両方とも kern
+        setfield(gb, 'kern', blend_diffmet(gbw, gaw, db, da))
+        node_free(ga); return gb
+      else
+         local gr = gb
+         if not gbst then gr = ga; node_free(gb) else node_free(ga) end
+         gbw = blend_diffmet(gbw or 0, gaw or 0, db, da) -- 結果の自然長
+         gbst, gbsto = blend_diffmet_inf(gbst, gast, gbsto, gasto, db, da) -- 伸び
+        gbsh, gbsho = blend_diffmet_inf(-(gbsh or 0), -(gash or 0), gbsto, gasto, db, da) -- -(縮み)
+        setglue(gr, gbw, gbst, -gbsh, gbsto, gbsho)
+        return gr
       end
    end
 end
@@ -848,7 +842,10 @@ do
    local KANJI_SKIP_JFM   = luatexja.icflag_table.KANJI_SKIP_JFM
 
    get_kanjiskip_low = function(flag, qm, bn, bp, bh)
-      if flag or (qm.with_kanjiskip and (bn or bp or bh)) then
+   -- flag = false: kanjiskip そのもの(パラメータ or JFM)
+   --               ノード kanji_skip のコピーで良い場合は nil が帰る
+   -- flag = true: JFM グルーに付随する kanjiskip 自然長/伸び/縮み分
+      if qm.with_kanjiskip and (bn or bp or bh) then
         if kanjiskip_jfm_flag then
            local g = node_new(id_glue);
            local bk = qm.kanjiskip or null_skip_table
@@ -858,15 +855,13 @@ do
            set_attr(g, attr_icflag, KANJI_SKIP_JFM)
            return g
         elseif flag then
-           return node_copy(kanji_skip)
-        else
            local g = node_new(id_glue);
            setglue(g,
               bn and (bn*getfield(kanji_skip, 'width')) or 0,
               bp and (bp*getfield(kanji_skip, 'stretch')) or 0,
               bh and (bh*getfield(kanji_skip, 'shrink')) or 0,
-              bp and getfield(kanji_skip, 'stretch_order') or 0,
-              bh and getfield(kanji_skip, 'shrink_order') or 0)
+              bp and bp~=0 and getfield(kanji_skip, 'stretch_order') or 0,
+              bh and bh~=0 and getfield(kanji_skip, 'shrink_order') or 0)
            set_attr(g, attr_icflag, KANJI_SKIP_JFM)
            return g
         end
@@ -879,11 +874,17 @@ do
       elseif Np.auto_kspc or Nq.auto_kspc then
         local pm, qm = Np.met, Nq.met
         if (pm.char_type==qm.char_type) and (qm.var==pm.var) then
-            return get_kanjiskip_low(true, qm, 1, 1, 1)
+            return get_kanjiskip_low(false, qm, 1, 1, 1) or node_copy(kanji_skip)
         else
-           local gb = get_kanjiskip_low(true, qm, 1, 1, 1)
-           local ga = get_kanjiskip_low(true, pm, 1, 1, 1)
-           return calc_ja_ja_aux(gb, ga, 0, 1)
+           local gb = get_kanjiskip_low(false, qm, 1, 1, 1)
+           if gb then
+               return calc_ja_ja_aux(gb, 
+                 get_kanjiskip_low(false, pm, 1, 1, 1) or node_copy(kanji_skip), 0, 1) 
+           else
+               local ga = get_kanjiskip_low(false, pm, 1, 1, 1)
+               return (ga and calc_ja_ja_aux(node_copy(kanji_skip), ga, 0, 1))
+                       or node_copy(kanji_skip)
+           end
         end
       else   
         local g = node_new(id_glue)
@@ -897,7 +898,7 @@ do
       local qmc, pmc = qm.char_type, pm.char_type
       if (qmc==pmc) and (qm.var==pm.var) then
         local g, _, kn, kp, kh = new_jfm_glue(qmc, Nq.class, Np.class)
-        return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(false, qm, kn, kp, kh)
+        return g, (Np.auto_kspc or Nq.auto_kspc) and get_kanjiskip_low(true, qm, kn, kp, kh)
       else
         local npn, nqn = Np.nuc, Nq.nuc
         local gb, db, bn, bp, bh 
@@ -912,8 +913,8 @@ do
         local g = calc_ja_ja_aux(gb, ga, db, da)
         local k
         --if (pmc==qmc) and (qm.var==pm.var) then
-         gb = get_kanjiskip_low(false, qm, bn, bp, bh)
-        ga = get_kanjiskip_low(false, pm, an, ap, ah)
+         gb = get_kanjiskip_low(true, qm, bn, bp, bh)
+        ga = get_kanjiskip_low(true, pm, an, ap, ah)
         k = calc_ja_ja_aux(gb, ga, db, da)
         --end
         return g, k
@@ -1009,7 +1010,7 @@ local function get_OA_skip(is_kanji)
       Np.class)
    local k
    if is_kanji==0 then
-      k = combine_spc('auto_kspc') and get_kanjiskip_low(false, pm, kn, kp, kh)
+      k = combine_spc('auto_kspc') and get_kanjiskip_low(true, pm, kn, kp, kh)
    end
    return g, k
 end
@@ -1021,7 +1022,7 @@ local function get_OB_skip(is_kanji)
         (((Np.id==id_glue)or(Np.id==id_kern)) and 'glue' or 'jcharbdd'), qm))
    local k
    if is_kanji==0 then
-      k = combine_spc('auto_kspc') and get_kanjiskip_low(false, qm, kn, kp, kh)
+      k = combine_spc('auto_kspc') and get_kanjiskip_low(true, qm, kn, kp, kh)
    end
    return g, k
 end
index 82a5615..5b53dca 100644 (file)
   \expandafter\let\csname ifltj@in@latex\expandafter\endcsname
     \csname iftrue\endcsname
   \NeedsTeXFormat{LaTeX2e}
-  \ProvidesPackage{luatexja}[2019/09/26 Japanese Typesetting with Lua(La)TeX]
+  \ProvidesPackage{luatexja}[2020/01/27 Japanese Typesetting with Lua(La)TeX]
   \DeclareOption{disablejfam}{\ltj@disablejfamtrue}
   \DeclareOption*{}
   \ProcessOptions\relax
 \fi                             %</LaTeX>
 %%%% VERSION
-\def\LuaTeXjaversion{20191118.0}
+\def\LuaTeXjaversion{20200127.0}
 
 \directlua{require('ltj-unicode-ccfix.lua')}% catcode of ideographs
 
diff --git a/test/test04-jfm-20200123.txt b/test/test04-jfm-20200123.txt
new file mode 100644 (file)
index 0000000..f33200f
--- /dev/null
@@ -0,0 +1,965 @@
+This is LuaTeX, Version 1.12.0 (TeX Live 2020/dev) 
+ restricted system commands enabled.
+(./test04-jfm.tex
+(/opt/texlive/texmf-local/tex/luatex/luatexja/luatexja-core.sty
+(/opt/texlive/2019/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
+(/opt/texlive/2019/texmf-dist/tex/luatex/ctablestack/ctablestack.sty
+(/opt/texlive/2019/texmf-dist/tex/latex/base/ltluatex.tex)))
+(/opt/texlive/2019/texmf-dist/tex/luatex/luaotfload/luaotfload.sty)
+(/opt/texlive/2019/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
+(/opt/texlive/2019/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty
+(/opt/texlive/2019/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
+(/opt/texlive/2019/texmf-dist/tex/generic/iftex/iftex.sty))
+(/opt/texlive/2019/texmf-dist/tex/generic/xkeyval/xkeyval.tex
+(/opt/texlive/2019/texmf-dist/tex/generic/xkeyval/xkvutils.tex
+(/opt/texlive/2019/texmf-dist/tex/generic/xkeyval/keyval.tex))
+2014/12/03 v2.7a key=value parser (HA)
+(/opt/texlive/2019/texmf-dist/tex/generic/xkeyval/xkvtxhdr.tex
+2005/02/22 v1.1 xkeyval TeX header (HA)))
+(/opt/texlive/2019/texmf-dist/tex/generic/atbegshi/atbegshi.sty
+(/opt/texlive/2019/texmf-dist/tex/generic/iftex/iftex.sty))(load cache: /home/h
+7k/.texlive2019/texmf-var/luatexja/ltj-cid-auto-adobe-japan1.luc)
+(/opt/texlive/texmf-local/tex/luatex/luatexja/ltj-base.sty)
+(/opt/texlive/texmf-local/tex/luatex/luatexja/ltj-plain.sty
+(/opt/texlive/texmf-local/tex/luatex/luatexja/jfm-ujis.lua)
+(/opt/texlive/texmf-local/tex/luatex/luatexja/jfm-ujisv.lua)))
+(./jfm-bad.lua)
+! Package luatexja Error: bad JFM `bad'.
+
+See the luatexja package documentation for explanation.
+Type  H <return>  for immediate help.
+\ltj@@jfont ->\luafunction \ltj@@jfont@inner 
+                                             
+l.17 ...rml={psft:GothicBBB-Medium:jfm=bad} at 10pt 
+                                                  % must be error
+! Package luatexja Error: bad character code (-1).
+
+See the luatexja package documentation for explanation.
+Type  H <return>  for immediate help.
+\ltj@@getparam@two ...\ltj@safe@num@or {nil}{#2})}
+                                                  
+l.56 \ltjgetparameter{chartorange}{-1}
+                                      % must be error "
+[1{/opt/texlive/2019/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
+(./jfm-test.lua)======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  イ (U+30A4) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  ウ (U+30A6) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  イ (U+30A4) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  ウ (U+30A6) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.2pt (from JFM: priority 0)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.2pt (from JFM: priority 0)
+49 glyph 256  ( (U+28) 68 (7.6709+1.82129)x3.33008
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.3pt (from JFM: priority 0)
+49 glyph 256  ) (U+29) 68 (7.6709+1.82129)x3.33008
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+28 glue 0  17.4pt (from JFM: priority 36)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  え (U+3048) 69 (8.8+1.2)x10.0
+4 kern 1  17.4pt (from JFM: priority 0)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+28 glue 0  5.1pt (from JFM: priority 36)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ( (U+28) 68 (7.6709+1.82129)x3.33008
+3 penalty 0  10000 (for kinsoku)
+28 glue 0  5.2pt (from JFM: priority 36)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ) (U+29) 68 (7.6709+1.82129)x3.33008
+28 glue 0  5.1pt (from JFM: priority 36)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+28 glue 0  14.2pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+4 kern 1  20.1pt (from JFM: priority 0)
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+======
+ [2]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.4pt (from JFM: priority 0)
+49 kern 1  3.0pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+49 kern 1  3.0pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+3 penalty 0  10000 (for kinsoku)
+28 glue 0  17.7pt (from JFM: priority 36)
+49 kern 1  3.0pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 kern 1  3.0pt
+3 penalty 0  10000 (for kinsoku)
+28 glue 0  5.3pt (from JFM: priority 36)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 kern 1  3.0pt
+3 penalty 0  10000 (for kinsoku)
+28 glue 0  14.4pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 kern 1  3.0pt
+4 kern 1  20.3pt (from JFM: priority 0)
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+3 penalty 0  0 (for kinsoku)
+4 kern 1  12.1pt (from JFM: priority 0)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  0 (for kinsoku)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+28 glue 0  17.3pt (from JFM: priority 36)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  え (U+3048) 69 (8.8+1.2)x10.0
+3 penalty 0  0 (for kinsoku)
+4 kern 1  17.3pt (from JFM: priority 0)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.1pt (from JFM: priority 0)
+49 hlist 2 (8.8+1.2)x10.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.2pt (from JFM: priority 0)
+49 hlist 2 (5.2002+0.03906)x5.49805, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 hlist 2 (5.2002+0.03906)x5.49805, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+3 penalty 0  0 (for kinsoku)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+ [3]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+3 penalty 0  0 (for kinsoku)
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+======
+ [4]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  イ (U+30A4) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  ウ (U+30A6) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  イ (U+30A4) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  ウ (U+30A6) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.2pt (from JFM: priority 0)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+28 glue 0  17.4pt (from JFM: priority 36)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  え (U+3048) 69 (8.8+1.2)x10.0
+4 kern 1  17.4pt (from JFM: priority 0)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+3 penalty 0  321 (for kinsoku)
+28 glue 0  5.1pt (from JFM: priority 36)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+3 penalty 0  892 (for kinsoku)
+28 glue 0  14.2pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+4 kern 1  20.1pt (from JFM: priority 0)
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+4 kern 1  12.1pt (from JFM: priority 0)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+ [5]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+28 glue 0  17.3pt (from JFM: priority 36)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  え (U+3048) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+4 kern 1  17.3pt (from JFM: priority 0)
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.1pt (from JFM: priority 0)
+49 hlist 2 (8.8+1.2)x10.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  ア (U+30A2) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+4 kern 1  12.2pt (from JFM: priority 0)
+49 hlist 2 (5.2002+0.03906)x5.49805, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 hlist 2 (5.2002+0.03906)x5.49805, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (8.8+1.2)x10.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  ( (U+FF08) 69 (8.8+1.2)x10.0
+3 penalty 0  571 (for kinsoku)
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+3 penalty 0  123 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 hlist 2 (8.8+1.2)x10.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  ) (U+FF09) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+3 penalty 0  0 (for kinsoku)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+3 penalty 0  571 (for kinsoku)
+28 glue 0  14.1pt (from JFM: priority 36)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 hlist 2 (0.0+0.0)x0.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+3 penalty 0  0 (for kinsoku)
+4 kern 1  20.0pt (from JFM: priority 0)
+49 glyph 256  う (U+3046) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  f (U+66) 37 (6.94444+1.94444)x3.06665
+4A kern 3  2.11945pt (italic correction)
+3 penalty 0  123 (for kinsoku)
+47 glue 0  0.0pt plus 1.0pt (xkanjiskip, JFM specified)
+28 glue 0  5.0pt minus 5.0pt (from JFM: priority 36)
+2 hlist 0 (8.8+1.2)x5.0, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 66 (8.32031+0.71777)x5.09766 off: (-0.09766,0.0)
+4A kern 3  0.0pt (italic correction)
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt minus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  0.0pt (from JFM: priority 36)
+2 hlist 0 (8.8+1.2)x10.0, dir=0 (packed)
+.0 glyph 256  あ (U+3042) 66 (8.11035+0.36133)x8.99902
+======
+ [6]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+45 glue 0  1.0pt plus 0.4pt minus 0.5pt (kanjiskip, JFM specified)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  は (U+306F) 72 (10.56+1.44)x12.0
+45 glue 0  1.1pt plus 0.44pt minus 0.55pt (kanjiskip, JFM specified)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt (kanjiskip)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+47 glue 0  3.1pt plus 0.45pt minus 0.57pt (xkanjiskip, JFM specified)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+47 glue 0  3.1pt plus 0.45pt minus 0.57pt (xkanjiskip, JFM specified)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  ま (U+307E) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  x (U+78) 68 (5.07813+0.0)x4.8877
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+49 penalty 0  1701
+49 penalty 0  1701
+49 penalty 0  1701
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+ [7]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+49 penalty 0  1701
+49 penalty 0  1701
+49 penalty 0  1701
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+49 penalty 0  1701
+49 penalty 0  1701
+49 penalty 0  1701
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  い (U+3044) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+49 penalty 0  1701
+49 penalty 0  1701
+49 penalty 0  1701
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  お (U+304A) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.8+1.2)x10.0, dir=0 (packed)
+.0 glyph 256  あ (U+3042) 66 (8.11035+0.36133)x8.99902
+4A kern 3  0.0pt (italic correction)
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  j (U+6A) 1 (6.67859+1.94444)x3.05557
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.8+1.2)x5.0, dir=0 (packed)
+.0 glyph 256  ) (U+FF09) 66 (8.32031+0.71777)x5.09766
+4A kern 3  0.0pt (italic correction)
+28 glue 0  5.0pt minus 5.0pt (from JFM: priority 36)
+49 glyph 256  j (U+6A) 1 (6.67859+1.94444)x3.05557
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  れ (U+308C) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 kern 2  1.25pt (for accent)
+49 hlist 0 (6.28473+0.0)x5.00002, dir=0, shifted -2.52777
+.0 glyph 0  \14 (U+14) 1 (6.28473+0.0)x5.00002
+49 kern 2  -6.25002pt (for accent)
+49 glyph 256  A (U+41) 1 (6.83331+0.0)x7.50002
+3 penalty 0  10000 (for kinsoku)
+46 glue 0  0.0pt (xkanjiskip)
+49 glyph 256  ) (U+FF09) 69 (8.8+1.2)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  10.3pt
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+4B kern 1  8.5pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 512  か (U+304B) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 512  あ (U+3042) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 512  か (U+304B) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+49 hlist 2 (8.8+1.2)x28.8, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.4B glue 0  10.3pt
+.49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+.4B kern 1  8.5pt
+49 glyph 256  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+49 glyph 256  き (U+304D) 69 (8.8+1.2)x10.0
+3 penalty 0  0 (for kinsoku)
+49 hlist 2 (8.8+1.2)x28.8, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.4B glue 0  10.3pt
+.49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+.4B kern 1  8.5pt
+3 penalty 0  0 (for kinsoku)
+49 glyph 256  き (U+304D) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 hlist 2 (8.8+1.2)x10.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.49 glyph 256  き (U+304D) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  き (U+304D) 69 (8.8+1.2)x10.0
+======
+ [8]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.8+1.2)x10.0, dir=0 (packed)
+.0 glyph 256  あ (U+3042) 66 (8.11035+0.36133)x8.99902
+3 penalty 0  1000 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 hlist 2 (8.8+1.2)x5.0, dir=0
+.49 whatsit 8  userid:4 (direction) (node list) dir: 4
+.2 hlist 0 (8.8+1.2)x5.0, dir=0 (packed)
+..0 glyph 256  ( (U+FF08) 66 (8.32031+0.71777)x5.09766 off: (-0.09766,0.0)
+3 penalty 0  1000 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 hlist 0 (8.8+1.2)x10.0, dir=0 (packed)
+.0 glyph 256  あ (U+3042) 66 (8.11035+0.36133)x8.99902
+3 penalty 0  1000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  5.0pt minus 5.0pt (from JFM: priority 36)
+2 hlist 0 (8.8+1.2)x5.0, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 66 (8.32031+0.71777)x5.09766 off: (-0.09766,0.0)
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt minus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  0.0pt (from JFM: priority 36)
+2 hlist 0 (8.8+1.2)x10.0, dir=0 (packed)
+.0 glyph 256  あ (U+3042) 66 (8.11035+0.36133)x8.99902
+======
+ [9]======
+0 whatsit 8  userid:4 (direction) (node list) dir: 4
+0 local_par nil 
+0 hlist 3 (0.0+0.0)x19.2, dir=0
+4B glue 0  6.8pt plus 0.2pt minus 0.4pt
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+3 penalty 0  500 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  エ (U+30A8) 69 (8.8+1.2)x10.0
+49 penalty 2  10000
+0 glue 15  30.0pt
+0 glue 9  0.0pt
+======
+======
+0 whatsit 8  userid:4 (direction) (node list) dir: 4
+0 local_par nil 
+4B glue 0  10.3pt
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+3 penalty 0  500 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  エ (U+30A8) 69 (8.8+1.2)x10.0
+49 penalty 2  10000
+0 glue 15  30.0pt
+0 glue 9  0.0pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  10.3pt
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+49 glyph 256  エ (U+30A8) 69 (8.8+1.2)x10.0
+4B glue 0  7.8pt
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+4B glue 0  9.4pt plus 2.3pt minus 4.5pt
+49 glyph 256  あ (U+3042) 69 (8.8+1.2)x10.0
+28 glue 0  12.5pt plus 4.3pt minus 8.7pt (from JFM: priority 36)
+49 math 0 
+49 glyph 256  a (U+61) 7 (4.30554+0.0)x5.28589
+49 math 1 
+28 glue 0  6.8pt plus 0.2pt minus 0.4pt (from JFM: priority 36)
+49 glyph 256  さ (U+3055) 69 (8.8+1.2)x10.0
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 math 0 
+49 glyph 256  a (U+61) 7 (4.30554+0.0)x5.28589
+49 math 1 
+46 glue 0  2.40553pt plus 1.0pt minus 1.0pt (xkanjiskip)
+49 glyph 256  か (U+304B) 69 (8.8+1.2)x10.0
+4B kern 1  8.5pt
+======
+ HOGE======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ) (U+FF09) 51 (8.00594+0.69066)x9.62216
+28 glue 0  4.81108pt minus 4.81108pt (from JFM: priority 36)
+49 glyph 512  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ) (U+FF09) 51 (8.00594+0.69066)x9.62216
+28 glue 0  4.81108pt minus 4.81108pt (from JFM: priority 36)
+49 glyph 512  a (U+61) 68 (5.2002+0.03906)x5.49805
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 51 (8.00594+0.69066)x9.62216 off: (-4.81108,0.0)
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  0.0pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ) (U+FF09) 51 (8.00594+0.69066)x9.62216
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  4.81108pt minus 4.81108pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 51 (8.00594+0.69066)x9.62216 off: (-4.81108,0.0)
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  0.0pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ) (U+FF09) 51 (8.00594+0.69066)x9.62216
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  4.81108pt minus 4.81108pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  「 (U+300C) 51 (7.94955+0.0)x9.62216 off: (-4.81108,0.0)
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  0.0pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  」 (U+300D) 51 (6.29105+0.63428)x9.62216
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.4675+1.15466)x0.0, dir=0
+49 glyph 256  あ (U+3042) 51 (7.61128+0.31009)x9.62216
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.4675+1.15466)x0.0, dir=0
+49 glyph 256  い (U+3044) 51 (6.69511+0.0)x9.62216
+======
+
+! Package luatexja Error: Incompatible direction list can't be unboxed.
+
+See the luatexja package documentation for explanation.
+Type  H <return>  for immediate help.
+\ltj@@unhbox ...texja.direction.unbox_check_dir()}
+                                                  \ltj@@orig@unhbox \ltj@tem...
+
+l.371 ...\tenmin\setbox1=\hbox{\tate }あ\unhbox1い
+                                                  }󿿿
+[10]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.4675+1.15466)x0.0, dir=0
+49 glyph 256  あ (U+3042) 51 (7.61128+0.31009)x9.62216
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.4675+1.15466)x0.0, dir=0
+49 glyph 256  い (U+3044) 51 (6.69511+0.0)x9.62216
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.4675+1.15466)x0.0, dir=0
+49 glyph 256  あ (U+3042) 51 (7.61128+0.31009)x9.62216
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  2.40555pt minus 2.40555pt (from JFM: priority 36)
+2 hlist 0 (4.23375+0.57733)x2.40555, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 53 (4.00298+0.34532)x4.81108 off: (-2.40553,0.0)
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (4.23375+0.57733)x0.0, dir=0
+49 glyph 256  あ (U+3042) 53 (3.80563+0.15504)x4.81108
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+28 glue 0  4.81108pt minus 4.81108pt (from JFM: priority 36)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ( (U+FF08) 51 (8.00594+0.69066)x9.62216 off: (-4.81108,0.0)
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (4.23375+0.57733)x2.40555, dir=0 (packed)
+.0 glyph 256  . (U+FF0E) 53 (0.68831+0.0047)x4.81108
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+31 glue 0  4.81108pt minus 1.6037pt (from JFM: priority 45)
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  ・ (U+30FB) 51 (4.35065+0.0)x9.62216 off: (-2.40553,0.0)
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 hlist 0 (8.4675+1.15466)x4.81108, dir=0 (packed)
+.0 glyph 256  . (U+FF0E) 51 (1.3766+0.0094)x9.62216
+3 penalty 0  10000 (for kinsoku)
+45 glue 0  0.0pt plus 0.4pt (kanjiskip, JFM specified)
+31 glue 0  6.01385pt minus 2.00462pt (from JFM: priority 45)
+2 hlist 0 (4.23375+0.57733)x2.40555, dir=0 (packed)
+.0 glyph 256  ・ (U+30FB) 53 (2.17532+0.0)x4.81108 off: (-1.20276,0.0)
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  タ (U+30BF) 73 (8.12+0.44)x10.0
+4A kern 0  -0.5pt (italic correction)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ノ (U+30CE) 73 (7.83+0.38)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  タ (U+30BF) 73 (8.12+0.44)x10.0
+4A kern 0  -0.1pt (italic correction)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  イ (U+30A4) 73 (8.08+0.42)x10.0
+4A kern 0  -0.2pt (italic correction)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ク (U+30AF) 73 (8.19+0.44)x10.0
+4A kern 0  -0.8pt (italic correction)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ノ (U+30CE) 73 (7.83+0.38)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  タ (U+30BF) 74 (8.12+0.44)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ノ (U+30CE) 74 (7.83+0.38)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  タ (U+30BF) 74 (8.12+0.44)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  イ (U+30A4) 74 (8.08+0.42)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ク (U+30AF) 74 (8.19+0.44)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ノ (U+30CE) 74 (7.83+0.38)x10.0
+======
+======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  タ (U+30BF) 73 (8.12+0.44)x10.0
+4A kern 3  0.0pt (italic correction)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  ノ (U+30CE) 73 (7.83+0.38)x10.0
+======
+ [11]======
+49 whatsit 8  userid:4 (direction) (node list) dir: 4
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  」 (U+300D) 73 (6.68+0.83)x10.0
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 258   (U+F18C6) 73 (8.24+0.27)x10.0
+3 penalty 0  10000 (for kinsoku)
+44 glue 0  0.0pt plus 0.4pt minus 0.4pt (kanjiskip)
+2 rule 3 (8.8+1.2)x0.0, dir=0
+49 glyph 256  . (U+FF0E) 73 (1.35+0.0)x10.0
+======
+ [12])
+(see the transcript file for additional information)</opt/fonts/ipaexm.ttf></op
+t/texlive/texmf-local/fonts/truetype/mine/ipaexg.ttf></opt/fonts/ipamp.ttf></op
+t/fonts/kozuka/KozMinPr6N-Regular.otf></opt/texlive/texmf-local/fonts/truetype/
+mine/ipam.ttf></opt/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx
+10.pfb></opt/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb>
+</opt/texlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></opt/te
+xlive/2019/texmf-dist/fonts/type1/public/amsfonts/cm/cmti10.pfb></opt/texlive/2
+019/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb>
+Output written on test04-jfm.pdf (12 pages, 665909 bytes).
+Transcript written on test04-jfm.log.