On 5/30/2015 11:50 AM, Élie Roux wrote:
Dear All,

An issue[0] was raised recently, from a user who had fonts installed
under Windows, recognized by his softwares but not LuaTeX (nor XeTeX).
Apparently[1] the fonts are installed through a mechanism documented by
MS[2] consisting in adding the font in the list of fonts in the Windows
Registry.

did the user update the font database

Lua has several modules allowing to read the registry, there's an entry
in the FAQ[3], and another module not listed in the FAQ[4].

As ConTeXt may also benefit from reading the registry (there's a ConTeXt
user in [2]), what do you think would be the best solution to access the
registry from LuaTeX? Should a module like lua-winreg be distributed (as
a dll) in TeXLive? Should it be built in LuaTeX?

such a dll would add yet another dependency (even worse: on an operating system)

personally i'd never rely on this as for long term stable processing it makes sense to know what font (file) you use and where it sits

anyway, a dll is not needed as one can do this:

local command = [[reg QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts"]]
local pattern = ".-[\n\r]+%s+(.-)%s%(([^%)]+)%)%s+REG_SZ%s+(%S+)%s+"

local function getnamesfromregistry()
    local data = os.resultof(command)
    local list = { }
    for name, format, filename in string.gmatch(data,pattern) do
        list[name] = filename
    end
    return list
end

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
    tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------

Reply via email to