OSDN Git Service

small fix
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 10 Nov 2019 11:30:52 +0000 (20:30 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sun, 10 Nov 2019 11:30:52 +0000 (20:30 +0900)
src/ltj-base.lua
src/ltj-lotf_aux.lua
src/patches/lltjp-fontspec.sty

index a069215..3f4a0ba 100644 (file)
@@ -185,7 +185,7 @@ end
 -- not used in current LuaTeX-ja
 do
 --! ixbase.counter と同じ
-  counter = {}
+  local counter = {}
   local mt_counter = {}
   setmetatable(counter, mt_counter)
 
@@ -373,10 +373,10 @@ function ltjb.add_to_callback(name,fun,description,priority)
        "resetting exclusive callback: " .. name)
        luatexbase.reset_callback(name)
     end
-    local saved_callback={},ff,dd
+    local saved_callback={}
     for k,v in ipairs(luatexbase.callback_descriptions(name)) do
        if k >= priority then
-           ff,dd= luatexbase.remove_from_callback(name, v)
+           local ff,dd = luatexbase.remove_from_callback(name, v)
            saved_callback[#saved_callback+1]={ff,dd}
        end
     end
index 92ffa72..ca829d7 100644 (file)
@@ -49,14 +49,18 @@ end
 local function get_asc_des(id)
   local t, v = getfont(id), font_metric_table[id]
   local a, d
-  if t and t.shared then
+  if t and t.shared and t.shared.rawdata then
     local u = t.units
     local t2 = t.shared.rawdata.metadata
     if t2 then
       a, d = t2.ascender and t2.ascender/u, t2.descender and -t2.descender/u
     end
-  -- HARF h_extents() returns "too large" value...?
-  -- rawdata.metadata.horizontalmetrics is same
+  elseif t.hb then -- HARF
+    local hbfont, u = t.hb.shared.font, t.hb.shared.upem
+    local h = hbfont:get_h_extents()
+    if h and u then 
+       a, d = h.ascender and h.ascender/u, h.descender and -h.descender/u
+    end
   end
   v.ascender, v.descender =  (a or 0.88)*t.size, (d or 0.12)*t.size
 end
index c58ac1c..9f63075 100644 (file)
@@ -1,5 +1,5 @@
 %
-% lltjp-fontspec.sty 2018-08-24
+% lltjp-fontspec.sty 2019-10-21
 %
 
 \NeedsTeXFormat{LaTeX2e}
 \fi
 
 %%%%%%%% fontspec v2.5c overwrites \rmfamily etc. in \setmainfont
-\@ifpackagelater{fontspec}{2018/07/29}{ %% 2.6h or later
+\@ifpackagelater{fontspec}{2019/10/19}{ %% 2.7d or later
+\cs_set:Nn \__fontspec_main_setmainfont:nn
+  {
+    \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2}
+    \tl_set_eq:NN \rmdefault \l__fontspec_rmfamily_family_tl
+    \use:x
+      {
+        \exp_not:n { \DeclareRobustCommand \rmfamily }
+          {
+            \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
+            \exp_not:N \fontfamily { \exp_not:N \rmdefault }
+    \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\mcdefault\exp_not:N\fi%%%
+            \exp_not:N \selectfont
+          }
+      }
+    \str_if_eq:eeT {\familydefault} {\rmdefault}
+      { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
+    \__fontspec_setmainfont_hook:nn {#1} {#2}
+    \normalfont
+  }
+\cs_set:Nn \__fontspec_main_setsansfont:nn
+  {
+    \fontspec_set_family:Nnn \l__fontspec_sffamily_family_tl {#1} {#2}
+    \tl_set_eq:NN \sfdefault \l__fontspec_sffamily_family_tl
+    \use:x
+      {
+        \exp_not:n { \DeclareRobustCommand \sffamily }
+          {
+            \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
+            \exp_not:N \fontfamily { \exp_not:N \sfdefault  }
+    \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\gtdefault\exp_not:N\fi%%%
+            \exp_not:N \selectfont
+          }
+      }
+    \str_if_eq:eeT {\familydefault} {\sfdefault}
+      { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
+    \__fontspec_setsansfont_hook:nn {#1} {#2}
+    \normalfont
+  }
+\cs_set:Nn \__fontspec_main_setmonofont:nn
+  {
+    \fontspec_set_family:Nnn \l__fontspec_ttfamily_family_tl {#1} {#2}
+    \tl_set_eq:NN \ttdefault \l__fontspec_ttfamily_family_tl
+    \use:x
+      {
+        \exp_not:n { \DeclareRobustCommand \ttfamily }
+          {
+            \exp_not:N \fontencoding { \g__fontspec_nfss_enc_tl }
+            \exp_not:N \fontfamily {  \exp_not:N \ttdefault }
+    \exp_not:N\if@ltj@match@family\exp_not:N\kanjifamily\exp_not:N\jttdefault\exp_not:N\fi%%%
+            \exp_not:N \selectfont
+          }
+      }
+    \str_if_eq:eeT {\familydefault} {\ttdefault}
+      { \tl_set_eq:NN \encodingdefault \g__fontspec_nfss_enc_tl }
+    \__fontspec_setmonofont_hook:nn {#1} {#2}
+    \normalfont
+  }
+}{\@ifpackagelater{fontspec}{2018/07/29}{ %% 2.6h <= and <= 2.7c
 \cs_set:Nn \__fontspec_main_setmainfont:nn
   {
     \fontspec_set_family:Nnn \l__fontspec_rmfamily_family_tl {#1} {#2}
   \normalfont
   \ignorespaces
  }
-}
+}}
 
 \cs_set:Nn \fontspec_visible_space:
  {