diff options
author | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-14 10:01:25 +0200 |
---|---|---|
committer | Philipp Gesang <phg42.2a@gmail.com> | 2013-07-14 10:01:25 +0200 |
commit | e00d066f7a7cb1ffd8df94d90e16565c3dedeec7 (patch) | |
tree | c9893c780ccc05c8f5402b8bf09caf361cbeea86 /lualibs-util-dim.lua | |
parent | f2f35fe3d8a1c5ce74ddbb8eef3cad2b18a379dc (diff) | |
download | lualibs-e00d066f7a7cb1ffd8df94d90e16565c3dedeec7.tar.gz |
sync with Context as of 2013-07-14
Diffstat (limited to 'lualibs-util-dim.lua')
-rw-r--r-- | lualibs-util-dim.lua | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/lualibs-util-dim.lua b/lualibs-util-dim.lua index 47b2706..6906149 100644 --- a/lualibs-util-dim.lua +++ b/lualibs-util-dim.lua @@ -22,6 +22,8 @@ local allocate = utilities.storage.allocate local setmetatableindex = table.setmetatableindex local formatters = string.formatters +local texget = tex and tex.get or function() return 65536*10*100 end + --this might become another namespace number = number or { } @@ -137,7 +139,7 @@ capture takes place.</p> --ldx]]-- local amount = (S("+-")^0 * R("09")^0 * P(".")^0 * R("09")^0) + Cc("0") -local unit = R("az")^1 +local unit = R("az")^1 + P("%") local dimenpair = amount/tonumber * (unit^1/dimenfactors + Cc(1)) -- tonumber is new @@ -376,10 +378,10 @@ function dimen(a) a = k else local value, unit = lpegmatch(dimenpair,a) - if type(unit) == "function" then - k = value/unit() + if value and unit then + k = value/unit -- to be considered: round else - k = value/unit + k = 0 end known[a] = k a = k @@ -412,16 +414,16 @@ function string.todimen(str) -- maybe use tex.sp when available end end ---~ local known = { } - ---~ function string.todimen(str) -- maybe use tex.sp ---~ local k = known[str] ---~ if not k then ---~ k = tex.sp(str) ---~ known[str] = k ---~ end ---~ return k ---~ end +-- local known = { } +-- +-- function string.todimen(str) -- maybe use tex.sp +-- local k = known[str] +-- if not k then +-- k = tex.sp(str) +-- known[str] = k +-- end +-- return k +-- end stringtodimen = string.todimen -- local variable defined earlier @@ -439,7 +441,7 @@ probably use a hash instead of a one-element table.</p> --ldx]]-- function number.percent(n,d) -- will be cleaned up once luatex 0.30 is out - d = d or tex.hsize + d = d or texget("hsize") if type(d) == "string" then d = stringtodimen(d) end |