summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhaled Hosny <khaledhosny@eglug.org>2010-01-19 13:19:49 +0200
committerKhaled Hosny <khaledhosny@eglug.org>2010-01-19 13:26:25 +0200
commit762cbf30d44d19b780275eeb54dc15fd2d1f7fee (patch)
treecf0c3d5506686ce852ae914f47e50f6e9a37cf64
parentaa5432bf7c1f4e6fd3381e9a76d6f258231cd1ae (diff)
downloadluaotfload-762cbf30d44d19b780275eeb54dc15fd2d1f7fee.tar.gz
Allow arbitrary font styles
If the font option isn't a known option, we assume it is a font style and pass it as is, this allows for definitions like: \font\dejavuextralight={DejaVu Sans/Extralight:+liga} at 10pt
-rw-r--r--otfl-font-dum.lua14
-rw-r--r--otfl-font-xtx.lua2
2 files changed, 10 insertions, 6 deletions
diff --git a/otfl-font-dum.lua b/otfl-font-dum.lua
index 0859f6d..d1d1b0a 100644
--- a/otfl-font-dum.lua
+++ b/otfl-font-dum.lua
@@ -77,12 +77,14 @@ function fonts.names.resolve(name,sub,style)
local psname = psnames and psnames[condensed]
if family then
local style = style or "regular"
- family = family[style]
- local fontname, filename, subfont = family, family[1], family[2]
- if subfont then
- return filename, subfont
- else
- return filename, false
+ local found = family[style]
+ if found then
+ local fontname, filename, subfont = found, found[1], found[2]
+ if subfont then
+ return filename, subfont
+ else
+ return filename, false
+ end
end
elseif psname then
local fontname, filename, subfont = psname, psname[1], psname[2]
diff --git a/otfl-font-xtx.lua b/otfl-font-xtx.lua
index b285d0b..502163c 100644
--- a/otfl-font-xtx.lua
+++ b/otfl-font-xtx.lua
@@ -74,6 +74,8 @@ local function isstyle(s)
elseif v:find("^s=") then
list.optsize = v:split("=")[2]
elseif v == "aat" or v == "icu" then
+ else
+ list.style = v:gsub("[^%a%d]", "")
end
end
end