OSDN Git Service

Negative value of \ltj@curtfont means "Only JFM is loaded to calculate the baseline...
[luatex-ja/luatexja.git] / src / ltj-jfont.lua
index bc4362d..aa69e73 100644 (file)
@@ -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
 
@@ -459,8 +463,11 @@ do
       local spec, size = match(spec,'(.+)%s+at%s*([%.%w]*)')
       size = sp(size); extract_metric(spec)
       jfm_dir = 'tate'
-      local i = load_jfont_metric(); update_jfm_cache(i, size)
-      luatexja.jfont.tfont_jfmonly_result = metrics[i].size_cache[size]
+      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, 
+        '\\noexpand\\ltj@curtfnt' .. tostring(-j) .. '\\relax')
    end
    luatexja.jfont.load_tfont_jfmonly = load_tfont_jfmonly
 end
@@ -651,7 +658,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()