diff options
Diffstat (limited to 'macros/luatex/generic/minim/minim-hooks.lua')
-rw-r--r-- | macros/luatex/generic/minim/minim-hooks.lua | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/macros/luatex/generic/minim/minim-hooks.lua b/macros/luatex/generic/minim/minim-hooks.lua new file mode 100644 index 0000000000..c399547c9e --- /dev/null +++ b/macros/luatex/generic/minim/minim-hooks.lua @@ -0,0 +1,30 @@ + +-- Adds a callback just before a box is shipped out, opposite to +-- 'finish_pdfpage'. + +local alloc = require('minim-alloc') +local cb = require ('minim-callbacks') +alloc.remember('minim-hooks') + +local M = { } + +cb.new_callback('pre_shipout', 'simple') + +M.primitive_shipout = tex.shipout +function tex.shipout(nr) + cb.call_callback('pre_shipout', nr) + M.primitive_shipout(nr) +end + +local shipout_box = alloc.new_box('minim:shipout:box') + +alloc.luadef('minim:shipout', function() + tex.box[shipout_box] = token.scan_list() + cb.call_callback('pre_shipout', shipout_box) + -- we must let tex do the rest, because some other package may have + -- redefined \shipout before us. + tex.sprint(token.create('minim:shipout:do')) +end, 'protected') + +return M + |