summaryrefslogtreecommitdiff
path: root/tex/context/base/spac-chr.lua
diff options
context:
space:
mode:
authorContext Git Mirror Bot <phg42.2a@gmail.com>2014-11-26 13:15:05 +0100
committerContext Git Mirror Bot <phg42.2a@gmail.com>2014-11-26 13:15:05 +0100
commit5e624488bd860906c17301941c96e6209a9e4cd6 (patch)
tree1a517cfd2d5d4787879fdd3673f0d123c970c9b9 /tex/context/base/spac-chr.lua
parent156e528557cf571eb99ab05a0892429b3c2bf269 (diff)
downloadcontext-5e624488bd860906c17301941c96e6209a9e4cd6.tar.gz
2014-11-26 12:52:00
Diffstat (limited to 'tex/context/base/spac-chr.lua')
-rw-r--r--tex/context/base/spac-chr.lua14
1 files changed, 14 insertions, 0 deletions
diff --git a/tex/context/base/spac-chr.lua b/tex/context/base/spac-chr.lua
index 3fcfafe17..0cdec4b8f 100644
--- a/tex/context/base/spac-chr.lua
+++ b/tex/context/base/spac-chr.lua
@@ -19,6 +19,7 @@ local byte, lower = string.byte, string.lower
local next = next
local trace_characters = false trackers.register("typesetters.characters", function(v) trace_characters = v end)
+local trace_nbsp = false trackers.register("typesetters.nbsp", function(v) trace_nbsp = v end)
local report_characters = logs.reporter("typesetting","characters")
@@ -39,6 +40,8 @@ local setattr = nuts.setattr
local getfont = nuts.getfont
local getchar = nuts.getchar
+local setcolor = nodes.tracers.colors.set
+
local insert_node_before = nuts.insert_before
local insert_node_after = nuts.insert_after
local remove_node = nuts.remove
@@ -50,6 +53,8 @@ local tasks = nodes.tasks
local nodepool = nuts.pool
local new_penalty = nodepool.penalty
local new_glue = nodepool.glue
+local new_kern = nodepool.kern
+local new_rule = nodepool.rule
local nodecodes = nodes.nodecodes
local skipcodes = nodes.skipcodes
@@ -114,6 +119,15 @@ local function inject_nobreak_space(unicode,head,current,space,spacestretch,spac
setfield(current,"attr",nil)
setattr(glue,a_character,unicode)
head, current = insert_node_after(head,current,penalty)
+ if trace_nbsp then
+ local rule = new_rule(space)
+ local kern = new_kern(-space)
+ local penalty = new_penalty(10000)
+ setcolor(rule,"orange")
+ head, current = insert_node_after(head,current,rule)
+ head, current = insert_node_after(head,current,kern)
+ head, current = insert_node_after(head,current,penalty)
+ end
head, current = insert_node_after(head,current,glue)
return head, current
end