diff options
| author | Khaled Hosny <khaledhosny@eglug.org> | 2010-01-25 15:08:31 +0200 | 
|---|---|---|
| committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-01-28 15:41:02 +0200 | 
| commit | b8cc1d86abe249c56168f32dd16e020a57aaf02e (patch) | |
| tree | ec8f046602715c56d348d7ef002b3cc244db84cd /luaotfload-fonts.lua | |
| parent | 563425e120af64b9596d5c88b88bd29a4ffab067 (diff) | |
| download | luaotfload-b8cc1d86abe249c56168f32dd16e020a57aaf02e.tar.gz | |
Fix LM style name issue
According to OpenType spec, size feature can define a common style name
for different optical sizes of the same font, now we use it.
See http://www.microsoft.com/typography/otspec/features_pt.htm#size
Diffstat (limited to 'luaotfload-fonts.lua')
| -rw-r--r-- | luaotfload-fonts.lua | 17 | 
1 files changed, 9 insertions, 8 deletions
| diff --git a/luaotfload-fonts.lua b/luaotfload-fonts.lua index 390ff4c..aa0d02f 100644 --- a/luaotfload-fonts.lua +++ b/luaotfload-fonts.lua @@ -32,6 +32,14 @@ function fontloader.fullinfo(...)      local f = fontloader.open(...)      local m = f and fontloader.to_table(f)      fontloader.close(f) +    -- see http://www.microsoft.com/typography/OTSPEC/features_pt.htm#size +    if m.fontstyle_name then +        for _,v in pairs(m.fontstyle_name) do +            if v.lang == 1033 then +                t.fontstyle_name = v.name +            end +        end +    end      if m.names then          for _,v in pairs(m.names) do              if v.lang == "English (US)" then @@ -39,19 +47,12 @@ function fontloader.fullinfo(...)                      -- see http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html                      fullname       = v.names.compatfull     or v.names.fullname, -- 18, 4                      family         = v.names.preffamilyname or v.names.family,   -- 17, 1 -                    subfamily      = v.names.prefmodifiers  or v.names.subfamily,-- 16, 2 +                    subfamily      = t.fontstyle_name       or v.names.prefmodifiers  or v.names.subfamily, -- opt. style, 16, 2                      psname         = v.names.postscriptname --or t.fontname                  }              end          end      end -    if m.fontstyle_name then -        for _,v in pairs(m.fontstyle_name) do -            if v.lang == 1033 then -                t.fontstyle_name = v.name -            end -        end -    end      if m.pfminfo then          t.pfminfo = {              weight = m.pfminfo.weight, | 
