diff options
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/luatexja.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexja/luatexja.lua | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua index 98b0ae7dc5d..adf741f1938 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua @@ -34,6 +34,22 @@ function luatexja.load_lua(fn) end end +local icflag_table = {} +luatexja.icflag_table = icflag_table +icflag_table.ITALIC = 1 +icflag_table.PACKED = 2 +icflag_table.KINSOKU = 3 +icflag_table.FROM_JFM = 6 +-- FROM_JFM: 4, 5, 6, 7, 8 →優先度高 +-- 6 が標準 +icflag_table.KANJI_SKIP = 9 +icflag_table.XKANJI_SKIP = 10 +icflag_table.PROCESSED = 11 +icflag_table.IC_PROCESSED = 12 +icflag_table.BOXBDD = 15 +icflag_table.PROCESSED_BEGIN_FLAG = 32 + + local load_module = luatexja.load_module load_module('base'); local ltjb = luatexja.base load_module('rmlgbm'); local ltjr = luatexja.rmlgbm -- must be 1st @@ -76,19 +92,6 @@ local attr_icflag = luatexbase.attributes['ltj@icflag'] local attr_uniqid = luatexbase.attributes['ltj@uniqid'] local cat_lp = luatexbase.catcodetables['latex-package'] -local ITALIC = 1 -local PACKED = 2 -local KINSOKU = 3 -local FROM_JFM = 4 -local LINE_END = 5 -local KANJI_SKIP = 6 -local XKANJI_SKIP = 7 -local PROCESSED = 8 -local IC_PROCESSED = 9 -local BOXBDD = 15 -local PROCESSED_BEGIN_FLAG = 16 - - -- Three aux. functions, bollowed from tex.web local unity=65536 local function print_scaled(s) @@ -180,14 +183,16 @@ function luatexja.ext_get_parameter_binary(k,c) c=0 end if k == 'jacharrange' then - if c<0 or c>216 then + if c>=7*ltjc.ATTR_RANGE then ltjb.package_error('luatexja', 'invalid character range number (' .. c .. ')', - 'A character range number should be in the range 0..216,\n'.. + 'A character range number should be in the range 0..' + .. 7+ATTR_RANGE-1 .. ",\n".. 'So I changed this one to zero.') c=0 end - tex.write(ltjc.get_range_setting(c)) + -- 負の値は <U+0080 の文字の文字範囲,として出てくる.この時はいつも欧文文字なので 1 を返す + tex.write( (c<0) and -1 or ltjc.get_range_setting(c)) else if c<0 or c>0x10FFFF then ltjb.package_error('luatexja', @@ -275,7 +280,7 @@ local function debug_show_node_X(p,print_fn) for i = 2, p.glue_order do s = s .. 'l' end end end - if get_attr_icflag(p) == PACKED then + if get_attr_icflag(p) == icflag_table.PACKED then s = s .. ' (packed)' end print_fn(s) @@ -287,11 +292,12 @@ local function debug_show_node_X(p,print_fn) debug_depth=k elseif pt == 'glue' then s = base .. ' ' .. print_spec(p.spec) - if get_attr_icflag(p)==FROM_JFM then - s = s .. ' (from JFM)' - elseif get_attr_icflag(p)==KANJI_SKIP then + if get_attr_icflag(p)>icflag_table.KINSOKU + and get_attr_icflag(p)<icflag_table.KANJI_SKIP then + s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')' + elseif get_attr_icflag(p)==icflag_table.KANJI_SKIP then s = s .. ' (kanjiskip)' - elseif get_attr_icflag(p)==XKANJI_SKIP then + elseif get_attr_icflag(p)==icflag_table.XKANJI_SKIP then s = s .. ' (xkanjiskip)' end print_fn(s) @@ -299,19 +305,18 @@ local function debug_show_node_X(p,print_fn) s = base .. ' ' .. print_scaled(p.kern) .. 'pt' if p.subtype==2 then s = s .. ' (for accent)' - elseif get_attr_icflag(p)==IC_PROCESSED then + elseif get_attr_icflag(p)==icflag_table.IC_PROCESSED then s = s .. ' (italic correction)' -- elseif get_attr_icflag(p)==ITALIC then -- s = s .. ' (italic correction)' - elseif get_attr_icflag(p)==FROM_JFM then - s = s .. ' (from JFM)' - elseif get_attr_icflag(p)==LINE_END then - s = s .. " (from 'lineend' in JFM)" + elseif get_attr_icflag(p)>icflag_table.KINSOKU + and get_attr_icflag(p)<icflag_table.KANJI_SKIP then + s = s .. ' (from JFM: priority ' .. get_attr_icflag(p)-icflag_table.FROM_JFM .. ')' end print_fn(s) elseif pt == 'penalty' then s = base .. ' ' .. tostring(p.penalty) - if get_attr_icflag(p)==KINSOKU then + if get_attr_icflag(p)==icflag_table.KINSOKU then s = s .. ' (for kinsoku)' end print_fn(s) |