diff options
author | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-05-17 19:31:15 +0200 |
---|---|---|
committer | Context Git Mirror Bot <phg42.2a@gmail.com> | 2016-05-17 19:31:15 +0200 |
commit | 2017d30b4ca772c8eeac4fc0eb9b54e547a9a1d8 (patch) | |
tree | d96df31f305a095c078ea5fb9f639ca34ac36c12 /tex/context/base/mkiv/spac-hor.lua | |
parent | 53ff76b73cd1f373ecdfb0f7f17df6f352621d6e (diff) | |
download | context-2017d30b4ca772c8eeac4fc0eb9b54e547a9a1d8.tar.gz |
2016-05-17 19:25:00
Diffstat (limited to 'tex/context/base/mkiv/spac-hor.lua')
-rw-r--r-- | tex/context/base/mkiv/spac-hor.lua | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/spac-hor.lua b/tex/context/base/mkiv/spac-hor.lua new file mode 100644 index 000000000..5d5a43e31 --- /dev/null +++ b/tex/context/base/mkiv/spac-hor.lua @@ -0,0 +1,44 @@ +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 utfbyte = utf.byte +local lpegmatch, P, C = lpeg.match, lpeg.P, lpeg.C + +local context = context + +local chardata = characters.data + +local p_check = P("the ") * (P("letter") + P("character")) * P(" ") * lpeg.patterns.utf8byte -- is a capture already + +local can_have_space = table.tohash { + "lu", "ll", "lt", "lm", "lo", -- letters + -- "mn", "mc", "me", -- marks + "nd", "nl", "no", -- numbers + "ps", "pi", -- initial + -- "pe", "pf", -- final + -- "pc", "pd", "po", -- punctuation + "sm", "sc", "sk", "so", -- symbols + -- "zs", "zl", "zp", -- separators + -- "cc", "cf", "cs", "co", "cn", -- others +} + +local function autonextspace(str) -- todo: make a real not intrusive lookahead + local b = lpegmatch(p_check,str) + if b then + local d = chardata[b] + if d and can_have_space[d.category] then + context.space() + end + end +end + +interfaces.implement { + name = "autonextspace", + actions = autonextspace, + arguments = "string", +} |