diff options
author | Elie Roux <eroux@dedibox.ebzao.info> | 2010-01-21 11:01:18 +0100 |
---|---|---|
committer | Elie Roux <eroux@dedibox.ebzao.info> | 2010-01-21 11:01:18 +0100 |
commit | f701c79f37af87fa87270b57953e8d8618e43bf8 (patch) | |
tree | c208e83542e7e8acba8468eac3323aecab2c6735 | |
parent | b45eb83d34bd869db6d8cd1590ed1b84d7281025 (diff) | |
download | luaotfload-f701c79f37af87fa87270b57953e8d8618e43bf8.tar.gz |
Improvements in the style guessing system
-rw-r--r-- | luaotfload-fonts.lua | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/luaotfload-fonts.lua b/luaotfload-fonts.lua index 849d522..07b98d6 100644 --- a/luaotfload-fonts.lua +++ b/luaotfload-fonts.lua @@ -86,6 +86,8 @@ local function normalize_style(style, family) elseif style:find("bold") or style:find("heavy") or style:match("xb$") or style:match("bd$") or style:match("bb$") then s.weight = "bold" + elseif style:find("medium") or style:find("med") then + s.weight = "medium" elseif style:find("light") or style:find("narrow") then s.weight = "narrow" -- ? end @@ -95,6 +97,13 @@ local function normalize_style(style, family) if style:find("regular") or style:match("rg$") then s.regular = true end + if style:find("caption") then + s.size_type = 'caption' + elseif style:find("display") or style:find("disp") then + s.size_type = 'display' + elseif style:find("subhead") or style:find("subh") then + s.size_type = 'subhead' + end local size = tonumber(string.match(style, "%d+")) if size and size > 4 and size < 25 then s.size = size @@ -116,19 +125,21 @@ local function normalize_style(style, family) if not next(s) then return style -- or "regular ?" else - local result = "" + local result = nil if s.weight then result = s.weight + else + result = 'regular' end if s.italic then - result = result.."italic" - end - if not s.italic and not s.weight then - result = "regular" + result = result.."-italic" end if s.size then result = result.."-"..s.size end + if s.size_type then + result = result.."-"..s.size_type + end return result end end |