diff options
Diffstat (limited to 'src/luaotfload-colors.lua')
-rw-r--r-- | src/luaotfload-colors.lua | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/src/luaotfload-colors.lua b/src/luaotfload-colors.lua index 8035210..19903d8 100644 --- a/src/luaotfload-colors.lua +++ b/src/luaotfload-colors.lua @@ -40,6 +40,8 @@ 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 @@ -310,9 +312,6 @@ 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) @@ -326,7 +325,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 = concat(pgf_extgs) + tpr = texgettoks(pgf_loaded) end local t = "" @@ -338,7 +337,7 @@ local color_handler = function (head) end if t ~= "" then if pgf_loaded then - pgf_extgs[#pgf_extgs+1] = t + texsettoks("global", pgf_loaded, tpr..t) else if no_extgs then tpr = tpr .. "/ExtGState<<>>" @@ -379,13 +378,5 @@ 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 |