summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua')
-rw-r--r--Master/texmf-dist/tex/luatex/luatexja/ltj-jfont.lua25
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()