summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/context/documents/general/manuals/xtables-mkiv.pdfbin154883 -> 157802 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-cs.pdfbin853260 -> 853517 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-de.pdfbin853887 -> 854115 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-en.pdfbin857249 -> 857465 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-fr.pdfbin849721 -> 849774 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-it.pdfbin856256 -> 856480 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-cs.pdfbin346962 -> 347104 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-de.pdfbin431246 -> 431389 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-en.pdfbin344851 -> 344995 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-fr.pdfbin347377 -> 347524 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-it.pdfbin346372 -> 346521 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-nl.pdfbin345408 -> 345548 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-mapping-ro.pdfbin508246 -> 508390 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-nl.pdfbin846609 -> 846824 bytes
-rw-r--r--doc/context/documents/general/qrcs/setup-ro.pdfbin851378 -> 851605 bytes
-rw-r--r--doc/context/sources/general/manuals/xtables/xtables-mkiv.tex95
-rw-r--r--scripts/context/lua/mtxrun.lua18
-rw-r--r--scripts/context/stubs/mswin/mtxrun.lua18
-rw-r--r--scripts/context/stubs/unix/mtxrun18
-rw-r--r--scripts/context/stubs/win64/mtxrun.lua18
-rw-r--r--tex/context/base/mkii/cont-new.mkii2
-rw-r--r--tex/context/base/mkii/context.mkii2
-rw-r--r--tex/context/base/mkiv/char-ini.lua21
-rw-r--r--tex/context/base/mkiv/cldf-bas.lua20
-rw-r--r--tex/context/base/mkiv/cont-new.mkiv2
-rw-r--r--tex/context/base/mkiv/context.mkiv2
-rw-r--r--tex/context/base/mkiv/font-col.lua103
-rw-r--r--tex/context/base/mkiv/font-col.mkvi5
-rw-r--r--tex/context/base/mkiv/l-lpeg.lua20
-rw-r--r--tex/context/base/mkiv/pack-com.mkiv2
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin26120 -> 26068 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin268553 -> 269399 bytes
-rw-r--r--tex/context/base/mkiv/tabl-xtb.mkvi56
-rw-r--r--tex/context/interface/mkiv/context-en.xml8
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin857249 -> 857465 bytes
-rw-r--r--tex/context/interface/mkiv/i-fonts.xml8
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60771 -> 60771 bytes
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua14
38 files changed, 354 insertions, 78 deletions
diff --git a/doc/context/documents/general/manuals/xtables-mkiv.pdf b/doc/context/documents/general/manuals/xtables-mkiv.pdf
index d1b1a3ed0..255a730b8 100644
--- a/doc/context/documents/general/manuals/xtables-mkiv.pdf
+++ b/doc/context/documents/general/manuals/xtables-mkiv.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-cs.pdf b/doc/context/documents/general/qrcs/setup-cs.pdf
index 4e9d547c5..aa527b862 100644
--- a/doc/context/documents/general/qrcs/setup-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-de.pdf b/doc/context/documents/general/qrcs/setup-de.pdf
index 0941e1f49..ea5fc1ed7 100644
--- a/doc/context/documents/general/qrcs/setup-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-en.pdf b/doc/context/documents/general/qrcs/setup-en.pdf
index 7137482f0..f373195d9 100644
--- a/doc/context/documents/general/qrcs/setup-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-fr.pdf b/doc/context/documents/general/qrcs/setup-fr.pdf
index cfdd71b78..9ce8b8717 100644
--- a/doc/context/documents/general/qrcs/setup-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-it.pdf b/doc/context/documents/general/qrcs/setup-it.pdf
index 93e68397f..9bca93711 100644
--- a/doc/context/documents/general/qrcs/setup-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
index 746595024..d6be2f850 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-cs.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-de.pdf b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
index 4b463d18a..b4fb3686f 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-de.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-de.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-en.pdf b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
index d9bddbfc0..c6324683a 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-en.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-en.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
index af22546f6..4782d388e 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-fr.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-it.pdf b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
index 8027468ab..25ca636c0 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-it.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-it.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
index e87d00337..1b70533ac 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
index 61d893e81..dc4c994be 100644
--- a/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-mapping-ro.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-nl.pdf b/doc/context/documents/general/qrcs/setup-nl.pdf
index c25f2cbff..39bcb233c 100644
--- a/doc/context/documents/general/qrcs/setup-nl.pdf
+++ b/doc/context/documents/general/qrcs/setup-nl.pdf
Binary files differ
diff --git a/doc/context/documents/general/qrcs/setup-ro.pdf b/doc/context/documents/general/qrcs/setup-ro.pdf
index 5714672c7..69a744975 100644
--- a/doc/context/documents/general/qrcs/setup-ro.pdf
+++ b/doc/context/documents/general/qrcs/setup-ro.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex b/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex
index 827ad3fcc..1b878e5cb 100644
--- a/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex
+++ b/doc/context/sources/general/manuals/xtables/xtables-mkiv.tex
@@ -1250,6 +1250,101 @@ you're lucky.
\stopsection
+\startsection[title={Swapping}]
+
+The next two examples demonstrate a feature added for Taco, who wanted to input
+vertical instead of horizontal. It's a bit of a hack but it works okay for
+simple cases. We assume these settings:
+
+\startbuffer[settings]
+\setupxtable[one] [foregroundcolor=darkred]
+\setupxtable[two] [foregroundcolor=darkgreen]
+\setupxtable[three][foregroundcolor=darkblue]
+\setupxtable[four] [foregroundcolor=darkorange]
+\stopbuffer
+
+\startbuffer[demo-1]
+\startxtable[frame=on]
+ \startxcolumn[one]
+ \startxcell A1 \stopxcell
+ \startxcell B1 \stopxcell
+ \startxcell C1 \stopxcell
+ \startxcell D1 \stopxcell
+ \startxcell E1 \stopxcell
+ \stopxcolumn
+ \startxcolumn[two]
+ \startxcell A2 \stopxcell
+ \startxcell B2 \stopxcell
+ \startxcell C2 \stopxcell
+ \startxcell D2 \stopxcell
+ \startxcell E2 \stopxcell
+ \stopxcolumn
+ \startxcolumn[three]
+ \startxcell A3 \stopxcell
+ \startxcell B3 \stopxcell
+ \startxcell C3 \stopxcell
+ \startxcell D3 \stopxcell
+ \startxcell E3 \stopxcell
+ \stopxcolumn
+ \startxcolumn[four]
+ \startxcell A4 \stopxcell
+ \startxcell B4 \stopxcell
+ \startxcell C4 \stopxcell
+ \startxcell D4 \stopxcell
+ \startxcell E4 \stopxcell
+ \stopxcolumn
+\stopxtable
+\stopbuffer
+
+\startbuffer[demo-2]
+\startxtable[frame=on]
+ \startxcolumn[one]
+ \startxcell A \stopxcell
+ \startxcell B \stopxcell
+ \startxcell C \stopxcell
+ \startxcell D \stopxcell
+ \startxcell E \stopxcell
+ \stopxcolumn
+ \startxcolumn[two]
+ \startxcell A \stopxcell
+ \startxcell[ny=2] BC \stopxcell
+ \startxcell[ny=2] DE \stopxcell
+ \stopxcolumn
+ \startxcolumn[three]
+ \startxcell A \stopxcell
+ \startxcell[ny=4] BCDE \stopxcell
+ \stopxcolumn
+ \startxcolumn[four]
+ \startxcell A \stopxcell
+ \startxcell B \stopxcell
+ \startxcell[ny=2] CD \stopxcell
+ \startxcell E \stopxcell
+ \stopxcolumn
+\stopxtable
+\stopbuffer
+
+\typebuffer[settings]
+
+The first example has no spans:
+
+\typebuffer[demo-1]
+
+while the second one has:
+
+\typebuffer[demo-2]
+
+The results are shown in \in {figure} [fig:swapped].
+
+\startplacefigure[title={Entering columns instead of rows.},reference=fig:swapped]
+ \getbuffer[settings]
+ \startcombination
+ {\getbuffer[demo-1]} {no spans}
+ {\getbuffer[demo-2]} {some spans}
+ \stopcombination
+\stopplacefigure
+
+\stopsection
+
\startsection[title={Examples}]
On the following pages we show some examples of (experimental) features. For this
diff --git a/scripts/context/lua/mtxrun.lua b/scripts/context/lua/mtxrun.lua
index da96a92a4..bde079a86 100644
--- a/scripts/context/lua/mtxrun.lua
+++ b/scripts/context/lua/mtxrun.lua
@@ -1033,7 +1033,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
--- original size: 39759, stripped down to: 21371
+-- original size: 40126, stripped down to: 21515
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -1213,10 +1213,18 @@ function lpeg.instringchecker(p)
end
end
function lpeg.splitter(pattern,action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern,action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
local splitters_s,splitters_m,splitters_t={},{},{}
local function splitat(separator,single)
@@ -24614,8 +24622,8 @@ end -- of closure
-- used libraries : l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 983900
--- stripped bytes : 347756
+-- original bytes : 984267
+-- stripped bytes : 347979
-- end library merge
diff --git a/scripts/context/stubs/mswin/mtxrun.lua b/scripts/context/stubs/mswin/mtxrun.lua
index da96a92a4..bde079a86 100644
--- a/scripts/context/stubs/mswin/mtxrun.lua
+++ b/scripts/context/stubs/mswin/mtxrun.lua
@@ -1033,7 +1033,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
--- original size: 39759, stripped down to: 21371
+-- original size: 40126, stripped down to: 21515
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -1213,10 +1213,18 @@ function lpeg.instringchecker(p)
end
end
function lpeg.splitter(pattern,action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern,action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
local splitters_s,splitters_m,splitters_t={},{},{}
local function splitat(separator,single)
@@ -24614,8 +24622,8 @@ end -- of closure
-- used libraries : l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 983900
--- stripped bytes : 347756
+-- original bytes : 984267
+-- stripped bytes : 347979
-- end library merge
diff --git a/scripts/context/stubs/unix/mtxrun b/scripts/context/stubs/unix/mtxrun
index da96a92a4..bde079a86 100644
--- a/scripts/context/stubs/unix/mtxrun
+++ b/scripts/context/stubs/unix/mtxrun
@@ -1033,7 +1033,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
--- original size: 39759, stripped down to: 21371
+-- original size: 40126, stripped down to: 21515
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -1213,10 +1213,18 @@ function lpeg.instringchecker(p)
end
end
function lpeg.splitter(pattern,action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern,action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
local splitters_s,splitters_m,splitters_t={},{},{}
local function splitat(separator,single)
@@ -24614,8 +24622,8 @@ end -- of closure
-- used libraries : l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 983900
--- stripped bytes : 347756
+-- original bytes : 984267
+-- stripped bytes : 347979
-- end library merge
diff --git a/scripts/context/stubs/win64/mtxrun.lua b/scripts/context/stubs/win64/mtxrun.lua
index da96a92a4..bde079a86 100644
--- a/scripts/context/stubs/win64/mtxrun.lua
+++ b/scripts/context/stubs/win64/mtxrun.lua
@@ -1033,7 +1033,7 @@ do -- create closure to overcome 200 locals limit
package.loaded["l-lpeg"] = package.loaded["l-lpeg"] or true
--- original size: 39759, stripped down to: 21371
+-- original size: 40126, stripped down to: 21515
if not modules then modules={} end modules ['l-lpeg']={
version=1.001,
@@ -1213,10 +1213,18 @@ function lpeg.instringchecker(p)
end
end
function lpeg.splitter(pattern,action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern,action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
local splitters_s,splitters_m,splitters_t={},{},{}
local function splitat(separator,single)
@@ -24614,8 +24622,8 @@ end -- of closure
-- used libraries : l-lua.lua l-macro.lua l-sandbox.lua l-package.lua l-lpeg.lua l-function.lua l-string.lua l-table.lua l-io.lua l-number.lua l-set.lua l-os.lua l-file.lua l-gzip.lua l-md5.lua l-sha.lua l-url.lua l-dir.lua l-boolean.lua l-unicode.lua l-math.lua util-str.lua util-tab.lua util-fil.lua util-sac.lua util-sto.lua util-prs.lua util-fmt.lua util-soc-imp-reset.lua util-soc-imp-socket.lua util-soc-imp-copas.lua util-soc-imp-ltn12.lua util-soc-imp-mime.lua util-soc-imp-url.lua util-soc-imp-headers.lua util-soc-imp-tp.lua util-soc-imp-http.lua util-soc-imp-ftp.lua util-soc-imp-smtp.lua trac-set.lua trac-log.lua trac-inf.lua trac-pro.lua util-lua.lua util-deb.lua util-tpl.lua util-sbx.lua util-mrg.lua util-env.lua luat-env.lua lxml-tab.lua lxml-lpt.lua lxml-mis.lua lxml-aux.lua lxml-xml.lua trac-xml.lua data-ini.lua data-exp.lua data-env.lua data-tmp.lua data-met.lua data-res.lua data-pre.lua data-inp.lua data-out.lua data-fil.lua data-con.lua data-use.lua data-zip.lua data-tre.lua data-sch.lua data-lua.lua data-aux.lua data-tmf.lua data-lst.lua util-lib.lua luat-sta.lua luat-fmt.lua
-- skipped libraries : -
--- original bytes : 983900
--- stripped bytes : 347756
+-- original bytes : 984267
+-- stripped bytes : 347979
-- end library merge
diff --git a/tex/context/base/mkii/cont-new.mkii b/tex/context/base/mkii/cont-new.mkii
index e309eca7b..269f053f9 100644
--- a/tex/context/base/mkii/cont-new.mkii
+++ b/tex/context/base/mkii/cont-new.mkii
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2018.10.02 23:17}
+\newcontextversion{2018.10.03 16:02}
%D This file is loaded at runtime, thereby providing an
%D excellent place for hacks, patches, extensions and new
diff --git a/tex/context/base/mkii/context.mkii b/tex/context/base/mkii/context.mkii
index 76f4f8d69..5fa5ed7d2 100644
--- a/tex/context/base/mkii/context.mkii
+++ b/tex/context/base/mkii/context.mkii
@@ -20,7 +20,7 @@
%D your styles an modules.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.10.02 23:17}
+\edef\contextversion{2018.10.03 16:02}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/char-ini.lua b/tex/context/base/mkiv/char-ini.lua
index ea9aa330f..1c53d924f 100644
--- a/tex/context/base/mkiv/char-ini.lua
+++ b/tex/context/base/mkiv/char-ini.lua
@@ -642,14 +642,19 @@ function characters.getrange(name,expression) -- used in font fallback definitio
name = gsub(name,'"',"0x") -- goodie: tex hex notation
local start, stop
if expression then
- local first, rest = lpegmatch(splitter2,name)
- local range = rawget(blocks,lower(gsub(first,"[^a-zA-Z0-9]","")))
- if range then
- local s = loadstring("return 0 " .. rest)
- if type(s) == "function" then
- local d = s()
- if type(d) == "number" then
- return range.first + d, range.last + d, nil
+ local n = tonumber(name)
+ if n then
+ return n, n, nil
+ else
+ local first, rest = lpegmatch(splitter2,name)
+ local range = rawget(blocks,lower(gsub(first,"[^a-zA-Z0-9]","")))
+ if range then
+ local s = loadstring("return 0 " .. rest)
+ if type(s) == "function" then
+ local d = s()
+ if type(d) == "number" then
+ return range.first + d, range.last + d, nil
+ end
end
end
end
diff --git a/tex/context/base/mkiv/cldf-bas.lua b/tex/context/base/mkiv/cldf-bas.lua
index b2c4b2623..27bb4f343 100644
--- a/tex/context/base/mkiv/cldf-bas.lua
+++ b/tex/context/base/mkiv/cldf-bas.lua
@@ -150,13 +150,21 @@ function ctxcore.flushboxregister(n)
context(type(n) == "number" and [[\box%s ]] or [[\box\%s]],n)
end
-function ctxcore.beginhbox() context([[\hbox{]]) end
-function ctxcore.beginvbox() context([[\vbox{]]) end
-function ctxcore.beginvtop() context([[\vtop{]]) end
+-- function ctxcore.beginhbox() context([[\hbox\bgroup]]) end
+-- function ctxcore.beginvbox() context([[\vbox\bgroup]]) end
+-- function ctxcore.beginvtop() context([[\vtop\bgroup]]) end
-ctxcore.endhbox = ctx_egroup
-ctxcore.endvbox = ctx_egroup
-ctxcore.endvtop = ctx_egroup
+local ctx_hbox = context.cs.hbox
+local ctx_vbox = context.cs.vbox
+local ctx_vtop = context.cs.vtop
+
+function ctxcore.beginhbox() ctx_hbox() ctx_bgroup() end
+function ctxcore.beginvbox() ctx_vbox() ctx_bgroup() end
+function ctxcore.beginvtop() ctx_vtop() ctx_bgroup() end
+
+ctxcore.endhbox = ctx_egroup -- \egroup
+ctxcore.endvbox = ctx_egroup -- \egroup
+ctxcore.endvtop = ctx_egroup -- \egroup
local function allocate(name,what,cmd)
local a = format("c_syst_last_allocated_%s",what)
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 733561e8c..3e3ab3bde 100644
--- a/tex/context/base/mkiv/cont-new.mkiv
+++ b/tex/context/base/mkiv/cont-new.mkiv
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\newcontextversion{2018.10.02 23:17}
+\newcontextversion{2018.10.03 16:02}
%D This file is loaded at runtime, thereby providing an excellent place for
%D hacks, patches, extensions and new features.
diff --git a/tex/context/base/mkiv/context.mkiv b/tex/context/base/mkiv/context.mkiv
index 23a0825ce..5a944df23 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -42,7 +42,7 @@
%D has to match \type {YYYY.MM.DD HH:MM} format.
\edef\contextformat {\jobname}
-\edef\contextversion{2018.10.02 23:17}
+\edef\contextversion{2018.10.03 16:02}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/font-col.lua b/tex/context/base/mkiv/font-col.lua
index 0af6f3188..ae6399525 100644
--- a/tex/context/base/mkiv/font-col.lua
+++ b/tex/context/base/mkiv/font-col.lua
@@ -124,11 +124,16 @@ function collections.define(name,font,ranges,details)
-- todo, combine per font start/stop as arrays
local offset = details.offset
if type(offset) == "string" then
- local start = characters.getrange(offset,true)
- offset = start or false
+ offset = characters.getrange(offset,true) or false
else
offset = tonumber(offset) or false
end
+ local target = details.target
+ if type(target) == "string" then
+ target = characters.getrange(target,true) or false
+ else
+ target = tonumber(target) or false
+ end
local rscale = tonumber (details.rscale) or 1
local force = toboolean(details.force,true)
local check = toboolean(details.check,true)
@@ -154,9 +159,11 @@ function collections.define(name,font,ranges,details)
stop = stop,
gaps = gaps,
offset = offset,
+ target = target,
rscale = rscale,
force = force,
check = check,
+ method = details.method,
factor = factor,
features = features,
}
@@ -177,6 +184,32 @@ end
-- check: when true, only set when present in font
-- force: when false, then not set when already set
+local uccodes = characters.uccodes
+local lccodes = characters.lccodes
+
+local methods = {
+ lowercase = function(oldchars,newchars,vector,start,stop,cloneid)
+ for k, v in next, oldchars do
+ if k >= start and k <= stop then
+ local lccode = lccodes[k]
+ if k ~= lccode and newchars[lccode] then
+ vector[k] = { cloneid, lccode }
+ end
+ end
+ end
+ end,
+ uppercase = function(oldchars,newchars,vector,start,stop,cloneid)
+ for k, v in next, oldchars do
+ if k >= start and k <= stop then
+ local uccode = uccodes[k]
+ if k ~= uccode and newchars[uccode] then
+ vector[k] = { cloneid, uccode }
+ end
+ end
+ end
+ end,
+}
+
function collections.clonevector(name)
statistics.starttiming(fonts)
if trace_collecting then
@@ -193,7 +226,9 @@ function collections.clonevector(name)
local check = definition.check
local force = definition.force
local offset = definition.offset or start
- local remap = definition.remap
+ local remap = definition.remap -- not used
+ local target = definition.target
+ local method = definition.method
local cloneid = list[i]
local oldchars = fontdata[current].characters
local newchars = fontdata[cloneid].characters
@@ -202,28 +237,60 @@ function collections.clonevector(name)
vector.factor = factor
end
if trace_collecting then
- report_fonts("remapping font %a to %a for range %U - %U",current,cloneid,start,stop)
+ if target then
+ report_fonts("remapping font %a to %a for range %U - %U, offset %X, target %U",current,cloneid,start,stop,offset,target)
+ else
+ report_fonts("remapping font %a to %a for range %U - %U, offset %X",current,cloneid,start,stop,offset)
+ end
end
- if check then
- for unicode = start, stop do
- local unic = unicode + offset - start
- if not newchars[unicode] then
- -- not in font
- elseif force or (not vector[unic] and not oldchars[unic]) then
- if remap then
- vector[unic] = { cloneid, remap[unicode] }
- else
+ if method then
+ method = methods[method]
+ end
+ if method then
+ method(oldchars,newchars,vector,start,stop,cloneid)
+ elseif check then
+ if target then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if not newchars[target] then
+ -- not in font
+ elseif force or (not vector[unic] and not oldchars[unic]) then
+ vector[unic] = { cloneid, target }
+ end
+ target = target + 1
+ end
+ elseif remap then
+ -- not used
+ else
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if not newchars[unicode] then
+ -- not in font
+ elseif force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
end
end
end
else
- for unicode = start, stop do
- local unic = unicode + offset - start
- if force or (not vector[unic] and not oldchars[unic]) then
- if remap then
+ if target then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if force or (not vector[unic] and not oldchars[unic]) then
+ vector[unic] = { cloneid, target }
+ end
+ target = target + 1
+ end
+ elseif remap then
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = { cloneid, remap[unicode] }
- else
+ end
+ end
+ else
+ for unicode = start, stop do
+ local unic = unicode + offset - start
+ if force or (not vector[unic] and not oldchars[unic]) then
vector[unic] = cloneid
end
end
diff --git a/tex/context/base/mkiv/font-col.mkvi b/tex/context/base/mkiv/font-col.mkvi
index a9c461e44..7ba92b526 100644
--- a/tex/context/base/mkiv/font-col.mkvi
+++ b/tex/context/base/mkiv/font-col.mkvi
@@ -23,6 +23,11 @@
% \definefontfallback [whatever] [Slanted] [0x0060-0x007F] [force=yes]
% \definefontfallback [whatever] [Bold] [0x0080-0x00FF,0x00A0-0x00AF] [rscale=1.2]
% \definefontfallback [whatever] [BoldSlanted] [0x00C0-0x00C7] [check=yes,force=yes]
+%
+% \definefontfeature [emboldened] [effect={width=0.1,delta=0.4,factor=0.3}]
+% \definefontsynonym [SansEmboldened] [Sans] [features=emboldened]
+% \definefontfallback[FakeSansCaps] [SansEmboldened] [0x0000-0xFFFF] [rscale=.8,method=uppercase]
+% \definefontsynonym [SansCaps] [file:MyriadPro-Regular.otf] [fallbacks=FakeSansCaps]
\writestatus{loading}{ConTeXt Font Macros / Collections}
diff --git a/tex/context/base/mkiv/l-lpeg.lua b/tex/context/base/mkiv/l-lpeg.lua
index 750d5e698..589fa2b0b 100644
--- a/tex/context/base/mkiv/l-lpeg.lua
+++ b/tex/context/base/mkiv/l-lpeg.lua
@@ -308,12 +308,28 @@ function lpeg.instringchecker(p)
end
end
+-- function lpeg.splitter(pattern, action)
+-- return (((1-P(pattern))^1)/action+1)^0
+-- end
+
+-- function lpeg.tsplitter(pattern, action)
+-- return Ct((((1-P(pattern))^1)/action+1)^0)
+-- end
+
function lpeg.splitter(pattern, action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern, action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
-- probleem: separator can be lpeg and that does not hash too well, but
diff --git a/tex/context/base/mkiv/pack-com.mkiv b/tex/context/base/mkiv/pack-com.mkiv
index c7e613368..b69f812e5 100644
--- a/tex/context/base/mkiv/pack-com.mkiv
+++ b/tex/context/base/mkiv/pack-com.mkiv
@@ -290,7 +290,7 @@
\alignmark\alignmark
\m_pack_combinations_rightfiller
\aligntab
- \tabskip\zeropoint \s!plus 1fill
+ \tabskip\zeropoint \s!plus 1fill % \fillskip
\alignmark\alignmark
\cr
\pack_combinations_pickup}
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 8e33d0576..7d9a44566 100644
--- a/tex/context/base/mkiv/status-files.pdf
+++ b/tex/context/base/mkiv/status-files.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/status-lua.pdf b/tex/context/base/mkiv/status-lua.pdf
index 7ce0ed38d..5a886244b 100644
--- a/tex/context/base/mkiv/status-lua.pdf
+++ b/tex/context/base/mkiv/status-lua.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/tabl-xtb.mkvi b/tex/context/base/mkiv/tabl-xtb.mkvi
index ec0e9c25b..148304331 100644
--- a/tex/context/base/mkiv/tabl-xtb.mkvi
+++ b/tex/context/base/mkiv/tabl-xtb.mkvi
@@ -912,7 +912,7 @@
% \tabl_x_stop_cell}
\def\tabl_x_flush_swapped
- {\dorecurse\c_tabl_x_swapped
+ {\dorecurse\c_tabl_x_swapped_max
{\expandafter
\startxrow
\the\csname\??xtableswap##1\endcsname\relax
@@ -922,31 +922,55 @@
{\expandafter\newtoks\csname\??xtableswap\number\c_tabl_x_swapped\endcsname
\expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname}
-\unexpanded\def\tabl_x_collect_cell_start#content\stopxcell
- {\global\advance\c_tabl_x_swapped\plusone
- \ifnum\c_tabl_x_swapped>\c_tabl_x_swapped_max
- \global\c_tabl_x_swapped_max\c_tabl_x_swapped
- \fi
- \expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname
- \ifx\t_tabl_x_swapped\relax
- \tabl_x_collect_allocate
- \fi
- \ifx\m_tabl_x_swapped_settings\empty
- \gtoksapp\t_tabl_x_swapped{\tabl_x_c_cell_start{}#content\tabl_x_c_cell_stop}
- \else
- \gtoksapp\t_tabl_x_swapped\expandafter{\expandafter\tabl_x_c_cell_start\expandafter{\m_tabl_x_swapped_settings}#content\tabl_x_c_cell_stop}%
- \fi}
+\def\tabl_x_collect_advance
+ {\global\advance\c_tabl_x_swapped\plusone
+ \ifnum\c_tabl_x_swapped>\c_tabl_x_swapped_max
+ \global\c_tabl_x_swapped_max\c_tabl_x_swapped
+ \fi
+ \expandafter\let\expandafter\t_tabl_x_swapped\csname\??xtableswap\number\c_tabl_x_swapped\endcsname
+ \ifx\t_tabl_x_swapped\relax
+ \tabl_x_collect_allocate
+ \fi}
+
+\unexpanded\def\tabl_x_collect_cell_start
+ {\doifelsenextoptionalcs
+ \tabl_x_collect_cell_start_yes
+ \tabl_x_collect_cell_start_nop}
+
+\def\tabl_x_collect_cell_start_nop#content\stopxcell
+ {\tabl_x_collect_advance
+ \ifx\m_tabl_x_swapped_settings\empty
+ \gtoksapp\t_tabl_x_swapped{\tabl_x_c_cell_start{}#content\tabl_x_c_cell_stop}%
+ \else
+ \gtoksapp\t_tabl_x_swapped\expandafter{\expandafter\tabl_x_c_cell_start\expandafter{\m_tabl_x_swapped_settings}#content\tabl_x_c_cell_stop}%
+ \fi}
+
+\def\tabl_x_collect_cell_start_yes[#settings]#content\stopxcell
+ {\tabl_x_collect_advance
+ \ifx\m_tabl_x_swapped_settings\empty
+ \gtoksapp\t_tabl_x_swapped{\tabl_x_c_cell_start{}[#settings]#content\tabl_x_c_cell_stop}%
+ \else
+ \gtoksapp\t_tabl_x_swapped\expandafter{\expandafter\tabl_x_c_cell_start\expandafter{\m_tabl_x_swapped_settings}[#settings]#content\tabl_x_c_cell_stop}%
+ \fi
+ \getdummyparameters[\c!ny=1,#settings]%
+ \scratchcounter\numexpr\dummyparameter\c!ny-\plusone\relax
+ \ifcase\scratchcounter\else
+ \dorecurse\scratchcounter\tabl_x_collect_advance
+ \fi}
\unexpanded\def\startxcolumn % todo: arguments
{\begingroup
\global\c_tabl_x_swapped\zerocount
\let\startxcell\tabl_x_collect_cell_start
\let\stopxcell \relax
- \doifelsenextoptionalcs\tabl_x_start_column_yes\relax}
+ \doifelsenextoptionalcs\tabl_x_start_column_yes\tabl_x_start_column_nop}
\def\tabl_x_start_column_yes[#1]%
{\xdef\m_tabl_x_swapped_settings{#1}}
+\def\tabl_x_start_column_nop
+ {\glet\m_tabl_x_swapped_settings\empty}
+
\unexpanded\def\stopxcolumn
{\endgroup}
diff --git a/tex/context/interface/mkiv/context-en.xml b/tex/context/interface/mkiv/context-en.xml
index 9b1cbd0c2..508e2fc7c 100644
--- a/tex/context/interface/mkiv/context-en.xml
+++ b/tex/context/interface/mkiv/context-en.xml
@@ -11379,12 +11379,20 @@
<cd:constant type="cd:number"/>
<cd:constant type="cd:name"/>
</cd:parameter>
+ <cd:parameter name="target">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
<cd:parameter name="features">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="factor">
<cd:constant type="cd:number"/>
</cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="lowercase"/>
+ <cd:constant type="uppercase"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 7137482f0..f373195d9 100644
--- a/tex/context/interface/mkiv/i-context.pdf
+++ b/tex/context/interface/mkiv/i-context.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-fonts.xml b/tex/context/interface/mkiv/i-fonts.xml
index 9735f8935..03bdb2a7e 100644
--- a/tex/context/interface/mkiv/i-fonts.xml
+++ b/tex/context/interface/mkiv/i-fonts.xml
@@ -31,12 +31,20 @@
<cd:constant type="cd:number"/>
<cd:constant type="cd:name"/>
</cd:parameter>
+ <cd:parameter name="target">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
<cd:parameter name="features">
<cd:constant type="cd:name"/>
</cd:parameter>
<cd:parameter name="factor">
<cd:constant type="cd:number"/>
</cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="lowercase"/>
+ <cd:constant type="uppercase"/>
+ </cd:parameter>
</cd:assignments>
</cd:arguments>
</cd:command>
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 4b64b52c2..3dcf09ed4 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index ccf6d3a7c..adc2c6202 100644
--- a/tex/generic/context/luatex/luatex-fonts-merged.lua
+++ b/tex/generic/context/luatex/luatex-fonts-merged.lua
@@ -1,6 +1,6 @@
-- merged file : c:/data/develop/context/sources/luatex-fonts-merged.lua
-- parent file : c:/data/develop/context/sources/luatex-fonts.lua
--- merge date : 10/02/18 23:17:57
+-- merge date : 10/03/18 16:02:19
do -- begin closure to overcome local limits and interference
@@ -306,10 +306,18 @@ function lpeg.instringchecker(p)
end
end
function lpeg.splitter(pattern,action)
- return (((1-P(pattern))^1)/action+1)^0
+ if action then
+ return (((1-P(pattern))^1)/action+1)^0
+ else
+ return (Cs((1-P(pattern))^1)+1)^0
+ end
end
function lpeg.tsplitter(pattern,action)
- return Ct((((1-P(pattern))^1)/action+1)^0)
+ if action then
+ return Ct((((1-P(pattern))^1)/action+1)^0)
+ else
+ return Ct((Cs((1-P(pattern))^1)+1)^0)
+ end
end
local splitters_s,splitters_m,splitters_t={},{},{}
local function splitat(separator,single)