summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/context/base/page-flt.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/context/base/page-flt.lua')
-rw-r--r--Master/texmf-dist/tex/context/base/page-flt.lua20
1 files changed, 11 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/context/base/page-flt.lua b/Master/texmf-dist/tex/context/base/page-flt.lua
index 68383f175f9..ab7a534eb15 100644
--- a/Master/texmf-dist/tex/context/base/page-flt.lua
+++ b/Master/texmf-dist/tex/context/base/page-flt.lua
@@ -236,13 +236,15 @@ function floats.nofstacked()
return #stacks[which or default] or 0
end
+-- todo: check for digits !
+
local method = C((1-S(", :"))^1)
-local position = P(":") * C((1-S("*,"))^1) * P("*") * C((1-S(","))^1)
+local position = P(":") * C((1-S("*,"))^1) * (P("*") * C((1-S(","))^1))^0
local label = P(":") * C((1-S(",*: "))^0)
local pattern = method * (
- label * position
- + C("") * position
+ label * position * C("")
+ + C("") * position * C("")
+ label * C("") * C("")
+ C("") * C("") * C("")
) + C("") * C("") * C("") * C("")
@@ -255,7 +257,7 @@ local pattern = method * (
-- inspect { lpegmatch(pattern,"somewhere") }
-- inspect { lpegmatch(pattern,"") }
-function floats.analysemethod(str)
+function floats.analysemethod(str) -- will become a more extensive parser
return lpegmatch(pattern,str or "")
end
@@ -278,10 +280,10 @@ function commands.checkedpagefloat (...) local v = floats.checkedpagefloat(...)
function commands.nofstackedfloats (...) context(floats.nofstacked(...)) end
function commands.doifelsesavedfloat(...) commands.doifelse(floats.nofstacked(...)>0) end
-function commands.analysefloatmethod(str)
+function commands.analysefloatmethod(str) -- currently only one method
local method, label, row, column = floats.analysemethod(str)
- setvalue("floatmethod",method)
- setvalue("floatlabel", label )
- setvalue("floatrow", row )
- setvalue("floatcolumn",column)
+ setvalue("floatmethod",method or "")
+ setvalue("floatlabel", label or "")
+ setvalue("floatrow", row or "")
+ setvalue("floatcolumn",column or "")
end