if not modules then modules = { } end modules ['spac-hor'] = { version = 1.001, comment = "companion to spac-hor.mkiv", author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", copyright = "PRAGMA ADE / ConTeXt Development Team", license = "see context related readme files" } local chardata = characters.data local peekchar = tokens.scanners.peekchar local ctx_space = context.space local can_have_space = characters.can_have_space interfaces.implement { name = "autoinsertnextspace", protected = true, public = true, actions = function() local char = peekchar() -- nil means space command if char then local d = chardata[char] if d and can_have_space[d.category] then ctx_space() end end end, } local nuts = nodes.nuts local tonut = nodes.tonut local traverseglue = nuts.traversers.glue local setwidth = nodes.nuts.setwidth local indentskip_code = nodes.gluecodes.indentskip local texgetnest = tex.getnest local function lateindent(amount) local head = tonut(texgetnest("top","head")) if head then for n, s in traverseglue, head do if s == indentskip_code then setwidth(n,amount or 0) end end end end interfaces.implement { name = "lateindent", public = true, protected = "true", arguments = "dimension", actions = lateindent, } interfaces.implement { name = "lateundent", public = true, protected = "true", actions = lateindent, }