summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/luatexja.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/luatexja.lua50
1 files changed, 40 insertions, 10 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
index adf741f1938..83bfed33b56 100644
--- a/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
+++ b/Master/texmf-dist/tex/luatex/luatexja/luatexja.lua
@@ -19,7 +19,7 @@ function luatexja.load_module(name)
luatexja.error("File `" .. fn .. "' not found",
{'This file ' .. fn .. ' is required for LuaTeX-ja.', 'Please check your installation.'})
else
- texio.write('(' .. found .. ')\n')
+ texio.write_nl('(' .. found .. ')')
dofile(found)
end
end
@@ -29,11 +29,12 @@ function luatexja.load_lua(fn)
if not found then
error("File `" .. fn .. "' not found")
else
- texio.write('(' .. found .. ')\n')
+ texio.write_nl('(' .. found .. ')')
dofile(found)
end
end
+--- 以下は全ファイルで共有される定数
local icflag_table = {}
luatexja.icflag_table = icflag_table
icflag_table.ITALIC = 1
@@ -49,6 +50,27 @@ icflag_table.IC_PROCESSED = 12
icflag_table.BOXBDD = 15
icflag_table.PROCESSED_BEGIN_FLAG = 32
+local stack_table_index = {}
+luatexja.stack_table_index = stack_table_index
+stack_table_index.PRE = 0x200000 -- characterごと
+stack_table_index.POST = 0x400000 -- characterごと
+stack_table_index.KCAT = 0x600000 -- characterごと
+stack_table_index.XSP = 0x800000 -- characterごと
+stack_table_index.JWP = 0 -- 0のみ
+stack_table_index.MJT = 0x100 -- 0--255
+stack_table_index.MJS = 0x200 -- 0--255
+stack_table_index.MJSS = 0x300 -- 0--255
+stack_table_index.KSJ = 0x400 -- 0--9
+
+local userid_table = {}
+luatexja.userid_table = userid_table
+userid_table.IHB = 30111 -- \inhibitglue
+userid_table.STCK = 30112 -- スタック管理
+userid_table.OTF = 30113 -- luatexja-otf
+userid_table.BPAR = 30114 -- 「段落始め」
+
+
+--- 定義終わり
local load_module = luatexja.load_module
load_module('base'); local ltjb = luatexja.base
@@ -144,16 +166,17 @@ end
-- EXT: print parameters that don't need arguments
function luatexja.ext_get_parameter_unary(k)
+ local t = tex.getcount('ltj@@stack')
if k == 'yalbaselineshift' then
tex.write(print_scaled(tex.getattribute('ltj@yablshift'))..'pt')
elseif k == 'yjabaselineshift' then
tex.write(print_scaled(tex.getattribute('ltj@ykblshift'))..'pt')
elseif k == 'kanjiskip' then
- tex.write(print_spec(ltjs.get_skip_table('kanjiskip', tex.getcount('ltj@@stack'))))
+ tex.write(print_spec(ltjs.get_skip_table('kanjiskip', t)))
elseif k == 'xkanjiskip' then
- tex.write(print_spec(ltjs.get_skip_table('xkanjiskip', tex.getcount('ltj@@stack'))))
+ tex.write(print_spec(ltjs.get_skip_table('xkanjiskip', t)))
elseif k == 'jcharwidowpenalty' then
- tex.write(ltjs.get_penalty_table('jwp', 0, 0, tex.getcount('ltj@@stack')))
+ tex.write(ltjs.get_penalty_table(stack_table_index.JWP, 0, t))
elseif k == 'autospacing' then
tex.write(tex.getattribute('ltj@autospc'))
elseif k == 'autoxspacing' then
@@ -165,6 +188,12 @@ function luatexja.ext_get_parameter_unary(k)
tex.write('small')
elseif luatexja.jfmglue.diffmet_rule == math.two_average then
tex.write('average')
+ elseif luatexja.jfmglue.diffmet_rule == math.two_paverage then
+ tex.write('paverage')
+ elseif luatexja.jfmglue.diffmet_rule == math.two_pleft then
+ tex.write('pleft')
+ elseif luatexja.jfmglue.diffmet_rule == math.two_pright then
+ tex.write('pright')
elseif luatexja.jfmglue.diffmet_rule == math.two_add then
tex.write('both')
else -- This can't happen.
@@ -176,6 +205,7 @@ end
-- EXT: print parameters that need arguments
function luatexja.ext_get_parameter_binary(k,c)
+ local t = tex.getcount('ltj@@stack')
if type(c)~='number' then
ltjb.package_error('luatexja',
'invalid the second argument (' .. tostring(c) .. ')',
@@ -203,15 +233,15 @@ function luatexja.ext_get_parameter_binary(k,c)
c=0
end
if k == 'prebreakpenalty' then
- tex.write(ltjs.get_penalty_table('pre', c, 0, tex.getcount('ltj@@stack')))
+ tex.write(ltjs.get_penalty_table(stack_table_index.PRE + c, 0, t))
elseif k == 'postbreakpenalty' then
- tex.write(ltjs.get_penalty_table('post', c, 0, tex.getcount('ltj@@stack')))
+ tex.write(ltjs.get_penalty_table(stack_table_index.POST+ c, 0, t))
elseif k == 'kcatcode' then
- tex.write(ltjs.get_penalty_table('kcat', c, 0, tex.getcount('ltj@@stack')))
+ tex.write(ltjs.get_penalty_table(stack_table_index.KCAT+ c, 0, t))
elseif k == 'chartorange' then
tex.write(ltjc.char_to_range(c))
elseif k == 'jaxspmode' or k == 'alxspmode' then
- tex.write(ltjs.get_penalty_table('xsp', c, 3, tex.getcount('ltj@@stack')))
+ tex.write(ltjs.get_penalty_table(stack_table_index.XSP + c, 3, t))
end
end
end
@@ -247,7 +277,7 @@ luatexbase.add_to_callback('hpack_filter',
-- debug
local function get_attr_icflag(p)
- return (has_attr(p, attr_icflag) or 0) % PROCESSED_BEGIN_FLAG
+ return (has_attr(p, attr_icflag) or 0) % icflag_table.PROCESSED_BEGIN_FLAG
end
local debug_depth