summaryrefslogtreecommitdiff
path: root/tex/context/base/anch-pos.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/anch-pos.lua')
-rw-r--r--tex/context/base/anch-pos.lua57
1 files changed, 25 insertions, 32 deletions
diff --git a/tex/context/base/anch-pos.lua b/tex/context/base/anch-pos.lua
index 28d32089d..d47109891 100644
--- a/tex/context/base/anch-pos.lua
+++ b/tex/context/base/anch-pos.lua
@@ -13,7 +13,6 @@ more efficient.</p>
--ldx]]--
local concat, format = table.concat, string.format
-local texprint, ctxcatcodes = tex.print, tex.ctxcatcodes
local lpegmatch = lpeg.match
local allocate, mark = utilities.storage.allocate, utilities.storage.mark
@@ -55,20 +54,20 @@ function jobpositions.doifelse(name)
commands.testcase(collected[name] or tobesaved[name])
end
-function jobpositions.MPp(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[1]) or '0' ) end
-function jobpositions.MPx(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[2]) or '0pt') end
-function jobpositions.MPy(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[3]) or '0pt') end
-function jobpositions.MPw(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[4]) or '0pt') end
-function jobpositions.MPh(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[5]) or '0pt') end
-function jobpositions.MPd(id) local jpi = collected[id] or tobesaved[id] texprint(ctxcatcodes,(jpi and jpi[6]) or '0pt') end
+function jobpositions.MPp(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[1] or '0' ) end
+function jobpositions.MPx(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[2] or '0pt') end
+function jobpositions.MPy(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[3] or '0pt') end
+function jobpositions.MPw(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[4] or '0pt') end
+function jobpositions.MPh(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[5] or '0pt') end
+function jobpositions.MPd(id) local jpi = collected[id] or tobesaved[id] context(jpi and jpi[6] or '0pt') end
function jobpositions.MPx(id)
local jpi = collected[id] or tobesaved[id]
local x = jpi and jpi[2]
if x then
- texprint(ctxcatcodes,format('\\the\\dimexpr%s-%s\\relax',x,dx)) -- no space after dimexpr !
+ context('\\the\\dimexpr%s-%s\\relax',x,dx)
else
- texprint(ctxcatcodes,'0pt')
+ context('0pt')
end
end
@@ -76,9 +75,9 @@ function jobpositions.MPy(id)
local jpi = collected[id] or tobesaved[id]
local y = jpi and jpi[3]
if y then
- texprint(ctxcatcodes,format('\\the\\dimexpr%s-%s\\relax',y,dy)) -- no space after dimexpr !
+ context('\\the\\dimexpr%s-%s\\relax',y,dy)
else
- texprint(ctxcatcodes,'0pt')
+ context('0pt')
end
end
@@ -89,59 +88,54 @@ end
function jobpositions.MPxy(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,format('(%s-%s,%s-%s)',jpi[2],dx,jpi[3],dy))
---~ texprint(ctxcatcodes,'(',jpi[2],'-',dx,',',jpi[3],'-',dy,')')
+ context('(%s-%s,%s-%s)',jpi[2],dx,jpi[3],dy)
else
- texprint(ctxcatcodes,'(0,0)')
+ context('(0,0)')
end
end
function jobpositions.MPll(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,format('(%s-%s,%s-%s-%s)',jpi[2],dx,jpi[3],jpi[6],dy))
---~ texprint(ctxcatcodes,'(',jpi[2],'-',dx,',',jpi[3],'-',jpi[6],'-',dy,')')
+ context('(%s-%s,%s-%s-%s)',jpi[2],dx,jpi[3],jpi[6],dy)
else
- texprint(ctxcatcodes,'(0,0)')
+ context('(0,0)')
end
end
function jobpositions.MPlr(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,format('(%s+%s-%s,%s-%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[6],dy))
---~ texprint(ctxcatcodes,'(',jpi[2],'+',jpi[4],'-',dx,',',jpi[3],'-',jpi[6],'-',dy,')')
+ context('(%s+%s-%s,%s-%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[6],dy)
else
- texprint(ctxcatcodes,'(0,0)')
+ context('(0,0)')
end
end
function jobpositions.MPur(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,format('(%s+%s-%s,%s+%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[5],dy))
---~ texprint(ctxcatcodes,'(',jpi[2],'+',jpi[4],'-',dx,',',jpi[3],'+',jpi[5],'-',dy,')')
+ context('(%s+%s-%s,%s+%s-%s)',jpi[2],jpi[4],dx,jpi[3],jpi[5],dy)
else
- texprint(ctxcatcodes,'(0,0)')
+ context('(0,0)')
end
end
function jobpositions.MPul(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,format('(%s-%s,%s+%s-%s)',jpi[2],dx,jpi[3],jpi[5],dy))
---~ texprint(ctxcatcodes,'(',jpi[2],'-',dx,',',jpi[3],'+',jpi[5],'-',dy,')')
+ context('(%s-%s,%s+%s-%s)',jpi[2],dx,jpi[3],jpi[5],dy)
else
- texprint(ctxcatcodes,'(0,0)')
+ context('(0,0)')
end
end
function jobpositions.MPpos(id)
local jpi = collected[id] or tobesaved[id]
if jpi then
- texprint(ctxcatcodes,concat(jpi,',',1,6))
+ context(concat(jpi,',',1,6))
else
- texprint(ctxcatcodes,'0,0,0,0,0,0')
+ context('0,0,0,0,0,0')
end
end
@@ -150,19 +144,18 @@ local splitter = lpeg.Ct(lpeg.splitat(","))
function jobpositions.MPplus(id,n,default)
local jpi = collected[id] or tobesaved[id]
if not jpi then
- texprint(ctxcatcodes,default)
+ context(default)
else
local split = jpi[0]
if not split then
split = lpegmatch(splitter,jpi[7])
jpi[0] = split
end
- texprint(ctxcatcodes,split[n] or default)
+ context(split[n] or default)
end
end
function jobpositions.MPrest(id,default)
local jpi = collected[id] or tobesaved[id]
- -- texprint(ctxcatcodes,(jpi and jpi[7] and concat(jpi,",",7,#jpi)) or default)
- texprint(ctxcatcodes,(jpi and jpi[7]) or default)
+ context(jpi and jpi[7] or default)
end