diff options
| author | Khaled Hosny <khaledhosny@eglug.org> | 2010-05-31 19:37:50 +0300 | 
|---|---|---|
| committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-05-31 19:54:23 +0300 | 
| commit | f7f60c1f72bb8c9cd64372c313e05cf46a570354 (patch) | |
| tree | 53a8e34c20cbb75c6f1466da35e8e875e73121a6 | |
| parent | 70c20cda5b485931cb5105aa996d7b98197a2197 (diff) | |
| download | luaotfload-f7f60c1f72bb8c9cd64372c313e05cf46a570354.tar.gz | |
Handle bypassing TFM fonts properly
We now detect tfm fonts much earlier and force a file based lookup,
thus bypassing |names.resolve()| completely.
So, now |\font\tenrm=cmr10| is exactly the same as |\font\tenrm=file:cmr10|
as long as there is a tfm/ofm file named cmr10.
| -rw-r--r-- | otfl-font-nms.lua | 18 | ||||
| -rw-r--r-- | otfl-font-xtx.lua | 4 | ||||
| -rw-r--r-- | tests/tfmofm.ltx | 6 | 
3 files changed, 10 insertions, 18 deletions
| diff --git a/otfl-font-nms.lua b/otfl-font-nms.lua index 0cad6b1..212a667 100644 --- a/otfl-font-nms.lua +++ b/otfl-font-nms.lua @@ -128,24 +128,6 @@ local loaded   = false  local reloaded = false  function names.resolve(specification) -    local tfm   = resolvers.find_file(specification.name, "tfm") -    local ext = lower(file.extname(specification.name)) - -    if tfm then -        -- is a tfm font, skip names database -        if ext == 'tfm' then -            return specification.name, false -        else -            return specification.name..'.tfm', false -        end -    elseif resolvers.find_file(specification.name, "ofm") then -        if ext == 'ofm' then -            return specification.name, false -        else -            return specification.name..'.ofm', false -        end -    end -      local name  = sanitize(specification.name)      local style = sanitize(specification.style) or "regular" diff --git a/otfl-font-xtx.lua b/otfl-font-xtx.lua index 0fa2d69..236997c 100644 --- a/otfl-font-xtx.lua +++ b/otfl-font-xtx.lua @@ -203,6 +203,10 @@ function fonts.define.specify.colonized(specification) -- xetex mode          list.optsize = nil      end      if list.name then +        if resolvers.find_file(list.name, "ofm") then +            list.lookup = "file" +        end +          specification.name = list.name          list.name = nil      end diff --git a/tests/tfmofm.ltx b/tests/tfmofm.ltx new file mode 100644 index 0000000..0f9f904 --- /dev/null +++ b/tests/tfmofm.ltx @@ -0,0 +1,6 @@ +\documentclass{article} +\usepackage{luaotfload} + +\begin{document} +Hello \(1+1=\sqrt{4}\) +\end{document} | 
