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
|
if not modules then modules = { } end modules ['mlib-pos'] = {
version = 1.001,
comment = "companion to mlib-ctx.mkiv",
author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
copyright = "PRAGMA ADE / ConTeXt Development Team",
license = "see context related readme files",
}
local jobpositions = job.positions
local mpnumeric = mp.inject.numeric
local mpstring = mp.inject.string
local scanstring = mp.scan.string
local factor = number.dimenfactors.bp
local registerdirect = metapost.registerdirect
local page = jobpositions.page
local paragraph = jobpositions.paragraph
local column = jobpositions.column
local region = jobpositions.region
local x = jobpositions.x
local y = jobpositions.y
local xy = jobpositions.xy
local width = jobpositions.width
local height = jobpositions.height
local depth = jobpositions.depth
local leftskip = jobpositions.leftskip
local rightskip = jobpositions.rightskip
local hsize = jobpositions.hsize
local parindent = jobpositions.parindent
local hangindent = jobpositions.hangindent
local hangafter = jobpositions.hangafter
local lowerleft = jobpositions.lowerleft
local upperleft = jobpositions.upperleft
local lowerright = jobpositions.lowerright
local upperright = jobpositions.upperright
registerdirect("getpospage", function() return page (scanstring()) end)
registerdirect("getposparagraph", function() return paragraph (scanstring()) end)
registerdirect("getposcolumn", function() return column (scanstring()) end)
registerdirect("getposregion", function() return region (scanstring()) end)
registerdirect("getposx", function() return x (scanstring()) * factor end)
registerdirect("getposy", function() return y (scanstring()) * factor end)
registerdirect("getposwidth", function() return width (scanstring()) * factor end)
registerdirect("getposheight", function() return height (scanstring()) * factor end)
registerdirect("getposdepth", function() return depth (scanstring()) * factor end)
registerdirect("getposleftskip", function() return leftskip (scanstring()) * factor end)
registerdirect("getposrightskip", function() return rightskip (scanstring()) * factor end)
registerdirect("getposhsize", function() return hsize (scanstring()) * factor end)
registerdirect("getposparindent", function() return parindent (scanstring()) * factor end)
registerdirect("getposhangindent", function() return hangindent(scanstring()) * factor end)
registerdirect("getposhangafter", function() return hangafter (scanstring()) * factor end)
local t = { 0, 0 } -- let's share
registerdirect("getposxy", function() local x, y = xy (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
registerdirect("getposupperleft", function() local x, y = upperleft (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
registerdirect("getposlowerleft", function() local x, y = lowerleft (scanstring()) t[1] = x * factor t[2] = y * factor return t end)
registerdirect("getposupperright", function() local x, y = upperright(scanstring()) t[1] = x * factor t[2] = y * factor return t end)
registerdirect("getposlowerright", function() local x, y = lowerright(scanstring()) t[1] = x * factor t[2] = y * factor return t end)
registerdirect("getposllx", function() local x, y = lowerleft (scanstring()) return x * factor end)
registerdirect("getposlly", function() local x, y = lowerleft (scanstring()) return y * factor end)
registerdirect("getposurx", function() local x, y = upperright(scanstring()) return x * factor end)
registerdirect("getposury", function() local x, y = upperright(scanstring()) return y * factor end)
|