From: Hironori Kitagawa Date: Sun, 2 Oct 2011 00:11:28 +0000 (+0900) Subject: Fixed a conditional in get_stack_level. X-Git-Tag: 20120419.0~69 X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=69f85c5c3c50f97b6767ffa3c94524719f2930be;p=luatex-ja%2Fluatexja.git Fixed a conditional in get_stack_level. - There is a bug in luatexref-t.pdf; tex.nest[].nest is 118 (in rev 4345) when the current mode is horizontal mode, but 127 in the reference manual. - JFMs for slanted/extended shapes are included in test/. These should be included in the commit 97b5b39. --- diff --git a/src/luatexja/stack.lua b/src/luatexja/stack.lua index e9e9729..5dc11e5 100644 --- a/src/luatexja/stack.lua +++ b/src/luatexja/stack.lua @@ -15,6 +15,7 @@ require('luatexja.base'); local ltjb = luatexja.base local node_new = node.new local id_whatsit = node.id('whatsit') local sid_user = node.subtype('user_defined') +local hmode = 118 -- in luatexref-t.pdf, this must be 127 local charprop_stack_table={}; charprop_stack_table[0]={} @@ -33,8 +34,9 @@ function get_stack_level() charprop_stack_table[i] = table.fastcopy(charprop_stack_table[i-1]) tex.setcount('ltj@@stack', i) if gd>0 then tex.globaldefs = gd end - if tex.nest[tex.nest.ptr].mode == 127 or - tex.nest[tex.nest.ptr].mode == -127 then + print('mode: ', tex.nest[tex.nest.ptr].mode) + if tex.nest[tex.nest.ptr].mode == hmode or + tex.nest[tex.nest.ptr].mode == -hmode then local g = node_new(id_whatsit, sid_user) g.user_id=30112; g.type=100; g.value=j; node.write(g) end diff --git a/test/jfm-ujiso16.lua b/test/jfm-ujiso16.lua new file mode 100644 index 0000000..4994d61 --- /dev/null +++ b/test/jfm-ujiso16.lua @@ -0,0 +1,104 @@ +luatexja.jfont.define_jfm { + dir = 'yoko', + zw = 1.0, zh = 1.0, + + [0] = { + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + } + }, + + [1] = { -- 開き括弧類 + chars = { + 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, + 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + }, + align = 'right', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [3] = { 0.25, 0.0, 0.25 } + } + }, + + [2] = { -- 閉じ括弧類 + chars = { + 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, + 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [0] = { 0.5 , 0.0, 0.5 }, + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 }, + [5] = { 0.5 , 0.0, 0.5 }, + [7] = { 0.5 , 0.0, 0.5 } + } + }, + + [3] = { -- 中点類 + chars = {0x30FB, 0xFF1A, 0xFF1B}, + align = 'middle', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [0] = { 0.25, 0.0, 0.25 }, + [1] = { 0.25, 0.0, 0.25 }, + [2] = { 0.25, 0.0, 0.25 }, + [3] = { 0.5 , 0.0, 0.5 }, + [4] = { 0.25, 0.0, 0.25 }, + [5] = { 0.25, 0.0, 0.25 }, + [7] = { 0.25, 0.0, 0.25 } + } + }, + + [4] = { -- 句点類 + chars = {0x3002, 0xFF0E}, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [0] = { 0.5 , 0.0, 0.0 }, + [1] = { 0.5 , 0.0, 0.0 }, + [3] = { 0.75, 0.0, 0.25 }, + [5] = { 0.5 , 0.0, 0.0 }, + [7] = { 0.5 , 0.0, 0.0 } + } + }, + + [5] = { -- ダッシュ + chars = { 0x2015, 0x2025, 0x2026 }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + }, + kern = { + [5] = 0.0 + } + }, + + [6] = { -- box末尾 + chars = {'boxbdd'}, + }, + + [7] = { -- 半角カナ + chars = { + 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, + 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, + 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, + 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, + 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, + 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, + 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + } + }, +} \ No newline at end of file diff --git a/test/jfm-ujiso25.lua b/test/jfm-ujiso25.lua new file mode 100644 index 0000000..4c1e088 --- /dev/null +++ b/test/jfm-ujiso25.lua @@ -0,0 +1,104 @@ +luatexja.jfont.define_jfm { + dir = 'yoko', + zw = 1.0, zh = 1.0, + + [0] = { + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + } + }, + + [1] = { -- 開き括弧類 + chars = { + 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3025, + 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + }, + align = 'right', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [3] = { 0.25, 0.0, 0.25 } + } + }, + + [2] = { -- 閉じ括弧類 + chars = { + 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, + 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [0] = { 0.5 , 0.0, 0.5 }, + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 }, + [5] = { 0.5 , 0.0, 0.5 }, + [7] = { 0.5 , 0.0, 0.5 } + } + }, + + [3] = { -- 中点類 + chars = {0x30FB, 0xFF1A, 0xFF1B}, + align = 'middle', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [0] = { 0.25, 0.0, 0.25 }, + [1] = { 0.25, 0.0, 0.25 }, + [2] = { 0.25, 0.0, 0.25 }, + [3] = { 0.5 , 0.0, 0.5 }, + [4] = { 0.25, 0.0, 0.25 }, + [5] = { 0.25, 0.0, 0.25 }, + [7] = { 0.25, 0.0, 0.25 } + } + }, + + [4] = { -- 句点類 + chars = {0x3002, 0xFF0E}, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [0] = { 0.5 , 0.0, 0.0 }, + [1] = { 0.5 , 0.0, 0.0 }, + [3] = { 0.75, 0.0, 0.25 }, + [5] = { 0.5 , 0.0, 0.0 }, + [7] = { 0.5 , 0.0, 0.0 } + } + }, + + [5] = { -- ダッシュ + chars = { 0x2015, 0x2025, 0x2026 }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + }, + kern = { + [5] = 0.0 + } + }, + + [6] = { -- box末尾 + chars = {'boxbdd'}, + }, + + [7] = { -- 半角カナ + chars = { + 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, + 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, + 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, + 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, + 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, + 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, + 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 } + } + }, +} \ No newline at end of file diff --git a/test/jfm-ujisx50.lua b/test/jfm-ujisx50.lua new file mode 100644 index 0000000..1dfa16d --- /dev/null +++ b/test/jfm-ujisx50.lua @@ -0,0 +1,104 @@ +luatexja.jfont.define_jfm { + dir = 'yoko', + zw = 1.0, zh = 1.0, + + [0] = { + align = 'left', left = 0.0, down = 0.0, + width = 1.0*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [1] = { 0.5*1.5 , 0.0, 0.5 }, + [3] = { 0.25*1.5, 0.0, 0.25 } + } + }, + + [1] = { -- 開き括弧類 + chars = { + 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3025, + 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + }, + align = 'right', left = 0.0, down = 0.0, + width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [3] = { 0.25*1.5, 0.0, 0.25 } + } + }, + + [2] = { -- 閉じ括弧類 + chars = { + 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, + 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [0] = { 0.5*1.5 , 0.0, 0.5 }, + [1] = { 0.5*1.5 , 0.0, 0.5 }, + [3] = { 0.25*1.5, 0.0, 0.25 }, + [5] = { 0.5*1.5 , 0.0, 0.5 }, + [7] = { 0.5*1.5 , 0.0, 0.5 } + } + }, + + [3] = { -- 中点類 + chars = {0x30FB, 0xFF1A, 0xFF1B}, + align = 'middle', left = 0.0, down = 0.0, + width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [0] = { 0.25*1.5, 0.0, 0.25 }, + [1] = { 0.25*1.5, 0.0, 0.25 }, + [2] = { 0.25*1.5, 0.0, 0.25 }, + [3] = { 0.5*1.5 , 0.0, 0.5 }, + [4] = { 0.25*1.5, 0.0, 0.25 }, + [5] = { 0.25*1.5, 0.0, 0.25 }, + [7] = { 0.25*1.5, 0.0, 0.25 } + } + }, + + [4] = { -- 句点類 + chars = {0x3002, 0xFF0E}, + align = 'left', left = 0.0, down = 0.0, + width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [0] = { 0.5*1.5 , 0.0, 0.0 }, + [1] = { 0.5*1.5 , 0.0, 0.0 }, + [3] = { 0.75*1.5, 0.0, 0.25 }, + [5] = { 0.5*1.5 , 0.0, 0.0 }, + [7] = { 0.5*1.5 , 0.0, 0.0 } + } + }, + + [5] = { -- ダッシュ + chars = { 0x2015, 0x2025, 0x2026 }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [1] = { 0.5*1.5 , 0.0, 0.5 }, + [3] = { 0.25*1.5, 0.0, 0.25 } + }, + kern = { + [5] = 0.0 + } + }, + + [6] = { -- box末尾 + chars = {'boxbdd'}, + }, + + [7] = { -- 半角カナ + chars = { + 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, + 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, + 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, + 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, + 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, + 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, + 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + }, + align = 'left', left = 0.0, down = 0.0, + width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [1] = { 0.5*1.5 , 0.0, 0.5 }, + [3] = { 0.25*1.5, 0.0, 0.25 } + } + }, +} \ No newline at end of file