diff options
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua')
-rw-r--r-- | Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua index 372b39784d2..76ec21262a2 100644 --- a/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua +++ b/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua @@ -3,7 +3,7 @@ -- luatexbase.provides_module({ name = 'luatexja.jfont', - date = '2018/11/01', + date = '2018/12/15', description = 'Loader for Japanese fonts', }) @@ -198,8 +198,9 @@ do return new else return nil end end + local size_cache_num = 1 update_jfm_cache = function (j,sz) - if metrics[j].size_cache[sz] then return end + if metrics[j].size_cache[sz] then return metrics[j].size_cache[sz].index end local t = {} metrics[j].size_cache[sz] = t t.chars = metrics[j].chars @@ -233,6 +234,9 @@ do t.zw = round(metrics[j].zw*sz) t.zh = round(metrics[j].zh*sz) t.size = sz + size_cache_num = size_cache_num + 1 + t.index = size_cache_num + return size_cache_num end end @@ -267,10 +271,11 @@ end -- LOADING JAPANESE FONTS ------------------------------------------------------------------------ +local load_jfont_metric do local cstemp local global_flag -- true if \globaljfont, false if \jfont - local function load_jfont_metric() + load_jfont_metric = function() if jfm_file_name=='' then ltjb.package_error('luatexja', 'no JFM specified', @@ -452,6 +457,18 @@ do luatexbase.create_callback('luatexja.define_font', 'simple', function (n) return n end) otfl_fdr= luatexbase.remove_from_callback('define_font', 'luaotfload.define_font') luatexbase.add_to_callback('define_font',luatexja.font_callback,"luatexja.font_callback", 1) + + local match, sp = string.match, tex.sp + local function load_jfmonly(spec, dir) + local spec, size = match(spec,'(.+)%s+at%s*([%.%w]*)') + size = sp(size); extract_metric(spec) + jfm_dir = dir + local i = load_jfont_metric() + local j = -update_jfm_cache(i, size) + font_metric_table[j]=metrics[i].size_cache[s] + tex.sprint(cat_lp, '\\ltj@cur' .. (dir=='yoko' and 'j' or 't') .. 'fnt' .. tostring(j) .. '\\relax') + end + luatexja.jfont.load_jfmonly = load_jfmonly end ------------------------------------------------------------------------ @@ -640,7 +657,7 @@ do -- EXT function luatexja.jfont.does_alt_set(bbase) aftl_base = alt_font_table_latex[bbase] - tex.sprint(cat_lp, '\\if' .. (aftl_base and 'true' or 'false')) + tex.sprint(cat_lp, aftl_base and '\\@firstofone' or '\\@gobble') end -- EXT function luatexja.jfont.print_aftl_address() |