diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | filegraph.dot | 2 | ||||
-rw-r--r-- | luaotfload-auxiliary.lua | 2 | ||||
-rw-r--r-- | luaotfload-override.lua | 50 | ||||
-rw-r--r-- | luaotfload-tool.rst | 2 | ||||
-rw-r--r-- | luaotfload.dtx | 8 | ||||
-rwxr-xr-x | mkglyphlist | 4 |
7 files changed, 60 insertions, 12 deletions
@@ -3,7 +3,7 @@ NAME = luaotfload DOC = $(NAME).pdf DTX = $(NAME).dtx -OTFL = $(wildcard luaotfload-*.lua) luaotfload-blacklist.cnf $(GLYPHS) +OTFL = $(wildcard luaotfload-*.lua) luaotfload-blacklist.cnf GLYPHSCRIPT = mkglyphlist GLYPHSOURCE = glyphlist.txt @@ -18,7 +18,7 @@ DOTPDF = $(GRAPH).pdf DOT = $(GRAPH).dot # Files grouped by generation mode -GLYPHS = font-age.lua +GLYPHS = luaotfload-glyphlist.lua GRAPHED = $(DOTPDF) MAN = $(MANPAGE) COMPILED = $(DOC) diff --git a/filegraph.dot b/filegraph.dot index 36e5764..8db137c 100644 --- a/filegraph.dot +++ b/filegraph.dot @@ -113,7 +113,7 @@ strict digraph luaotfload_files { //looks weird with circo ... fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", - label = "font-age.lua"] + label = "luaotfload-glyphlist.lua"] font_names [style = "filled,dashed", shape = rect, diff --git a/luaotfload-auxiliary.lua b/luaotfload-auxiliary.lua index 5de964d..2d459d0 100644 --- a/luaotfload-auxiliary.lua +++ b/luaotfload-auxiliary.lua @@ -64,7 +64,7 @@ local add_fontdata_fallbacks = function (fontdata) metadata = fontdata.shared.rawdata.metadata fontdata.units = fontparameters.units local resources = fontdata.resources - fontdata.size = fontparameters.size + fontdata.size = fontparameters.size * fontdata.units / 1000 --- for legacy fontspec.lua and unicode-math.lua fontdata.shared.otfdata = metadata fontdata.shared.otfdata.metadata = metadata --- brr, that’s meta indeed diff --git a/luaotfload-override.lua b/luaotfload-override.lua index 863187f..c047dad 100644 --- a/luaotfload-override.lua +++ b/luaotfload-override.lua @@ -63,7 +63,7 @@ end local level_ids = { common = 0, loading = 1, search = 2 } -logs.names_report = function (mode, lvl, ...) +local names_report = function (mode, lvl, ...) if type(lvl) == "string" then lvl = level_ids[lvl] end @@ -81,4 +81,52 @@ logs.names_report = function (mode, lvl, ...) end end +logs.names_report = names_report + +--[[doc-- + + Adobe Glyph List. + ------------------------------------------------------------------- + + Context provides a somewhat different font-age.lua from an unclear + origin. Unfortunately, the file name it reads from is hard-coded + in font-enc.lua, so we have to replace the entire table. + + This shouldn’t cause any complications. Due to its implementation + the glyph list will be loaded upon loading a OTF or TTF for the + first time during a TeX run. (If one sticks to TFM/OFM then it is + never read at all.) For this reason we can install a metatable that + looks up the file of our choosing and only falls back to the + Context one in case it cannot be found. + +--doc]]-- + +if next(fonts.encodings.agl) then + print(next, fonts.encodings.agl) + --- unnecessary because the file shouldn’t be loaded at this time + --- but we’re just making sure + fonts.encodings.agl = nil + collectgarbage"collect" +end + + +fonts.encodings.agl = { } + +setmetatable(fonts.encodings.agl, { __index = function (t, k) + if k == "unicodes" then + local glyphlist = resolvers.findfile"luaotfload-glyphlist.lua" + if glyphlist then + names_report("both", 0, "load", "loading the Adobe glyph list") + else + glyphlist = resolvers.findfile"font-age.lua" + names_report("both", 0, "load", "loading the extended glyph list from ConTeXt") + end + local unicodes = dofile(glyphlist) + fonts.encodings.agl = { unicodes = unicodes } + return unicodes + else + return nil + end +end }) + -- vim:tw=71:sw=4:ts=4:expandtab diff --git a/luaotfload-tool.rst b/luaotfload-tool.rst index 13842e2..cd42606 100644 --- a/luaotfload-tool.rst +++ b/luaotfload-tool.rst @@ -17,7 +17,7 @@ SYNOPSIS **luaotfload** [ -cfFiquvVh ] -**luaotfload** --update [ --force ] [ --find ] [ --quiet ] [ --verbose ] +**luaotfload** --update [ --force ] [ --quiet ] [ --verbose ] **luaotfload** --find=filename [ --fuzzy ] [ --info ] diff --git a/luaotfload.dtx b/luaotfload.dtx index 2f88225..6c88e37 100644 --- a/luaotfload.dtx +++ b/luaotfload.dtx @@ -1105,14 +1105,14 @@ and the derived files % % Also, the merged file at some point % loads the Adobe Glyph List from a \LUA table that is contained in -% \fileent{font-age.lua}, which is automatically generated by the +% \fileent{luaotfload-glyphlist.lua}, which is automatically generated by the % % script \fileent{mkglyphlist}.\footnote{% % See \fileent{luaotfload-font-enc.lua}. -% The hard-coded file name is why the file lacks the \fileent{luaotfload-} -% prefix. +% The hard-coded file name is why we have to replace the procedure +% that loads the file in \fileent{luaotfload-override.lua}. % } % There is a make target \identifier{glyphs} that will create a fresh -% \fileent{font-age.lua} so we don’t need to import it from \CONTEXT +% glyph list so we don’t need to import it from \CONTEXT % any longer. % % In addition to these, \identifier{luaotfload} requires a number of diff --git a/mkglyphlist b/mkglyphlist index 281c736..3366c9c 100755 --- a/mkglyphlist +++ b/mkglyphlist @@ -17,7 +17,7 @@ -- config ----------------------------------------------------------------------- local glyphfile = "./glyphlist.txt" -local font_age = "./font-age.lua" +local font_age = "./luaotfload-glyphlist.lua" local glyph_source = "http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt" ----------------------------------------------------------------------- @@ -93,7 +93,7 @@ end --[[doc-- Everything below has been autogenerated. Run mkglyphlist to rebuild -font-age.lua. +luaotfload-glyphlist.lua. --doc]]-- ]==] |