From 422263516bb273977c8dbc9a038868d6a0f8a6de Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Wed, 10 Apr 2013 10:41:12 +0200 Subject: description of loading procedure --- luaotfload-deferred.lua | 14 ++++++++++---- luaotfload.lua | 51 +++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 57 insertions(+), 8 deletions(-) diff --git a/luaotfload-deferred.lua b/luaotfload-deferred.lua index 2a5880b..a3026c9 100644 --- a/luaotfload-deferred.lua +++ b/luaotfload-deferred.lua @@ -1,8 +1,12 @@ --- TODO integrate into luaotfload.dtx --- this part is loaded after luatexbase -luaotfload.loadmodule("lib-dir.lua") -- required by font-nms; will change with lualibs update -luaotfload.loadmodule("font-nms.lua") -luaotfload.loadmodule("font-clr.lua") +local loadmodule = luaotfload.loadmodule + +loadmodule("lib-dir.lua") -- required by font-nms; will change with lualibs update +loadmodule("font-nms.lua") +loadmodule("font-clr.lua") +--loadmodule("font-ovr.lua") +loadmodule("font-ltx.lua") luatexbase.create_callback("luaotfload.patch_font", "simple", function() end) @@ -112,5 +116,7 @@ end --end --luatexbase.add_to_callback("luaotfload.patch_font", set_sscale_diments, "unicodemath.set_sscale_diments") --- + +-- vim:tw=71:sw=2:ts=2:expandtab + -- End of File `luaotfload.lua'. diff --git a/luaotfload.lua b/luaotfload.lua index a73847c..5550c79 100644 --- a/luaotfload.lua +++ b/luaotfload.lua @@ -29,6 +29,8 @@ luaotfload.module = { license = "CC0" } +local fl_prefix = "otfl" -- “luatex” for luatex-plain + --- these will be overloaded later by luatexbase local error = function(...) print("err", string.format(...)) end local log = function(...) print("log", string.format(...)) end @@ -41,9 +43,8 @@ if tex.luatexversion < luatex_version then tex.luatexversion/100, luatex_version /100) end -function luaotfload.loadmodule(name, prefix) - local prefix = prefix or "otfl" - local tofind = prefix .."-"..name +local loadmodule = function (name) + local tofind = fl_prefix .."-"..name local found = kpse.find_file(tofind,"tex") if found then log("loading file %s.", found) @@ -53,6 +54,7 @@ function luaotfload.loadmodule(name, prefix) error("file %s not found.", tofind) end end +luaotfload.loadmodule = loadmodule --- required in deferred code --[[-- keep --]] --- from Hans (all merged): @@ -96,15 +98,56 @@ end that’s it, go thank Hans! --]]-- +--[[doc +We treat the fontloader as a black box so behavior is consistent +between formats. +The wrapper file is |otfl-fonts.lua| which we imported from +\LUATEX-Plain. +It has roughly two purposes: +(\textit{1}) insert the functionality required for fontloader, and +(\textit{2}) put it in place via the respective callbacks. +How the first step is executed depends on the presence on the +\emph{merged font loader code}. +In \textsf{luaotfload} this is contained in the file +|otfl-fonts-merged.lua|. +If this file cannot be found, the original libraries from \CONTEXT of +which the merged code was composed are loaded instead. + +Hans provides two global tables to control the font loader: +\begin{tabular}{ll} + \texttt{generic\textunderscore context} & + encapsulation mechanism, callback functions + \\ + \texttt{non\textunderscore generic\textunderscore context} & + customized code insertion + \\ +\end{tabular} +With \verb|non_generic_context| we can tailor the font loader insertion +to our file naming habits (key \verb|load_before|). +Additionally, \verb|skip_loading| can be unset to force loading of +the original libraries as though the merged code was absent. +Another key, \verb|load_after| is called at the time when the font +loader is actually inserted. +In combination with the option \verb|no_callbacks_yet| in +\verb|generic_context|, we can insert our own, +\textsf{luatexbase}-style callback handling here. +--doc]]-- +if not _G. generic_context then _G. generic_context = { } end +if not _G.non_generic_context then _G.non_generic_context = { } end + +generic_context.no_callbacks_yet = true + _G.non_generic_context = { luatex_fonts = { load_before = "otfl-fonts-merged.lua", -- load_after = nil, --- TODO, this is meant for callbacks skip_loading = true, }} -luaotfload.loadmodule("fonts.lua") +loadmodule("fonts.lua") --- now load luatexbase (from the TEX end) --- then continue in luaotfload-deferred.lua +-- vim:tw=71:sw=2:ts=2:expandtab + -- End of File `luaotfload.lua'. -- cgit v1.2.3