OSDN Git Service

ltj-jfont.lua: "-ltjksp" disables ksp_{natural,stretch,shrink} key in JFM
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Mon, 28 Sep 2015 09:54:54 +0000 (18:54 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Mon, 28 Sep 2015 09:54:54 +0000 (18:54 +0900)
src/ltj-jfmglue.lua
src/ltj-jfont.lua
test/test21-kanjiskip.pdf
test/test21-kanjiskip.tex

index 25b2e06..6a9ed1a 100644 (file)
@@ -784,7 +784,7 @@ do
    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);
@@ -868,7 +868,7 @@ do
    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);
index 68c2c2a..dbe4254 100644 (file)
@@ -48,7 +48,7 @@ font_metric_table={} -- [font number] -> jfm_name, jfm_var, size
 
 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
 
@@ -296,6 +296,7 @@ do
       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,
@@ -334,7 +335,7 @@ do
    -- 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
@@ -372,6 +373,7 @@ do
            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
index 5974df1..5dd984d 100644 (file)
Binary files a/test/test21-kanjiskip.pdf and b/test/test21-kanjiskip.pdf differ
index 3ee451d..01c89ce 100644 (file)
@@ -1,30 +1,54 @@
 %#!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