%D \module %D [ file=m-oldotf, %D version=2015.07.08, %D title=\CONTEXT\ Extra Modules, %D subtitle=Traditional OTF Loader, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA ADE \& \CONTEXT\ Development Team}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. \unprotect \startluacode local files = { "font-otf", "font-otb", "font-inj", -- "font-ota", "font-otn", "font-otd", "font-otp", "font-otc", "font-oth", "font-odv", "font-one", "font-map", "font-fbk", "font-gds", } local report = logs.reporter("oldotf") local findfile = resolvers.findfile local addsuffix = file.addsuffix report() report("using traditional font loader code") report() for i=1,#files do local foundfile = findfile(addsuffix(files[i],"lua")) if foundfile and foundfile ~= "" then report("loading %a",foundfile) dofile(foundfile) end end report() -- needed for testing: local nuts = nodes.nuts local copy_node = nuts.copy local kern = nuts.pool.register(nuts.pool.kern()) local setfield = nuts.setfield nuts.setattr(kern,attributes.private('fontkern'),1) -- we can have several, attributes are shared nodes.injections.installnewkern(function(k) local c = copy_node(kern) setfield(c,"kern",k) return c end) directives.register("fonts.injections.fontkern", function(v) setfield(kern,"subtype",v and 0 or 1) end) local fonts = fonts local handlers = fonts.handlers local otf = handlers.otf -- brrr local afm = handlers.afm -- brrr local getters = fonts.getters getters.kern .opentype = otf.getkern getters.substitution.opentype = otf.getsubstitution getters.alternate .opentype = otf.getalternate getters.multiple .opentype = otf.getmultiple \stopluacode \protect \endinput