summaryrefslogtreecommitdiff
path: root/src/luaotfload-colors.lua
diff options
context:
space:
mode:
authorDohyun Kim <nomosnomos@gmail.com>2015-06-29 02:04:25 +0900
committerDohyun Kim <nomosnomos@gmail.com>2015-07-27 01:49:36 +0900
commita3609f5cd2e3e7ec844adab7f7220f02599e4743 (patch)
tree437261f4d3986505342ebf85ea7e477cb7235441 /src/luaotfload-colors.lua
parent43031f08720cd2cd305e7c7b1eb5f40b52d0b36b (diff)
downloadluaotfload-a3609f5cd2e3e7ec844adab7f7220f02599e4743.tar.gz
compatible-with-beamer revisited
Diffstat (limited to 'src/luaotfload-colors.lua')
-rw-r--r--src/luaotfload-colors.lua18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/luaotfload-colors.lua b/src/luaotfload-colors.lua
index ff4dc13..8035210 100644
--- a/src/luaotfload-colors.lua
+++ b/src/luaotfload-colors.lua
@@ -40,10 +40,9 @@ local setattribute = nodedirect.set_attribute
local texset = tex.set
local texget = tex.get
-local texsettoks = tex.settoks
-local texgettoks = tex.gettoks
local stringformat = string.format
+local concat = table.concat
local otffeatures = fonts.constructors.newfeatures("otf")
local identifiers = fonts.hashes.identifiers
@@ -311,6 +310,9 @@ node_colorize = function (head, current_color)
return head, current_color
end
+local pgf_extgs = { }
+luaotfload.pgf_extgs = pgf_extgs
+
--- node -> node
local color_handler = function (head)
head = todirect(head)
@@ -324,7 +326,7 @@ local color_handler = function (head)
local no_extgs = not tpr:find("/ExtGState<<.*>>")
local pgf_loaded = no_extgs and luaotfload.pgf_loaded
if pgf_loaded then
- tpr = texgettoks(pgf_loaded) -- see luaotfload.sty
+ tpr = concat(pgf_extgs)
end
local t = ""
@@ -336,7 +338,7 @@ local color_handler = function (head)
end
if t ~= "" then
if pgf_loaded then
- texsettoks("global", pgf_loaded, tpr..t)
+ pgf_extgs[#pgf_extgs+1] = t
else
if no_extgs then
tpr = tpr .. "/ExtGState<<>>"
@@ -377,5 +379,13 @@ add_color_callback = function ( )
end
end
+tex.sprint("\\count255=\\catcode`@ \\catcode`@=11 ",
+ "\\ifdefined\\AtBeginDocument\\else\\def\\AtBeginDocument#1{#1}\\fi",
+ "\\AtBeginDocument{\\ifdefined\\pgfutil@everybye",
+ "\\directlua{luaotfload.pgf_loaded=true}\\begingroup",
+ "\\toks@{\\pgf@sys@addpdfresource@extgs@plain{\\directlua{tex.sprint(luaotfload.pgf_extgs)}}}",
+ "\\edef\\x{\\endgroup\\noexpand\\pgfutil@everybye{\\the\\toks@\\the\\pgfutil@everybye}}\\x",
+ "\\fi}\\catcode`@=\\count255 ")
+
-- vim:tw=71:sw=4:ts=4:expandtab