• R/O
  • HTTP
  • SSH
  • HTTPS

luatexja: Commit

ソースコードの管理場所


Commit MetaInfo

Revisãoc72bf6803b32910786d62b8cd329acbaedbcc157 (tree)
Hora2018-02-18 08:59:56
AutorHironori Kitagawa <h_kitagawa2001@yaho...>
CommiterHironori Kitagawa

Mensagem de Log

stopped to use module(), which is removed in Lua 5.2. (WIP)

Mudança Sumário

Diff

--- a/src/ltj-charrange.lua
+++ b/src/ltj-charrange.lua
@@ -3,12 +3,10 @@
33 --
44 luatexbase.provides_module({
55 name = 'luatexja.charrange',
6- date = '2017/05/05',
6+ date = '2018/02/18',
77 description = 'Handling the range of Japanese characters',
88 })
9-module('luatexja.charrange', package.seeall)
10-local err, warn, info, log = luatexbase.errwarinf(_NAME)
11-
9+luatexja.charrange = {}
1210 luatexja.load_module('base'); local ltjb = luatexja.base
1311
1412 local getchar = node.direct.getchar
@@ -16,7 +14,8 @@ local has_attr = node.direct.has_attribute
1614 local has_attr_node = node.has_attribute
1715 local tex_getattr = tex.getattribute
1816
19-ATTR_RANGE = 7
17+local ATTR_RANGE = 7
18+luatexja.charrange.ATTR_RANGE = ATTR_RANGE
2019 local jcr_cjk, jcr_noncjk = 0, 1
2120 local floor = math.floor
2221 local pow = math.pow
@@ -40,8 +39,7 @@ pow_table[31*ATTR_RANGE] = pow(2, 31)
4039 -- external 217, 1 2 216, 217 and (out of range): 'other'
4140
4241 -- initialize
43-jcr_table_main = {}
44-local jcr_table_main = jcr_table_main
42+local jcr_table_main = {}
4543 local ucs_out = 0x110000
4644
4745 for i=0x0 ,0x7F do jcr_table_main[i]=-1 end
@@ -49,7 +47,7 @@ for i=0x80 ,0xFF do jcr_table_main[i]=1 end
4947 for i=0x100,ucs_out-1 do jcr_table_main[i]=0 end
5048
5149 -- EXT: add characters to a range
52-function add_char_range(b,e,ind) -- ind: external range number
50+function luatexja.charrange.add_char_range(b,e,ind) -- ind: external range number
5351 if not ind or ind<0 or ind>31*ATTR_RANGE then -- 0 はエラーにしない(隠し)
5452 ltjb.package_error('luatexja',
5553 "invalid character range number (" .. ind .. ")",
@@ -70,32 +68,30 @@ function add_char_range(b,e,ind) -- ind: external range number
7068 end
7169 end
7270
73-function char_to_range(c) -- return the external range number
71+function luatexja.charrange.char_to_range(c) -- return the external range number
7472 local r = jcr_table_main[ltjb.in_unicode(c, false)] or 217
7573 return (r~=0) and r or 217
7674 end
7775
78-function get_range_setting(i) -- i: internal range number
76+local function get_range_setting(i) -- i: internal range number
7977 return floor(tex_getattr(kcat_attr_table[i])/pow_table[i])%2
8078 end
8179
8280 -- glyph_node p は和文文字か?
83-function is_ucs_in_japanese_char_node(p)
81+function luatexja.charrange.is_ucs_in_japanese_char(p)
8482 return nfn_table[jcr_table_main[c or p.char]](p)
8583 end
86-is_ucs_in_japanese_char = is_ucs_in_japanese_char_node
87--- only ltj-otf.lua uses this version
8884
89-function is_ucs_in_japanese_char_direct(p ,c)
85+function luatexja.charrange.is_ucs_in_japanese_char_direct(p ,c)
9086 return fn_table[jcr_table_main[c or getchar(p)]](p)
9187 end
9288
93-function is_japanese_char_curlist(c) -- assume that c>=0x80
89+function luatexja.charrange.is_japanese_char_curlist(c) -- assume that c>=0x80
9490 return get_range_setting(jcr_table_main[c])~= jcr_noncjk
9591 end
9692
9793 -- EXT
98-function toggle_char_range(g, i) -- i: external range number
94+function luatexja.charrange.toggle_char_range(g, i) -- i: external range number
9995 if type(i)~='number' then
10096 ltjb.package_error('luatexja',
10197 "invalid character range number (" .. tostring(i).. ")",
@@ -112,4 +108,6 @@ function toggle_char_range(g, i) -- i: external range number
112108 end
113109 end
114110
111+luatexja.charrange.get_range_setting=get_range_setting
112+
115113 -- EOF
--- a/src/ltj-infomute.lua
+++ /dev/null
@@ -1,58 +0,0 @@
1---
2--- luatexja/infomute.lua
3---
4-luatexbase.provides_module({
5- name = 'luatexja.infomute',
6- date = '2011/06/05',
7- description = '',
8-})
9-module('luatexja.infomute', package.seeall)
10-local err, warn, info, log = luatexbase.errwarinf(_NAME)
11-
12---------------------
13---! luatexbase.module_info() で特定のモジュールの情報出力だけ
14---! 抑止したい.
15-
16-local org_texio = texio
17-local patch_applied = false
18-local info_mute = {}
19-
20-local function pick_module_name(line)
21- local mod
22- if line:sub(1, 7) == "Module " then
23- local s, e = line:find(" ", 8, true)
24- if s then mod = line:sub(8, s - 1) end
25- elseif line:sub(1, 1) == "(" then
26- local s, e = line:find(")", 2, true)
27- if s then mod = line:sub(2, s - 1) end
28- end
29- return mod
30-end
31-
32-local function patched_write_nl(line, ...)
33- local mod = pick_module_name(line)
34- if not (mod and info_mute[mod]) then
35- org_texio.write_nl(line, ...)
36- end
37-end
38-
39-local new_texio = setmetatable({ write_nl = patched_write_nl },
40- { __index = org_texio })
41-local org_fenv = getfenv(luatexbase.module_info)
42-
43-local function apply_patch()
44- setfenv(luatexbase.module_info,
45- setmetatable({ texio = new_texio }, { __index = org_fenv }))
46- patch_applied = true
47-end
48-
49---! モジュール mod の情報出力を抑止する.
50-function add_mute(mod)
51- info_mute[mod] = true
52- if not patch_applied then
53- apply_patch()
54- end
55-end
56-
57--------------------- all done
58--- EOF
--- a/src/ltj-jfmglue.lua
+++ b/src/ltj-jfmglue.lua
@@ -3,11 +3,10 @@
33 --
44 luatexbase.provides_module({
55 name = 'luatexja.jfmglue',
6- date = '2017/05/05',
7- description = 'Insertion process of JFM glues and kanjiskip',
6+ date = '2018/02/18',
7+ description = 'Insertion process of JFM glues, [x]kanjiskip and others',
88 })
9-module('luatexja.jfmglue', package.seeall)
10-local err, warn, info, log = luatexbase .errwarinf(_NAME)
9+luatexja.jfmglue = luatexja.jfmglue or {}
1110
1211 luatexja.load_module('base'); local ltjb = luatexja.base
1312 luatexja.load_module('stack'); local ltjs = luatexja.stack
@@ -16,9 +15,8 @@ luatexja.load_module('direction'); local ltjd = luatexja.direction
1615 luatexja.load_module('setwidth'); local ltjw = luatexja.setwidth
1716 local pairs = pairs
1817
19-local nullfunc = function(n) return n end
20-local to_node = node.direct.tonode
21-local to_direct = node.direct.todirect
18+--local to_node = node.direct.tonode
19+--local to_direct = node.direct.todirect
2220
2321 local setfield = node.direct.setfield
2422 local setglue = luatexja.setglue
@@ -88,7 +86,7 @@ local list_dir
8886 local capsule_glyph
8987 local tex_dir
9088 local attr_ablshift
91-local set_np_xspc_jachar
89+local set_np_xspc_jachar, set_np_xspc_alchar
9290 local set_np_xspc_jachar_hbox
9391
9492 local ltjs_orig_char_table = ltjs.orig_char_table
@@ -147,7 +145,7 @@ end
147145 end
148146
149147 -- 「異なる JFM」の間の調整方法
150-diffmet_rule = math.two_paverage
148+luatexja.jfmglue.diffmet_rule = math.two_paverage
151149 function math.two_add(a,b) return a+b end
152150 function math.two_average(a,b) return (a+b)*0.5 end
153151 function math.two_paverage(a,b) return (a+b)/2 end
@@ -165,6 +163,7 @@ local non_ihb_flag -- JFM グルー挿入抑止用 flag
165163 -------------------- hlist 内の文字の検索
166164
167165 local first_char, last_char, find_first_char
166+local check_box_high
168167 do
169168 local ltjd_glyph_from_packed = ltjd.glyph_from_packed
170169 local function check_box(box_ptr, box_end)
@@ -235,7 +234,7 @@ local function check_box(box_ptr, box_end)
235234 return found_visible_node
236235 end
237236
238-function check_box_high(Nx, box_ptr, box_end)
237+check_box_high = function (Nx, box_ptr, box_end)
239238 first_char = nil; last_char = nil; find_first_char = true
240239 if check_box(box_ptr, box_end) then
241240 local first_char = first_char
@@ -555,7 +554,7 @@ end
555554 -- We think that "Np is a Japanese character" if Np.met~=nil,
556555 -- "Np is an alphabetic character" if Np.pre~=nil,
557556 -- "Np is not a character" otherwise.
558-after_hlist = nil -- global
557+local after_hlist = nil -- global
559558 local after_alchar, extract_np
560559 do
561560 local PRE = luatexja.stack_table_index.PRE
@@ -601,6 +600,7 @@ do
601600
602601 -- 欧文文字のデータを取得
603602 local floor = math.floor
603+ local nullfunc = function(n) return n end
604604 function set_np_xspc_alchar(Nx, c,x, lig)
605605 if c~=-1 then
606606 local f = (lig ==1) and nullfunc or node_tail
@@ -648,7 +648,7 @@ end
648648
649649 -------------------- 最下層の処理
650650
651-luatexbase.create_callback('luatexja.adjust_jfmglue', 'simple', nullfunc)
651+luatexbase.create_callback('luatexja.adjust_jfmglue', 'simple', function(n) return n end)
652652
653653 -- change penalties (or create a new penalty, if needed)
654654 local function handle_penalty_normal(post, pre, g)
@@ -749,11 +749,11 @@ do
749749 local bk_ak = 2*id_kern - id_kern
750750
751751 local function blend_diffmet(b, a, rb, ra)
752- return round(diffmet_rule((1-rb)*b+rb*a, (1-ra)*b+ra*a))
752+ return round(luatexja.jfmglue.diffmet_rule((1-rb)*b+rb*a, (1-ra)*b+ra*a))
753753 end
754754 calc_ja_ja_aux = function (gb, ga, db, da)
755- if diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright
756- and diffmet_rule ~= math.two_paverage then
755+ if luatexja.jfmglue.diffmet_rule ~= math.two_pleft and diffmet_rule ~= math.two_pright
756+ and luatexja.jfmglue.diffmet_rule ~= math.two_paverage then
757757 db, da = 0, 1
758758 end
759759 if not gb then
@@ -808,6 +808,7 @@ end
808808 local null_skip_table = {0, 0, 0}
809809 -- get kanjiskip
810810 local get_kanjiskip, kanjiskip_jfm_flag
811+local get_kanjiskip_low
811812 local calc_ja_ja_glue
812813 do
813814 local KANJI_SKIP = luatexja.icflag_table.KANJI_SKIP
@@ -891,6 +892,7 @@ end
891892 -- get xkanjiskip
892893 local get_xkanjiskip, xkanjiskip_jfm_flag
893894 local get_xkanjiskip_normal, get_xkanjiskip_jfm
895+local get_xkanjiskip_low
894896 do
895897 local XKANJI_SKIP = luatexja.icflag_table.XKANJI_SKIP
896898 local XKANJI_SKIP_JFM = luatexja.icflag_table.XKANJI_SKIP_JFM
@@ -1063,6 +1065,7 @@ end
10631065
10641066
10651067 -- Nq が前側のクラスタとなることによる修正
1068+local adjust_nq
10661069 do
10671070 local adjust_nq_aux = {
10681071 [id_glyph] = function() after_alchar(Nq) end, -- after_alchar(Nq)
@@ -1075,7 +1078,7 @@ do
10751078 end,
10761079 }
10771080
1078- function adjust_nq()
1081+ adjust_nq=function()
10791082 local x = adjust_nq_aux[Nq.id]
10801083 if x then x() end
10811084 end
@@ -1213,7 +1216,7 @@ end
12131216 -------------------- 外部から呼ばれる関数
12141217
12151218 -- main interface
1216-function main(ahead, mode, dir)
1219+function luatexja.jfmglue.main(ahead, mode, dir)
12171220 if not ahead then return ahead end
12181221 --luatexja.ext_show_node_list(to_node(ahead ), '>B ', print)
12191222 --print()
@@ -1254,7 +1257,7 @@ do
12541257 local node_write = node.direct.write
12551258
12561259 -- \inhibitglue
1257- function create_inhibitglue_node()
1260+ function luatexja.jfmglue.create_inhibitglue_node()
12581261 local tn = node_new(id_whatsit, sid_user)
12591262 setfield(tn, 'user_id', IHB)
12601263 setfield(tn, 'type', 100)
@@ -1264,7 +1267,7 @@ do
12641267
12651268 -- Node for indicating beginning of a paragraph
12661269 -- (for ltjsclasses)
1267- function create_beginpar_node()
1270+ function luatexja.jfmglue.create_beginpar_node()
12681271 local tn = node_new(id_whatsit, sid_user)
12691272 setfield(tn, 'user_id', BPAR)
12701273 setfield(tn, 'type', 100)
@@ -1273,7 +1276,7 @@ do
12731276 end
12741277
12751278 -- Node for indicating a head/end of a box
1276- function create_boxbdd_node()
1279+ function luatexja.jfmglue.create_boxbdd_node()
12771280 local tn = node_new(id_whatsit, sid_user)
12781281 setfield(tn, 'user_id', BOXB)
12791282 setfield(tn, 'type', 100)
@@ -1336,3 +1339,6 @@ do
13361339 "luatexja.beginpar.np_info_after", 1)
13371340
13381341 end
1342+
1343+luatexja.jfmglue.after_hlist = after_hlist
1344+luatexja.jfmglue.check_box_high = check_box_high
\ No newline at end of file
--- a/src/ltj-jfont.lua
+++ b/src/ltj-jfont.lua
@@ -3,10 +3,9 @@
33 --
44 luatexbase.provides_module({
55 name = 'luatexja.jfont',
6- date = '2017/09/04',
6+ date = '2018/02/18',
77 description = 'Loader for Japanese fonts',
88 })
9-module('luatexja.jfont', package.seeall)
109
1110 luatexja.load_module('base'); local ltjb = luatexja.base
1211 luatexja.load_module('charrange'); local ltjc = luatexja.charrange
@@ -31,12 +30,14 @@ local id_glyph = node.id('glyph')
3130 local id_kern = node.id('kern')
3231 local cat_lp = luatexbase.catcodetables['latex-package']
3332 local FROM_JFM = luatexja.icflag_table.FROM_JFM
33+
34+luatexja.jfont = luatexja.jfont or {}
3435 ------------------------------------------------------------------------
3536 -- LOADING JFM
3637 ------------------------------------------------------------------------
3738
38-metrics={} -- this table stores all metric informations
39-font_metric_table={} -- [font number] -> jfm_name, jfm_var, size
39+local metrics={} -- this table stores all metric informations
40+local font_metric_table={} -- [font number] -> jfm_name, jfm_var, size
4041
4142 luatexbase.create_callback("luatexja.load_jfm", "data", function (ft, jn) return ft end)
4243
@@ -54,7 +55,7 @@ local function norm_val(a)
5455 end
5556 end
5657
57-function define_jfm(t)
58+function luatexja.jfont.define_jfm(t)
5859 local real_char -- Does current character class have the 'real' character?
5960 if t.dir~=jfm_dir then
6061 defjfm_res= nil; return
@@ -234,7 +235,8 @@ end
234235 luatexbase.create_callback("luatexja.find_char_class", "data",
235236 function (arg, fmtable, char)
236237 return 0
237- end)
238+ end)
239+local find_char_class
238240 do
239241 local start_time_measure = ltjb.start_time_measure
240242 local stop_time_measure = ltjb.stop_time_measure
@@ -287,7 +289,7 @@ do
287289
288290 -- EXT
289291 local utf8 = unicode.utf8
290- function jfontdefX(g, dir, csname)
292+ function luatexja.jfont.jfontdefX(g, dir, csname)
291293 jfm_dir, is_def_jfont = dir, true
292294 cstemp = csname:sub( (utf8.byte(csname,1,1) == tex.escapechar) and 2 or 1, -1)
293295 cstemp = cstemp:sub(1, ((cstemp:sub(-1,-1)==' ') and (cstemp:len()>=2)) and -2 or -1)
@@ -301,7 +303,7 @@ do
301303 -- EXT
302304 local identifiers = fonts.hashes.identifiers
303305 local provides_feature = luaotfload.aux.provides_feature
304- function jfontdefY()
306+ function luatexja.jfont.jfontdefY()
305307 local j = load_jfont_metric(jfm_dir)
306308 local fn = font.id(cstemp)
307309 local f = font_getfont(fn)
@@ -352,12 +354,12 @@ do
352354 local dir_tate = luatexja.dir_table.dir_tate
353355 local tex_get_attr = tex.getattribute
354356 -- PUBLIC function
355- function get_zw()
357+ function luatexja.jfont.get_zw()
356358 local a = font_metric_table[
357359 tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)]
358360 return a and a.zw or 0
359361 end
360- function get_zh()
362+ function luatexja.jfont.get_zh()
361363 local a = font_metric_table[
362364 tex_get_attr((get_dir_count()==dir_tate) and attr_curtfnt or attr_curjfnt)]
363365 return a and a.zw or 0
@@ -451,25 +453,25 @@ end
451453 do
452454 -- these function are called from ltj-latex.sty
453455 local fenc_list, kyenc_list, ktenc_list = {}, {}, {}
454- function add_fenc_list(enc) fenc_list[enc] = 'true ' end
455- function add_kyenc_list(enc) kyenc_list[enc] = 'true ' end
456- function add_ktenc_list(enc) ktenc_list[enc] = 'true ' end
457- function is_kyenc(enc)
456+ function luatexja.jfont.add_fenc_list(enc) fenc_list[enc] = 'true ' end
457+ function luatexja.jfont.add_kyenc_list(enc) kyenc_list[enc] = 'true ' end
458+ function luatexja.jfont.add_ktenc_list(enc) ktenc_list[enc] = 'true ' end
459+ function luatexja.jfont.is_kyenc(enc)
458460 tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (kyenc_list[enc] or 'false '))
459461 end
460- function is_ktenc(enc)
462+ function luatexja.jfont.is_ktenc(enc)
461463 tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (ktenc_list[enc] or 'false '))
462464 end
463- function is_kenc(enc)
465+ function luatexja.jfont.is_kenc(enc)
464466 tex.sprint(cat_lp, '\\let\\ifin@\\if'
465467 .. (kyenc_list[enc] or ktenc_list[enc] or 'false '))
466468 end
467469
468470 local kfam_list, Nkfam_list = {}, {}
469- function add_kfam(fam)
471+ function luatexja.jfont.add_kfam(fam)
470472 kfam_list[fam]=true
471473 end
472- function search_kfam(fam, use_fd)
474+ function luatexja.jfont.search_kfam(fam, use_fd)
473475 if kfam_list[fam] then
474476 tex.sprint(cat_lp, '\\let\\ifin@\\iftrue '); return
475477 elseif Nkfam_list[fam] then
@@ -491,20 +493,20 @@ do
491493 end
492494 end
493495 local ffam_list, Nffam_list = {}, {}
494- function is_ffam(fam)
496+ function luatexja.jfont.is_ffam(fam)
495497 tex.sprint(cat_lp, '\\let\\ifin@\\if' .. (ffam_list[fam] or 'false '))
496498 end
497- function add_ffam(fam)
499+ function luatexja.jfont.add_ffam(fam)
498500 ffam_list[fam]='true '
499501 end
500- function search_ffam_declared()
502+ function luatexja.jfont.search_ffam_declared()
501503 local s = ''
502504 for i,_ in pairs(fenc_list) do
503505 s = s .. '\\cdp@elt{' .. i .. '}'
504506 end
505507 tex.sprint(cat_lp, s)
506508 end
507- function search_ffam_fd(fam)
509+ function luatexja.jfont.search_ffam_fd(fam)
508510 if Nffam_list[fam] then
509511 tex.sprint(cat_lp, '\\let\\ifin@\\iffalse '); return
510512 else
@@ -521,14 +523,13 @@ end
521523 ------------------------------------------------------------------------
522524 -- ALTERNATE FONTS
523525 ------------------------------------------------------------------------
524-alt_font_table = {}
525-local alt_font_table = alt_font_table
526+local alt_font_table = {}
526527 local attr_curaltfnt = {}
527528 local ucs_out = 0x110000
528529
529530 ------ for TeX interface
530531 -- EXT
531-function set_alt_font(b,e,ind,bfnt)
532+function luatexja.jfont.set_alt_font(b,e,ind,bfnt)
532533 -- ind: 新フォント, bfnt: 基底フォント
533534 if b>e then b, e = e, b end
534535 if b*e<=0 then
@@ -562,7 +563,7 @@ function set_alt_font(b,e,ind,bfnt)
562563 end
563564
564565 -- EXT
565-function clear_alt_font(bfnt)
566+function luatexja.jfont.clear_alt_font(bfnt)
566567 if alt_font_table[bfnt] then
567568 local t = alt_font_table[bfnt]
568569 for i,_ in pairs(t) do t[i]=nil; end
@@ -570,7 +571,7 @@ function clear_alt_font(bfnt)
570571 end
571572
572573 ------ used in ltjp.suppress_hyphenate_ja callback
573-function replace_altfont(pf, pc)
574+function luatexja.jfont.replace_altfont(pf, pc)
574575 local a = alt_font_table[pf]
575576 return a and a[pc] or pf
576577 end
@@ -580,7 +581,7 @@ end
580581 local alt_font_table_latex = {}
581582
582583 -- EXT
583-function clear_alt_font_latex(bbase)
584+function luatexja.jfont.clear_alt_font_latex(bbase)
584585 local t = alt_font_table_latex[bbase]
585586 if t then
586587 for j,v in pairs(t) do t[j] = nil end
@@ -588,7 +589,7 @@ function clear_alt_font_latex(bbase)
588589 end
589590
590591 -- EXT
591-function set_alt_font_latex(b,e,ind,bbase)
592+function luatexja.jfont.set_alt_font_latex(b,e,ind,bbase)
592593 -- ind: Alt font の enc/fam/ser/shape, bbase: 基底フォントの enc/fam/ser/shape
593594 if b>e then b, e = e, b end
594595 if b*e<=0 then
@@ -630,17 +631,17 @@ do
630631 local alt_font_base, alt_font_base_num
631632 local aftl_base
632633 -- EXT
633- function does_alt_set(bbase)
634+ function luatexja.jfont.does_alt_set(bbase)
634635 aftl_base = alt_font_table_latex[bbase]
635636 tex.sprint(cat_lp, '\\if' .. (aftl_base and 'true' or 'false'))
636637 end
637638 -- EXT
638- function print_aftl_address()
639+ function luatexja.jfont.print_aftl_address()
639640 tex.sprint(cat_lp, ';ltjaltfont' .. tostring(aftl_base):sub(8))
640641 end
641642
642643 -- EXT
643- function output_alt_font_cmd(dir, bbase)
644+ function luatexja.jfont.output_alt_font_cmd(dir, bbase)
644645 alt_font_base = bbase
645646 if dir == 't' then
646647 alt_font_base_num = tex.getattribute(attr_curtfnt)
@@ -660,7 +661,7 @@ do
660661 end
661662
662663 -- EXT
663- function pickup_alt_font_a(size_str)
664+ function luatexja.jfont.pickup_alt_font_a(size_str)
664665 local t = alt_font_table_latex[alt_font_base]
665666 if t then
666667 for i,v in pairs(t) do
@@ -679,7 +680,7 @@ do
679680 end
680681
681682 -- EXT
682- function pickup_alt_font_b(afnt_num, afnt_base)
683+ function luatexja.jfont.pickup_alt_font_b(afnt_num, afnt_base)
683684 local t = alt_font_table[alt_font_base_num]
684685 local ac = font_getfont(afnt_num).characters
685686 if not t then t = {}; alt_font_table[alt_font_base_num] = t end
@@ -703,7 +704,7 @@ end
703704 -- 終了時に各種ノードを破棄
704705 ------------------------------------------------------------------------
705706 do
706- function cleanup_size_cache()
707+ function luatexja.jfont.cleanup_size_cache()
707708 --local gs, ke = 0, 0
708709 for _,n in pairs(metrics) do
709710 for i,t in pairs(n.size_cache) do
@@ -724,8 +725,8 @@ end
724725 ------------------------------------------------------------------------
725726 -- 追加のフォント情報
726727 ------------------------------------------------------------------------
727-font_extra_info = {}
728-local font_extra_info = font_extra_info -- key: fontnumber
728+local font_extra_info = {}
729+luatexja.jfont.font_extra_info= font_extra_info -- key: fontnumber
729730 local font_extra_basename = {} -- key: basename
730731
731732 local list_rotate_glyphs
@@ -1154,7 +1155,7 @@ do
11541155 end
11551156 end
11561157 -- EXT: italic correction
1157- function append_italic()
1158+ function luatexja.jfont.append_italic()
11581159 local p = to_direct(tex.nest[tex.nest.ptr].tail)
11591160 local TEMP = node_new(id_kern)
11601161 if p and getid(p)==id_glyph then
@@ -1181,3 +1182,7 @@ do
11811182 end
11821183 end
11831184
1185+luatexja.jfont.metrics = metrics
1186+luatexja.jfont.font_metric_table = font_metric_table
1187+luatexja.jfont.find_char_class = find_char_class
1188+
--- a/src/ltj-ruby.lua
+++ b/src/ltj-ruby.lua
@@ -3,13 +3,12 @@
33 --
44 luatexbase.provides_module({
55 name = 'luatexja.ruby',
6- date = '2017/05/05',
6+ date = '2018/02/18',
77 description = 'Ruby annotation',
88 })
9-module('luatexja.ruby', package.seeall)
10-local err, warn, info, log = luatexbase.errwarinf(_NAME)
11-
9+luatexja.ruby = {}
1210 luatexja.load_module('stack'); local ltjs = luatexja.stack
11+luatexja.load_module('base'); local ltjb = luatexja.base
1312
1413 local to_node = node.direct.tonode
1514 local to_direct = node.direct.todirect
@@ -74,7 +73,7 @@ local RUBY_POST = luatexja.userid_table.RUBY_POST
7473 ----------------------------------------------------------------
7574 do
7675 local getbox = node.direct.getbox
77- function cpbox() return node_copy(getbox(0)) end
76+ function luatexja.ruby.cpbox() return node_copy(getbox(0)) end
7877 end
7978
8079 ----------------------------------------------------------------
@@ -119,9 +118,9 @@ end
119118
120119
121120 -- 実行回数 + ルビ中身 から uniq_id を作る関数
122-old_break_info = {} -- public, 前 run 時の分割情報
121+local old_break_info = {} -- public, 前 run 時の分割情報
123122 local cache_handle
124-function read_old_break_info()
123+function luatexja.ruby.read_old_break_info()
125124 if tex.jobname then
126125 local fname = tex.jobname .. '.ltjruby'
127126 local real_file = kpse.find_file(fname)
@@ -269,11 +268,11 @@ local function texiface_low(rst, rtlr, rtlp)
269268 end
270269
271270 -- rst: table
272-function texiface(rst, rtlr, rtlp)
271+function luatexja.ruby.texiface(rst, rtlr, rtlp)
273272 if #rtlr ~= #rtlp then
274273 for i=1, #rtlr do node_free(rtlr[i]) end
275274 for i=1, #rtlp do node_free(rtlp[i]) end
276- luatexja.base.package_error('luatexja-ruby',
275+ ltjb.package_error('luatexja-ruby',
277276 'Group count mismatch between the ruby and\n' ..
278277 'the body (' .. #rtlr .. ' != ' .. #rtlp .. ').',
279278 '')
Show on old repository browser