diff options
author | Elie Roux <elie.roux@telecom-bretagne.eu> | 2009-04-16 15:54:55 +0200 |
---|---|---|
committer | Elie Roux <elie.roux@telecom-bretagne.eu> | 2009-04-16 15:54:55 +0200 |
commit | fed311d67f0258a26530e04c43acf3d0261a25ce (patch) | |
tree | d0f5a332f65e0ed66e4f4c542f7b57ca4e80e8cb /luaotfload.lua | |
parent | 74fe1c58a90d884f227a7354181633c0452ac0f9 (diff) | |
download | luaotfload-fed311d67f0258a26530e04c43acf3d0261a25ce.tar.gz |
making a dtx for luaotfload, with documentation
Diffstat (limited to 'luaotfload.lua')
-rw-r--r-- | luaotfload.lua | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/luaotfload.lua b/luaotfload.lua deleted file mode 100644 index 21aff95..0000000 --- a/luaotfload.lua +++ /dev/null @@ -1,148 +0,0 @@ -luaotfload = { } - -luaotfload.module = { - name = "luaotfload", - version = 1.001, - date = "2009/04/08", - description = "ConTeXt font loading system.", - author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", - copyright = "PRAGMA ADE / ConTeXt Development Team", - license = "see context related readme files" -} - -luatextra.provides_module(luaotfload.module) - -function luaotfload.loadmodule(name) - local foundname = kpse.find_file('otfl-'..name,"tex") - if not foundname then - luatextra.module_error('luaotfload', string.format('file otfl-%s not found.', name)) - return - end - dofile(foundname) -end - --- The following functions are made to map ConTeXt functions to luaextra functions. - -string.strip = string.stripspaces - -local splitters_s, splitters_m = { }, { } - -function lpeg.splitat(separator,single) - local splitter = (single and splitters_s[separator]) or splitters_m[separator] - if not splitter then - separator = lpeg.P(separator) - if single then - local other, any = lpeg.C((1 - separator)^0), lpeg.P(1) - splitter = other * (separator * lpeg.C(any^0) + "") - splitters_s[separator] = splitter - else - local other = lpeg.C((1 - separator)^0) - splitter = other * (separator * other)^0 - splitters_m[separator] = splitter - end - end - return splitter -end - -file = fpath -file.extname = fpath.suffix - -function table.compact(t) - if t then - for k,v in next, t do - if not next(v) then - t[k] = nil - end - end - end -end - -function table.sortedhashkeys(tab) -- fast one - local srt = { } - for key,_ in next, tab do - srt[#srt+1] = key - end - table.sort(srt) - return srt -end - --- The following modules contain code that is either not used --- at all outside ConTeXt or will fail when enabled due to --- lack of other modules. - --- First we load a few helper modules. This is about the miminum --- needed to let the font modules do theuir work. - -luaotfload.loadmodule('luat-dum.lua') -- not used in context at all -luaotfload.loadmodule('luat-con.lua') -- maybe some day we don't need this one - --- We do need some basic node support although the following --- modules contain a little bit of code that is not used. It's --- not worth weeding. - -luaotfload.loadmodule('node-ini.lua') - --- function to set the good attribute numbers, they are not arbitrary values --- between 127 and 255 like in the ConTeXt base code - -function attributes.private(name) - local number = tex.attributenumber['otfl@'..name] - if not number then - luatextra.module_error('luaotfload', string.format('asking for attribute %s, but not declared. Please report to the maintainer of luaotfload.', name)) - end - return number -end - -luaotfload.loadmodule('node-inj.lua') -- will be replaced (luatex > .50) -luaotfload.loadmodule('node-fnt.lua') -luaotfload.loadmodule('node-dum.lua') - --- Now come the font modules that deal with traditional TeX fonts --- as well as open type fonts. We don't load the afm related code --- from font-enc.lua and font-afm.lua as only ConTeXt deals with --- it. --- --- The font database file (if used at all) must be put someplace --- visible for kpse and is not shared with ConTeXt. The mtx-fonts --- script can be used to genate this file (using the --names --- option). - -luaotfload.loadmodule('font-ini.lua') -luaotfload.loadmodule('font-tfm.lua') -- will be split (we may need font-log) ---luaotfload.loadmodule('font-ott.lua') -- might be split -luaotfload.loadmodule('font-otf.lua') -luaotfload.loadmodule('font-otb.lua') -luaotfload.loadmodule('font-cid.lua') -luaotfload.loadmodule('font-otn.lua') -luaotfload.loadmodule('font-ota.lua') -- might be split -luaotfload.loadmodule('font-otc.lua') -do - local temp = callback.register - callback.register = function (...) - return - end - luaotfload.loadmodule('font-def.lua') - callback.register = temp -end -luaotfload.loadmodule('font-xtx.lua') -luaotfload.loadmodule('font-dum.lua') - --- small patch -fonts.enc.known = {} - -function luaotfload.register_callbacks() - callback.add('ligaturing', nodes.simple_font_dummy, 'luaotfload.ligaturing') - callback.add('kerning', nodes.simple_font_dummy, 'luaotfload.kerning') - callback.add('pre_linebreak_filter', nodes.simple_font_handler, 'luaotfload.pre_linebreak_filter') - callback.add('hpack_filter', nodes.simple_font_handler, 'luaotfload.hpack_filter') - callback.reset('define_font') - callback.add('define_font' , fonts.define.read, 'luaotfload.define_font', 1) -end - -function luaotfload.unregister_callbacks() - callback.remove('ligaturing', 'luaotfload.ligaturing') - callback.remove('kerning', 'luaotfload.kerning') - callback.remove('pre_linebreak_filter', 'luaotfload.pre_linebreak_filter') - callback.remove('hpack_filter', 'luaotfload.hpack_filter') - callback.remove('define_font', 'luaotfload.define_font') -end |