local KANJI_SKIP_JFM = luatexja.icflag_table.KANJI_SKIP_JFM
get_kanjiskip_low = function(flag, qm, bn, bp, bh)
- if flag or bn or bp or bh then
+ if flag or (qm.ksp and (bn or bp or bh)) then
if kanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
local XKANJI_SKIP_JFM = luatexja.icflag_table.XKANJI_SKIP_JFM
get_xkanjiskip_low = function(flag, qm, bn, bp, bh)
- if flag or bn or bp or bh then
+ if flag or (qm.ksp and (bn or bp or bh)) then
if xkanjiskip_jfm_flag then
local g = node_new(id_glue);
local gx = node_new(id_glue_spec);
luatexbase.create_callback("luatexja.load_jfm", "data", function (ft, jn) return ft end)
-local jfm_file_name, jfm_var
+local jfm_file_name, jfm_var, jfm_ksp
local defjfm_res
local jfm_dir, is_def_jfont, is_vert_enabled
local ad = identifiers[fn].parameters
local sz = metrics[j].size_cache[f.size]
local fmtable = { jfm = j, size = f.size, var = jfm_var,
+ ksp = jfm_ksp,
zw = sz.zw, zh = sz.zh,
ascent = ad.ascender,
descent = ad.descender,
-- extract jfm_file_name and jfm_var
-- normalize position of 'jfm=' and 'jfmvar=' keys
local function extract_metric(name)
- jfm_file_name = ''; jfm_var = ''
+ jfm_file_name = ''; jfm_var = ''; jfm_ksp = true
local tmp, index = name:sub(1, 5), 1
if tmp == 'file:' or tmp == 'name:' or tmp == 'psft:' then
index = 6
name = name .. 'jfmvar=' .. jfm_var
end
end
+ if name:match('-ltjksp') then jfm_ksp = false end
if jfm_dir == 'tate' then
is_vert_enabled = (not name:match('-vert')) and (not name:match('-vrt2'))
if not name:match('vert') and not name:match('vrt2') then
%#!luajittex
-% 例は「プリセットの「文字組アキ量設定」における設定値の齟齬と回避策」
-% (なんでやねんDTP,http://d.hatena.ne.jp/works014/20150926)から引用.
\input luatexja.sty
-%\input luatexja-adjust.sty
-\def\test#1{\par\vrule\hbox spread\zw{#1}\vrule\par}
-
-\def\testH#1{\vbox{#1%
-\test{あ(…)ああ}
-\test{あ(¥)ああ}
-\test{あ(%)ああ}
-\test{あ(ー)ああ}
-\test{あ(あ)ああ}
-\test{あ(ア)ああ}
-\test{あ(漢)ああ}
-\test{あ(0)ああ}
-\test{… ………}
-\test{¥ ¥ %}
-\test{% % あ}
-\test{ー ー あ}
-\test{あ あ ア}
-\test{0 0 ー}
-\test{佐々十郎}
-\test{大村 崑}
-\test{岡 八郎}
-\test{花紀 京}}}
+\input luatexja-adjust.sty
+%\input lua-visual-debug.sty
+\def\test#1{\vrule\hbox spread\zw{#1}\vrule}
+\baselineskip=1.75\zw
+
+\def\testH#1{\vtop{\hsize=21\zw #1%
+\par\vrule{%
+ \ltjsetparameter{kanjiskip=0pt plus 3\zw}%
+ \hbox to 20\zw{あ「い」う,えお}%
+}\vrule\par
+\test{あ(…)ああ}\qquad
+\test{あ(¥)ああ}\par
+\test{あ(%)ああ}\qquad
+\test{あ(ー)ああ}\par
+\test{あ(あ)ああ}\qquad
+\test{あ(ア)ああ}\par
+\test{あ(漢)ああ}\qquad
+\test{あ(0)ああ}\par
+\test{… ………}\qquad
+\test{¥ ¥ %}\par
+\test{% % あ}\qquad
+\test{ー ー あ}\par
+\test{あ あ ア}\qquad
+\test{0 0 ー}\par
+\test{佐々十郎}\qquad
+\test{大村 崑}\par
+\test{岡 八郎}\qquad
+\test{花紀 京}}\par\bigskip}
+
+1行目の例は「TeXでDTP―min10.tfmやjis.tfmの問題点」\hfil\break
+(渡邉たけしさん,{\tt http://www.dab.hi-ho.ne.jp/t-wara/tex/min10.html})から引用.
+
+1行目以外の例は「プリセットの「文字組アキ量設定」における設定値の齟齬と回避策」\hfil\break
+(なんでやねんDTPさん,{\tt http://d.hatena.ne.jp/works014/20150926})から引用.
+
+\parindent0pt
+{\gt\bf 標準メトリック}
+
+\testH\yoko
+\testH\tate
+
+\vfill\eject
+
+{\gt\bf 標準メトリックに加えて {\tt -ltjksp} 指定(旧バージョンの組み方)}
+
+\jfont\G=file:ipaexm.ttf:jfm=ujis;-ltjksp at 9.62216pt
+\tfont\H=file:ipaexm.ttf:jfm=ujisv;-ltjksp at 9.62216pt
+\G\H
\testH\yoko
\testH\tate