--
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 {}
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
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
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
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
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)
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
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
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
(((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
--- /dev/null
+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.