if not modules then modules = { } end modules ['font-enc'] = { version = 1.001, comment = "companion to font-ini.mkiv", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files" } -- this module is obsolete local match, gmatch, gsub = string.match, string.gmatch, string.gsub local setmetatableindex = table.setmetatableindex --[[ldx--
Because encodings are going to disappear, we don't bother defining them in tables. But we may do so some day, for consistency.
--ldx]]-- local report_encoding = logs.reporter("fonts","encoding") local encodings = { } fonts.encodings = encodings encodings.version = 1.03 encodings.cache = containers.define("fonts", "enc", fonts.encodings.version, true) encodings.known = utilities.storage.allocate { -- sort of obsolete texnansi = true, ec = true, qx = true, t5 = true, t2a = true, t2b = true, t2c = true, unicode = true, } function encodings.is_known(encoding) return containers.is_valid(encodings.cache,encoding) end --[[ldx--An encoding file looks like this:
Beware! The generic encoding files don't always apply to the ones that
ship with fonts. This has to do with the fact that names follow (slightly)
different standards. However, the fonts where this applies to (for instance
Latin Modern or
There is no unicode encoding but for practical purposes we define one.
--ldx]]-- -- maybe make this a function: function encodings.make_unicode_vector() local vector, hash = { }, { } for code, v in next, characters.data do local name = v.adobename if name then vector[code] = name hash[name] = code else vector[code] = '.notdef' end end for name, code in next, characters.synonyms do vector[code], hash[name] = name, code end return containers.write(encodings.cache, 'unicode', { name='unicode', tag='unicode', vector=vector, hash=hash }) end if not encodings.agl then -- We delay delay loading this rather big vector that is only needed when a -- font is loaded for caching. Once we're further along the route we can also -- delay it in the generic version (which doesn't use this file). encodings.agl = { } setmetatableindex(encodings.agl, function(t,k) report_encoding("loading (extended) adobe glyph list") dofile(resolvers.findfile("font-agl.lua")) return rawget(encodings.agl,k) end) end