1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
if not modules then modules = { } end modules ['cldf-com'] = {
version = 1.001,
comment = "companion to cldf-ini.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files"
}
local tostring, type = tostring, type
local format = string.format
local context = context
local generics = context.generics
local variables = interfaces.variables
generics.starttabulate = "start" .. variables.tabulate -- todo: e!start
generics.stoptabulate = "stop" .. variables.tabulate -- todo: e!stop
local NC, NR = context.NC, context.NR
local function tabulaterow(how,...)
local t = { ... }
for i=1,#t do
local ti = tostring(t[i])
NC()
if how then
context[how](ti)
else
context(ti)
end
end
NC()
NR()
end
function context.tabulaterow (...) tabulaterow(false, ...) end
function context.tabulaterowbold(...) tabulaterow("bold",...) end
function context.tabulaterowtype(...) tabulaterow("type",...) end
function context.tabulaterowtyp (...) tabulaterow("typ", ...) end
function context.concat(t,separator)
local done = false
for i=1,#t do
local ti = t[i]
if ti ~= "" then
if done then
context(separator)
end
context(t)
done = true
end
end
end
function context.char(k) -- todo: if catcode == letter or other then just the utf
if type(k) == "table" then
for i=1,#k do
context(format([[\char%s\relax]],k[i]))
end
elseif k then
context(format([[\char%s\relax]],k))
end
end
function context.utfchar(k)
context(utfchar(k))
end
-- plain variants
function context.chardef(cs,u)
context(format([[\chardef\%s=%s\relax]],k)) -- context does already do format
end
function context.par()
context([[\par]]) -- no need to add {} there
end
function context.bgroup()
context("{")
end
function context.egroup()
context("}")
end
local rule = nodes.pool.rule
function context.hrule(w,h,d,dir)
if type(w) == "table" then
context(rule(w.width,w.height,w.depth,w.dir))
else
context(rule(w,h,d,dir))
end
end
context.vrule = context.hrule
|