summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/data/scite/context/lexers/data/scite-context-data-metafun.lua2
-rw-r--r--context/data/scite/context/scite-context-data-metafun.properties57
-rw-r--r--doc/context/documents/general/manuals/xml-mkiv.pdfbin1307686 -> 1310410 bytes
-rw-r--r--doc/context/sources/general/manuals/xml/xml-mkiv.tex226
-rw-r--r--metapost/context/base/mpiv/mp-mlib.mpiv10
-rw-r--r--tex/context/base/context-version.pdfbin4177 -> 4175 bytes
-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/grph-fig.mkiv2
-rw-r--r--tex/context/base/mkiv/grph-fil.lua1
-rw-r--r--tex/context/base/mkiv/lxml-ini.lua1
-rw-r--r--tex/context/base/mkiv/lxml-ini.mkiv1
-rw-r--r--tex/context/base/mkiv/lxml-tex.lua36
-rw-r--r--tex/context/base/mkiv/mult-fun.lua6
-rw-r--r--tex/context/base/mkiv/page-flt.lua2
-rw-r--r--tex/context/base/mkiv/page-mix.mkiv26
-rw-r--r--tex/context/base/mkiv/page-set.mkiv3
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin9117 -> 8965 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin270266 -> 270287 bytes
-rw-r--r--tex/context/interface/common/i-en-xml.xml4
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
21 files changed, 253 insertions, 130 deletions
diff --git a/context/data/scite/context/lexers/data/scite-context-data-metafun.lua b/context/data/scite/context/lexers/data/scite-context-data-metafun.lua
index d033d3e9b..2415bfd12 100644
--- a/context/data/scite/context/lexers/data/scite-context-data-metafun.lua
+++ b/context/data/scite/context/lexers/data/scite-context-data-metafun.lua
@@ -1,4 +1,4 @@
return {
- ["commands"]={ "transparency", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadestep", "withshadefraction", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "textext", "thetextext", "rawtextext", "textextoffset", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "property", "properties", "withproperties", "asgroup", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "drawwholepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "format", "formatted", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "area", "addbackground" },
+ ["commands"]={ "transparency", "sqr", "log", "ln", "exp", "inv", "pow", "pi", "radian", "tand", "cotd", "sin", "cos", "tan", "cot", "atan", "asin", "acos", "invsin", "invcos", "invtan", "acosh", "asinh", "sinh", "cosh", "zmod", "paired", "tripled", "unitcircle", "fulldiamond", "unitdiamond", "fullsquare", "llcircle", "lrcircle", "urcircle", "ulcircle", "tcircle", "bcircle", "lcircle", "rcircle", "lltriangle", "lrtriangle", "urtriangle", "ultriangle", "uptriangle", "downtriangle", "lefttriangle", "righttriangle", "triangle", "smoothed", "cornered", "superellipsed", "randomized", "squeezed", "enlonged", "shortened", "punked", "curved", "unspiked", "simplified", "blownup", "stretched", "enlarged", "leftenlarged", "topenlarged", "rightenlarged", "bottomenlarged", "crossed", "laddered", "randomshifted", "interpolated", "paralleled", "cutends", "peepholed", "llenlarged", "lrenlarged", "urenlarged", "ulenlarged", "llmoved", "lrmoved", "urmoved", "ulmoved", "rightarrow", "leftarrow", "centerarrow", "boundingbox", "innerboundingbox", "outerboundingbox", "pushboundingbox", "popboundingbox", "bottomboundary", "leftboundary", "topboundary", "rightboundary", "xsized", "ysized", "xysized", "sized", "xyscaled", "intersection_point", "intersection_found", "penpoint", "bbwidth", "bbheight", "withshade", "withcircularshade", "withlinearshade", "defineshade", "shaded", "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter", "withshadedirection", "withshadestep", "withshadefraction", "cmyk", "spotcolor", "multitonecolor", "namedcolor", "drawfill", "undrawfill", "inverted", "uncolored", "softened", "grayed", "greyed", "onlayer", "along", "graphictext", "loadfigure", "externalfigure", "figure", "register", "outlinetext", "checkedbounds", "checkbounds", "strut", "rule", "withmask", "bitmapimage", "colordecimals", "ddecimal", "dddecimal", "ddddecimal", "textext", "thetextext", "rawtextext", "textextoffset", "verbatim", "thelabel", "label", "autoalign", "transparent", "withtransparency", "property", "properties", "withproperties", "asgroup", "infont", "space", "crlf", "dquote", "percent", "SPACE", "CRLF", "DQUOTE", "PERCENT", "grayscale", "greyscale", "withgray", "withgrey", "colorpart", "readfile", "clearxy", "unitvector", "center", "epsed", "anchored", "originpath", "infinite", "break", "xstretched", "ystretched", "snapped", "pathconnectors", "function", "constructedfunction", "constructedpath", "constructedpairs", "straightfunction", "straightpath", "straightpairs", "curvedfunction", "curvedpath", "curvedpairs", "evenly", "oddly", "condition", "pushcurrentpicture", "popcurrentpicture", "arrowpath", "tensecircle", "roundedsquare", "colortype", "whitecolor", "blackcolor", "basiccolors", "normalfill", "normaldraw", "visualizepaths", "detailpaths", "naturalizepaths", "drawboundary", "drawwholepath", "drawpathonly", "visualizeddraw", "visualizedfill", "detaileddraw", "draworigin", "drawboundingbox", "drawpath", "drawpoint", "drawpoints", "drawcontrolpoints", "drawcontrollines", "drawpointlabels", "drawlineoptions", "drawpointoptions", "drawcontroloptions", "drawlabeloptions", "draworiginoptions", "drawboundoptions", "drawpathoptions", "resetdrawoptions", "undashed", "decorated", "redecorated", "undecorated", "passvariable", "passarrayvariable", "tostring", "format", "formatted", "startpassingvariable", "stoppassingvariable", "eofill", "eoclip", "nofill", "area", "addbackground", "shadedup", "shadeddown", "shadedleft", "shadedright" },
["internals"]={ "nocolormodel", "greycolormodel", "graycolormodel", "rgbcolormodel", "cmykcolormodel", "shadefactor", "textextoffset", "normaltransparent", "multiplytransparent", "screentransparent", "overlaytransparent", "softlighttransparent", "hardlighttransparent", "colordodgetransparent", "colorburntransparent", "darkentransparent", "lightentransparent", "differencetransparent", "exclusiontransparent", "huetransparent", "saturationtransparent", "colortransparent", "luminositytransparent", "metapostversion", "maxdimensions", "drawoptionsfactor" },
} \ No newline at end of file
diff --git a/context/data/scite/context/scite-context-data-metafun.properties b/context/data/scite/context/scite-context-data-metafun.properties
index 15c700ba6..a4d297e48 100644
--- a/context/data/scite/context/scite-context-data-metafun.properties
+++ b/context/data/scite/context/scite-context-data-metafun.properties
@@ -22,34 +22,35 @@ xsized ysized xysized sized xyscaled \
intersection_point intersection_found penpoint bbwidth bbheight \
withshade withcircularshade withlinearshade defineshade shaded \
shadedinto withshadecolors withshadedomain withshademethod withshadefactor \
-withshadevector withshadecenter withshadestep withshadefraction cmyk \
-spotcolor multitonecolor namedcolor drawfill undrawfill \
-inverted uncolored softened grayed greyed \
-onlayer along graphictext loadfigure externalfigure \
-figure register outlinetext checkedbounds checkbounds \
-strut rule withmask bitmapimage colordecimals \
-ddecimal dddecimal ddddecimal textext thetextext \
-rawtextext textextoffset verbatim thelabel label \
-autoalign transparent withtransparency property properties \
-withproperties asgroup infont space crlf \
-dquote percent SPACE CRLF DQUOTE \
-PERCENT grayscale greyscale withgray withgrey \
-colorpart readfile clearxy unitvector center \
-epsed anchored originpath infinite break \
-xstretched ystretched snapped pathconnectors function \
-constructedfunction constructedpath constructedpairs straightfunction straightpath \
-straightpairs curvedfunction curvedpath curvedpairs evenly \
-oddly condition pushcurrentpicture popcurrentpicture arrowpath \
-tensecircle roundedsquare colortype whitecolor blackcolor \
-basiccolors normalfill normaldraw visualizepaths detailpaths \
-naturalizepaths drawboundary drawwholepath drawpathonly visualizeddraw \
-visualizedfill detaileddraw draworigin drawboundingbox drawpath \
-drawpoint drawpoints drawcontrolpoints drawcontrollines drawpointlabels \
-drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions draworiginoptions \
-drawboundoptions drawpathoptions resetdrawoptions undashed decorated \
-redecorated undecorated passvariable passarrayvariable tostring \
-format formatted startpassingvariable stoppassingvariable eofill \
-eoclip nofill area addbackground
+withshadevector withshadecenter withshadedirection withshadestep withshadefraction \
+cmyk spotcolor multitonecolor namedcolor drawfill \
+undrawfill inverted uncolored softened grayed \
+greyed onlayer along graphictext loadfigure \
+externalfigure figure register outlinetext checkedbounds \
+checkbounds strut rule withmask bitmapimage \
+colordecimals ddecimal dddecimal ddddecimal textext \
+thetextext rawtextext textextoffset verbatim thelabel \
+label autoalign transparent withtransparency property \
+properties withproperties asgroup infont space \
+crlf dquote percent SPACE CRLF \
+DQUOTE PERCENT grayscale greyscale withgray \
+withgrey colorpart readfile clearxy unitvector \
+center epsed anchored originpath infinite \
+break xstretched ystretched snapped pathconnectors \
+function constructedfunction constructedpath constructedpairs straightfunction \
+straightpath straightpairs curvedfunction curvedpath curvedpairs \
+evenly oddly condition pushcurrentpicture popcurrentpicture \
+arrowpath tensecircle roundedsquare colortype whitecolor \
+blackcolor basiccolors normalfill normaldraw visualizepaths \
+detailpaths naturalizepaths drawboundary drawwholepath drawpathonly \
+visualizeddraw visualizedfill detaileddraw draworigin drawboundingbox \
+drawpath drawpoint drawpoints drawcontrolpoints drawcontrollines \
+drawpointlabels drawlineoptions drawpointoptions drawcontroloptions drawlabeloptions \
+draworiginoptions drawboundoptions drawpathoptions resetdrawoptions undashed \
+decorated redecorated undecorated passvariable passarrayvariable \
+tostring format formatted startpassingvariable stoppassingvariable \
+eofill eoclip nofill area addbackground \
+shadedup shadeddown shadedleft shadedright
keywordclass.metafun.internals=\
nocolormodel greycolormodel graycolormodel rgbcolormodel \
diff --git a/doc/context/documents/general/manuals/xml-mkiv.pdf b/doc/context/documents/general/manuals/xml-mkiv.pdf
index 5093710d7..20d17ad9d 100644
--- a/doc/context/documents/general/manuals/xml-mkiv.pdf
+++ b/doc/context/documents/general/manuals/xml-mkiv.pdf
Binary files differ
diff --git a/doc/context/sources/general/manuals/xml/xml-mkiv.tex b/doc/context/sources/general/manuals/xml/xml-mkiv.tex
index 87317b69b..a2b981f64 100644
--- a/doc/context/sources/general/manuals/xml/xml-mkiv.tex
+++ b/doc/context/sources/general/manuals/xml/xml-mkiv.tex
@@ -257,7 +257,7 @@ Hasselt NL
We use a very simple document structure for demonstrating how a converter is
defined. In practice a mapping will be more complex, especially when we have a
-style with complect chapter openings using data coming from all kind of places,
+style with complex chapter openings using data coming from all kind of places,
different styling of sections with the same name, selectively (out of order)
flushed content, special formatting, etc.
@@ -311,10 +311,10 @@ but as well:
\xmlflush{demo::6}\endgraf
\stoptyping
-Keep in mind that the actual node references are abstractions, you never see
-those \type {<id>::<number>}'s, because we will use either the abstract \type
-{#1} (any node) or an explicit reference like \type {demo}. The previous setup
-when issued will be like:
+Keep in mind that the references tor the actual nodes (elements) are
+abstractions, you never see those \type {<id>::<number>}'s, because we will use
+either the abstract \type {#1} (any node) or an explicit reference like \type
+{demo}. The previous setup when issued will be like:
\starttyping
\startchapter[title=\xmlfirst{demo::3}{/title}]
@@ -333,7 +333,7 @@ Doing that with transformations or filtering is often more complex than leaving
that to \TEX. As soon as the list gets typeset, the reference (\type {demo::#3})
is used for the lookup. This is because by default the title is stored as given.
So, as long as we make sure the \XML\ source is loaded before the table of
-contents is typeset we're ok. Later we will look into this on more detail, for
+contents is typeset we're ok. Later we will look into this in more detail, for
now it's enough to know that in most cases the abstract \type {#1} reference will
work out ok.
@@ -664,8 +664,8 @@ ignored in the definition. This means that we don't have to worry about so calle
spurious spaces but it also means that when we do want a space, we have to use
the \type {\space} command.
-The only difference between setups and \XML\ setups is that the later ones get an
-argument (\type {#1}) that reflects the current node in the \XML\ tree.
+The only difference between setups and \XML\ setups is that the following ones
+get an argument (\type {#1}) that reflects the current node in the \XML\ tree.
\stopsection
@@ -722,7 +722,7 @@ code there are several ways to deal with these issues. Take the following docume
When the file is read the \type {&lt;} entity will be replaced by \type {<} and
the \type {&gt;} by \type {>}. The numeric entities will be replaced by the
characters they refer to. The \type {&mess} is kind of special. We do preload
-a huge list of more of less standardized entities but \type {mess} is not in
+a huge list of more or less standardized entities but \type {mess} is not in
there. However, it is possible to have it defined in the document preamble, like:
\starttyping
@@ -980,7 +980,7 @@ the current document id. There is also \type {\xmlself} which expands to the
current node number (\type {#1} in setups).
\startxmlcmd {\cmdbasicsetup{xmlmain}}
- returns the whole documents
+ returns the whole document
\stopxmlcmd
Normally such a flush will trigger a chain reaction of setups associated with the
@@ -1035,7 +1035,7 @@ for users.
When we flush an element, the associated \XML\ setups are expanded. The most
straightforward way to flush an element is the following. Keep in mind that the
-returned valus itself can trigger setups and therefore flushes.
+returned values itself can trigger setups and therefore flushes.
\startxmlcmd {\cmdbasicsetup{xmlflush}}
returns all nodes under \cmdinternal {cd:node}
@@ -1142,7 +1142,7 @@ You can restrict flushing by using commands that accept a specification.
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlinlineverbatim}}
- return the content of the node as inline verbatim code, that is no further
+ return the content of the node as inline verbatim code; no further
interpretation (expansion) takes place and spaces are honoured; it uses the
following wrapper
\stopxmlcmd
@@ -1153,7 +1153,7 @@ You can restrict flushing by using commands that accept a specification.
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmldisplayverbatim}}
- return the content the node as display verbatim code, that is no further
+ return the content of the node as display verbatim code; no further
interpretation (expansion) takes place and leading and trailing spaces and
newlines are treated special; it uses the following wrapper
\stopxmlcmd
@@ -1347,8 +1347,8 @@ something that users of \XSLT\ might recognize as templates.
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlsetsetup}}
- associates setups (\TEX\ code) \cmdinternal {cd:setup} to the elements to
- \cmdinternal {cd:node} that match \cmdinternal {cd:lpath}
+ associates setups \cmdinternal {cd:setup} (\TEX\ code) with the matching
+ nodes of \cmdinternal {cd:lpath} or root \cmdinternal {cd:node}
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlprependsetup}}
@@ -1381,7 +1381,8 @@ something that users of \XSLT\ might recognize as templates.
\startxmlcmd {\cmdbasicsetup{xmlappenddocumentsetup}}
adds \cmdinternal {cd:setup} to the list of setups to be applied to
- \cmdinternal {cd:name} (alias: \type{\xmlregisterdocumentsetup})
+ \cmdinternal {cd:name} (you can also use the alias: \type
+ {\xmlregisterdocumentsetup})
\stopxmlcmd
\startxmlcmd {\cmdbasicsetup{xmlbeforedocumentsetup}}
@@ -1438,7 +1439,7 @@ and an \cmdinternal {cd:lpath} as second:
at node \cmdinternal {cd:node}
\stopxmlcmd
-\startxmlcmd {\cmdbasicsetup{xmldoifelse}{yes}}
+\startxmlcmd {\cmdbasicsetup{xmldoifelse}}
expands to \cmdinternal {cd:true} when \cmdinternal {cd:lpath} matches at
node \cmdinternal {cd:node} and to \cmdinternal {cd:false} otherwise
\stopxmlcmd
@@ -1497,8 +1498,7 @@ hidden. You can apply the default yourself using:
\stopxmlcmd
You can set \type {compress} to \type {yes} in which case comment is stripped
-from the tree when the file is read. When \type {entities} is set to \type {yes}
-(this is the default) entities are replaced.
+from the tree when the file is read.
\startxmlcmd {\cmdbasicsetup{xmlregisterns}}
associates an internal namespace (like \type {mml}) with one given in the
@@ -1702,23 +1702,23 @@ You can pass your own functions too. Such functions are defined in the the \type
{xml.expressions} namespace. We have defined a few shortcuts:
\starttabulate[|l|l|]
-\type {find(str,pattern)} \NC \type{string.find} \NC \NR
-\type {contains(str)} \NC \type{string.find} \NC \NR
-\type {oneof(str,...)} \NC is \type{str} in list \NC \NR
-\type {upper(str)} \NC \type{characters.upper} \NC \NR
-\type {lower(str)} \NC \type{characters.lower} \NC \NR
-\type {number(str)} \NC \type{tonumber} \NC \NR
-\type {boolean(str)} \NC \type{toboolean} \NC \NR
-\type {idstring(str)} \NC removes leading hash \NC \NR
-\type {name(index)} \NC full tag name \NC \NR
-\type {tag(index)} \NC tag name \NC \NR
-\type {namespace(index)} \NC namespace of tag \NC \NR
-\type {text(index)} \NC content \NC \NR
-\type {error(str)} \NC quit and show error \NC \NR
-\type {quit()} \NC quit \NC \NR
-\type {print()} \NC print message \NC \NR
-\type {count(pattern)} \NC number of matches \NC \NR
-\type {child(pattern)} \NC take child that matches \NC \NR
+\NC \type {find(str,pattern)} \NC \type{string.find} \NC \NR
+\NC \type {contains(str)} \NC \type{string.find} \NC \NR
+\NC \type {oneof(str,...)} \NC is \type{str} in list \NC \NR
+\NC \type {upper(str)} \NC \type{characters.upper} \NC \NR
+\NC \type {lower(str)} \NC \type{characters.lower} \NC \NR
+\NC \type {number(str)} \NC \type{tonumber} \NC \NR
+\NC \type {boolean(str)} \NC \type{toboolean} \NC \NR
+\NC \type {idstring(str)} \NC removes leading hash \NC \NR
+\NC \type {name(index)} \NC full tag name \NC \NR
+\NC \type {tag(index)} \NC tag name \NC \NR
+\NC \type {namespace(index)} \NC namespace of tag \NC \NR
+\NC \type {text(index)} \NC content \NC \NR
+\NC \type {error(str)} \NC quit and show error \NC \NR
+\NC \type {quit()} \NC quit \NC \NR
+\NC \type {print()} \NC print message \NC \NR
+\NC \type {count(pattern)} \NC number of matches \NC \NR
+\NC \type {child(pattern)} \NC take child that matches \NC \NR
\stoptabulate
@@ -1734,7 +1734,7 @@ functions.
\stoptabulate
The given expression between \type {[]} is converted to a \LUA\ expression so you
-can use the usual ingredients:
+can use the usual operators:
\starttyping
== ~= <= >= < > not and or ()
@@ -1780,12 +1780,13 @@ filters to the expression, for instance:
a/(b|c)/!d/e/text()
\stoptyping
-In a filter, the last part of the \cmdinternal {cd:lpath} expression is a function call.
-The previous example returns the text of each element \type {e} that results from
-matching the expression. When running \TEX\ the following functions are available.
-Some are also also available when using pure \LUA. In \TEX\ you can often use one of
-the macros like \type {\xmlfirst} instead of a \type {\xmlfilter} with finalizer
-\type {first()}. The filter can be somewhat faster but that is hardly noticeable.
+In a filter, the last part of the \cmdinternal {cd:lpath} expression is a
+function call. The previous example returns the text of each element \type {e}
+that results from matching the expression. When running \TEX\ the following
+functions are available. Some are also available when using pure \LUA. In \TEX\
+you can often use one of the macros like \type {\xmlfirst} instead of a \type
+{\xmlfilter} with finalizer \type {first()}. The filter can be somewhat faster
+but that is hardly noticeable.
\starttabulate[|l|l|p|]
\NC \type {context()} \NC string \NC the serialized text with \TEX\ catcode regime \NC \NR
@@ -1793,8 +1794,8 @@ the macros like \type {\xmlfirst} instead of a \type {\xmlfilter} with finalizer
\NC \type {function()} \NC string \NC depends on the function \NC \NR
%
\NC \type {name()} \NC string \NC the (remapped) namespace \NC \NR
-\NC \type {tag()} \NC string \NC the name of the element \NR
-\NC \type {tags()} \NC list \NC the names of the element \NR
+\NC \type {tag()} \NC string \NC the name of the element \NC \NR
+\NC \type {tags()} \NC list \NC the names of the element \NC \NR
%
\NC \type {text()} \NC string \NC the serialized text \NC \NR
\NC \type {upper()} \NC string \NC the serialized text uppercased \NC \NR
@@ -2004,7 +2005,7 @@ interface unless mentioned in this manual.
\startchapter[title={Tips and tricks}]
-\startsection[title={Tracing}]
+\startsection[title={tracing}]
It can be hard to debug code as much happens kind of behind the screens.
Therefore we have a couple of tracing options. Of course you can typeset some
@@ -2018,6 +2019,65 @@ status information, using for instance:
typeset the name if the element given by \cmdinternal {cd:node}
\stopxmlcmd
+\startxmlcmd {\cmdbasicsetup{xmlpath}}
+ returns the complete path (including namespace prefix and index) of the
+ given \cmdinternal {cd:node}
+\stopxmlcmd
+
+\startbuffer[demo]
+<?xml version "1.0"?>
+<document>
+ <section>
+ <content>
+ <p>first</p>
+ <p><b>second</b></p>
+ </content>
+ </section>
+ <section>
+ <content>
+ <p><b>third</b></p>
+ <p>fourth</p>
+ </content>
+ </section>
+</document>
+\stopbuffer
+
+Say that we have the following \XML:
+
+\typebuffer[demo]
+
+and the next definitions:
+
+\startbuffer
+\startxmlsetups xml:demo:base
+ \xmlsetsetup{#1}{p|b}{xml:demo:*}
+\stopxmlsetups
+
+\startxmlsetups xml:demo:p
+ \xmlflush{#1}
+ \par
+\stopxmlsetups
+
+\startxmlsetups xml:demo:b
+ \par
+ \xmlpath{#1} : \xmlflush{#1}
+ \par
+\stopxmlsetups
+
+\xmlregisterdocumentsetup{example-10}{xml:demo:base}
+
+\xmlprocessbuffer{example-10}{demo}{}
+\stopbuffer
+
+\typebuffer
+
+This will give us:
+
+\blank \startpacked \getbuffer \stoppacked \blank
+
+If you use \type {\xmlshow} you will get a complete subtree which can
+be handy for tracing but can also lead to large documents.
+
We also have a bunch of trackers that can be enabled, like:
\starttyping
@@ -2053,7 +2113,7 @@ trace the filename.
returns the list of files where the node comes from
\stopxmlcmd
-\startxmlcmd {\cmdbasicsetup{xmlinclusions}}
+\startxmlcmd {\cmdbasicsetup{xmlbadinclusions}}
returns a list of files that were not included due to some problem
\stopxmlcmd
@@ -2062,14 +2122,14 @@ instance in the margin.
\stopsection
-\startsection[title={Expansion}]
+\startsection[title={expansion}]
For novice users the concept of expansion might sound frightening and to some
extend it is. However, it is important enough to spend some words on it here.
It is good to realize that most setups are sort of immediate. When one setup is
issued, it can call another one and so on. Normally you won't notice that but
-there are cases where that can be an problem. In \TEX\ you can define a macro,
+there are cases where that can be a problem. In \TEX\ you can define a macro,
take for instance:
\starttyping
@@ -2106,7 +2166,7 @@ Here we get something like:
\foobar => {\def\barfoo{...}}
\stoptyping
-When \type {\barfoo} is not defined we get an error and when it is know and expands
+When \type {\barfoo} is not defined we get an error and when it is known and expands
to something weird we might also get an error.
Especially when you don't know what content can show up, this can result in errors
@@ -2131,7 +2191,7 @@ call to the macro, think of:
\stoptyping
But this is often not needed, most \CONTEXT\ commands can handle the expansions
-quite well but it's good to know that there is a away out. So, now to some
+quite well but it's good to know that there is a way out. So, now to some
examples. Imagine that we have an \XML\ file that looks as follows:
\starttyping
@@ -2262,7 +2322,7 @@ We need to deal with emphasis and the content of the chapter.
A similar approach is followed with the index entries. Watch how we use the
numbered entries variant (in this case we could also have used just \type
-{entries} and \type {keys}.
+{entries} and \type {keys}).
\starttyping
\startxmlsetups xml:index
@@ -2327,7 +2387,7 @@ dealt with in a similar way.}
\stopsection
-\startsection[title={Special cases}]
+\startsection[title={special cases}]
Normally the content will be flushed under a special (so called) catcode regime.
This means that characters that have a special meaning in \TEX\ will have no such
@@ -2402,10 +2462,10 @@ A simple mapping is:
\stopxmlsetups
\stoptyping
-The \type {\bTD} command is a so called delimited command which means that
-it picks up its argument by looking for an \type {\eTD}. For a simple case
-like here this works quite well because the flush is inside the pair. This
-is not the case in the following variant:
+The \type {\bTD} command is a so called delimited command which means that it
+picks up its argument by looking for an \type {\eTD}. For the simple case here
+this works quite well because the flush is inside the pair. This is not the case
+in the following variant:
\starttyping
\startxmlsetups xml:td:start
@@ -2477,9 +2537,9 @@ another weird one:
\stopsection
-\startsection[title={Selectors and injectors}]
+\startsection[title={selectors and injectors}]
-This chapter describes a bit special feature, one that we needed for a project
+This section describes a bit special feature, one that we needed for a project
where we could not touch the original content but could add specific sections for
our own purpose. Hopefully the example demonstrates its useability.
@@ -2574,12 +2634,12 @@ We can define a message handler as follows:
\typebuffer \getbuffer
-When this file is process you will see this on the console:
+When this file is processed you will see this on the console:
-\startbuffer
+\starttyping
info > 1: this is a demo file
info > 2: this is a demo file
-\stopbuffer
+\stoptyping
The file has some sections that can be used or ignored. The recipe for
obeying \type {t1} and \type {t4} is the following:
@@ -2623,7 +2683,7 @@ This typesets:
\stopnarrower
The include coding is kind of special: it permits adding content (in a comment)
-and ignoring the rest so that we indeed can add something withou tinterfering
+and ignoring the rest so that we indeed can add something without interfering
with the original. Of course in a normal workflow such messy solutions are
not needed, but alas, often workflows are not that clean, especially when one
has no real control over the source.
@@ -2668,8 +2728,8 @@ In the example we see:
<?context-directive injector page t7 t8 ?>
\stoptyping
-When we \type {\xmlsetinjector[t7]} a pagebreak will injected in that spot. Tags
-like \type {t7}, \type {t8} etc.\ can represent versions.
+When we set \type {\xmlsetinjector[t7]} a pagebreak will injected in that spot.
+Tags like \type {t7}, \type {t8} etc.\ can represent versions.
\stopsection
@@ -2680,7 +2740,7 @@ like \type {t7}, \type {t8} etc.\ can represent versions.
\startsection[title={introduction}]
There is not that much system in the following examples. They resulted from tests
-with different documents. The current implementation evolved out if the
+with different documents. The current implementation evolved out of the
experimental code. For instance, I decided to add the multiple expressions in row
handling after a few email exchanges with Jean|-|Michel Huffen.
@@ -2950,7 +3010,7 @@ This gives:
\stopsection
-\startsection[title=Conditional setups]
+\startsection[title=conditional setups]
Say that we have this code:
@@ -2972,7 +3032,7 @@ being named \type {what}. A faster solution which also takes less code is this:
\stopsection
-\startsection[title=Manipulating]
+\startsection[title=manipulating]
Assume that we have the following \XML\ data:
@@ -3032,7 +3092,7 @@ The result is: \start \inlinebuffer \stop
\stopsection
-\startsection[title=Cross referencing]
+\startsection[title=cross referencing]
A rather common way to add cross references to \XML\ files is to borrow the
asymmetrical id's from \HTML. This means that one cannot simply use a value
@@ -3096,7 +3156,7 @@ This will typeset two footnotes.
\getbuffer
-The second variant collects the references so that the tiem spend on lookups is
+The second variant collects the references so that the time spend on lookups is
less.
\startbuffer
@@ -3253,7 +3313,7 @@ The processor code is:
\typebuffer
-We color a sequence of the same titles (numbers here) in red. The first
+We color a sequence of the same titles (numbers here) differently. The first
solution remembers the last title:
\startbuffer
@@ -3291,12 +3351,12 @@ end
\stopluacode
\stopbuffer
-\typebuffer
+\typebuffer \getbuffer
The \type {embeddedxtable} environment is needed because the table is picked up
as argument.
-\getbuffer \getbuffer[process]
+\startlinecorrection \getbuffer[process] \stoplinecorrection
The second implemetation remembers what titles are already processed so here we
can color the last one too.
@@ -3341,7 +3401,9 @@ end
\stopluacode
\stopbuffer
-\typebuffer \getbuffer \getbuffer[process]
+\typebuffer \getbuffer
+
+\startlinecorrection \getbuffer[process] \stoplinecorrection
A solution without any state variable is given below.
@@ -3378,7 +3440,9 @@ end
\stopluacode
\stopbuffer
-\typebuffer \getbuffer \getbuffer[process]
+\typebuffer \getbuffer
+
+\startlinecorrection \getbuffer[process] \stoplinecorrection
Here is a solution that delegates even more to \LUA. The previous variants were
actually not that safe with repect to special characters and didn't handle
@@ -3454,7 +3518,9 @@ end
\xmlprocessbuffer{example-5}{demo}{}
\stopbuffer
-\typebuffer \getbuffer
+\typebuffer
+
+\startlinecorrection \getbuffer \stoplinecorrection
The question is, do we really need \LUA ? Often we don't, apart maybe from an
occasional special finalizer. A pure \TEX\ solution is given next:
@@ -3513,7 +3579,9 @@ occasional special finalizer. A pure \TEX\ solution is given next:
\xmlprocessbuffer{example-5}{demo}{}
\stopbuffer
-\typebuffer \getbuffer
+\typebuffer
+
+\startlinecorrection \getbuffer \stoplinecorrection
You can even save a few lines of code:
@@ -3533,6 +3601,7 @@ You can even save a few lines of code:
Or if you prefer:
+\starttyping
\startxmlsetups xml:c
\xdef\MyCurrentTitle{\xmltext{#1}{.}}
\doifelse {\MyPreviousTitle} {\MyCurrentTitle} {
@@ -3562,6 +3631,7 @@ Or if you prefer:
\stopxcell
\global\let\MyPreviousTitle\MyCurrentTitle
\stopxmlsetups
+\stoptyping
These examples demonstrate that it doesn't hurt to know a little bit of \TEX\
programming: defining macros and basic comparisons can come in handy. There are
@@ -3570,7 +3640,7 @@ the wiki or you can just ask on the list.
\stopsection
-\startsection[title=Last match]
+\startsection[title=last match]
For the next example we use the following \XML\ input:
diff --git a/metapost/context/base/mpiv/mp-mlib.mpiv b/metapost/context/base/mpiv/mp-mlib.mpiv
index 2c84d01c2..b4fe8a864 100644
--- a/metapost/context/base/mpiv/mp-mlib.mpiv
+++ b/metapost/context/base/mpiv/mp-mlib.mpiv
@@ -542,6 +542,16 @@ def withshadevector expr a =
withprescript "sh_center_b=" & ddecimal (point ypart a of mfun_shade_path)
enddef ;
+def withshadedirection expr a =
+ withprescript "sh_center_a=" & ddecimal (point xpart a of boundingbox(mfun_shade_path))
+ withprescript "sh_center_b=" & ddecimal (point ypart a of boundingbox(mfun_shade_path))
+enddef ;
+
+pair shadedup ; shadedup := (0.5,2.5) ;
+pair shadeddown ; shadeddown := (2.5,0.5) ;
+pair shadedleft ; shadedleft := (1.5,3.5) ;
+pair shadedright ; shadedright := (3.5,1.5) ;
+
def withshadecenter expr a =
withprescript "sh_center_a=" & ddecimal (
center mfun_shade_path shifted (
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 26ee303c9..8851c4e67 100644
--- a/tex/context/base/context-version.pdf
+++ b/tex/context/base/context-version.pdf
Binary files differ
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index 9edb260fc..5cbe2a231 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{2016.01.31 11:42}
+\newcontextversion{2016.02.01 13:26}
%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 cd310cd07..8eee2b8d0 100644
--- a/tex/context/base/mkiv/context.mkiv
+++ b/tex/context/base/mkiv/context.mkiv
@@ -39,7 +39,7 @@
%D up and the dependencies are more consistent.
\edef\contextformat {\jobname}
-\edef\contextversion{2016.01.31 11:42}
+\edef\contextversion{2016.02.01 13:26}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/grph-fig.mkiv b/tex/context/base/mkiv/grph-fig.mkiv
index 796309b88..3bf91b28c 100644
--- a/tex/context/base/mkiv/grph-fig.mkiv
+++ b/tex/context/base/mkiv/grph-fig.mkiv
@@ -85,7 +85,7 @@
\def\grph_typesetting_process[#1][#2][#3]% <name> filename settings-b | filename options settings
{\ifcsname\??typesettingfile#1\endcsname
- \csname\??typesettingfile#1\endcsname{#2}{#3}%
+ \lastnamedcs{#2}{#3}%
\else\ifthirdargument % filename options settings
\grph_typesetting_process_indeed{#2}{#3}{#1}{}%
\else\ifsecondargument % filename settings
diff --git a/tex/context/base/mkiv/grph-fil.lua b/tex/context/base/mkiv/grph-fil.lua
index 5b091b265..04b44e667 100644
--- a/tex/context/base/mkiv/grph-fil.lua
+++ b/tex/context/base/mkiv/grph-fil.lua
@@ -35,6 +35,7 @@ end
job.register('job.files.collected', tobesaved, initializer)
function jobfiles.run(name,action)
+ file.addsuffix(name,"tex") -- we assume tex if not set
local oldchecksum = collected[name]
local newchecksum = file.checksum(name)
if jobfiles.forcerun or not oldchecksum or oldchecksum ~= newchecksum then
diff --git a/tex/context/base/mkiv/lxml-ini.lua b/tex/context/base/mkiv/lxml-ini.lua
index c44c61644..982fb4622 100644
--- a/tex/context/base/mkiv/lxml-ini.lua
+++ b/tex/context/base/mkiv/lxml-ini.lua
@@ -46,6 +46,7 @@ implement { name = "xmllastatt", actions = lxml.lastatt }
implement { name = "xmlattdef", actions = lxml.att, arguments = { "string", "string", "string" } }
implement { name = "xmlattribute", actions = lxml.attribute, arguments = { "string", "string", "string" } }
implement { name = "xmlattributedef", actions = lxml.attribute, arguments = { "string", "string", "string", "string" } }
+implement { name = "xmlpath", actions = lxml.path, arguments = { "string", "'/'" } }
implement { name = "xmlchainatt", actions = lxml.chainattribute, arguments = { "string", "'/'", "string" } }
implement { name = "xmlchainattdef", actions = lxml.chainattribute, arguments = { "string", "'/'", "string", "string" } }
implement { name = "xmlrefatt", actions = lxml.refatt, arguments = { "string", "string" } }
diff --git a/tex/context/base/mkiv/lxml-ini.mkiv b/tex/context/base/mkiv/lxml-ini.mkiv
index 8175d21e6..e913be620 100644
--- a/tex/context/base/mkiv/lxml-ini.mkiv
+++ b/tex/context/base/mkiv/lxml-ini.mkiv
@@ -85,6 +85,7 @@
\let\xmlloaddirectives \clf_xmlloaddirectives
\let\xmlmain \clf_xmlmain
\let\xmlmatch \clf_xmlmatch
+\let\xmlpath \clf_xmlpath
\let\xmlname \clf_xmlname
\let\xmlnamespace \clf_xmlnamespace
\let\xmlnonspace \clf_xmlnonspace
diff --git a/tex/context/base/mkiv/lxml-tex.lua b/tex/context/base/mkiv/lxml-tex.lua
index 0ec981d68..abb807181 100644
--- a/tex/context/base/mkiv/lxml-tex.lua
+++ b/tex/context/base/mkiv/lxml-tex.lua
@@ -11,7 +11,7 @@ if not modules then modules = { } end modules ['lxml-tex'] = {
-- be an cldf-xml helper library.
local utfchar = utf.char
-local concat, insert, remove, sortedkeys = table.concat, table.insert, table.remove, table.sortedkeys
+local concat, insert, remove, sortedkeys, reversed = table.concat, table.insert, table.remove, table.sortedkeys, table.reverse
local format, sub, gsub, find, gmatch, match = string.format, string.sub, string.gsub, string.find, string.gmatch, string.match
local type, next, tonumber, tostring, select = type, next, tonumber, tostring, select
local lpegmatch = lpeg.match
@@ -1396,6 +1396,35 @@ local function chainattribute(collected,arguments) -- todo: optional levels
end
end
+local function chainpath(collected,nonamespace)
+ if collected and #collected > 0 then
+ local e = collected[1]
+ local t = { }
+ while e do
+ local tg = e.tg
+ local rt = e.__p__
+ local ns = e.ns
+ if tg == "@rt@" then
+ break
+ elseif rt.tg == "@rt@" then
+ if nonamespace or not ns or ns == "" then
+ t[#t+1] = tg
+ else
+ t[#t+1] = ns .. ":" .. tg
+ end
+ else
+ if nonamespace or not ns or ns == "" then
+ t[#t+1] = tg .. "[" .. e.ei .. "]"
+ else
+ t[#t+1] = ns .. ":" .. tg .. "[" .. e.ei .. "]"
+ end
+ end
+ e = rt
+ end
+ contextsprint(notcatcodes,concat(reversed(t),"/"))
+ end
+end
+
local function text(collected)
if collected then
local nc = #collected
@@ -1513,6 +1542,7 @@ texfinalizers.index = index
texfinalizers.concat = concat
texfinalizers.concatrange = concatrange
texfinalizers.chainattribute = chainattribute
+texfinalizers.chainpath = chainpath
texfinalizers.default = all -- !!
local concat = table.concat
@@ -1690,6 +1720,10 @@ function lxml.chainattribute(id,pattern,a,default)
chainattribute(xmlapplylpath(getid(id),pattern),a,default)
end
+function lxml.path(id,pattern,nonamespace)
+ chainpath(xmlapplylpath(getid(id),pattern),nonamespace)
+end
+
function lxml.concatrange(id,pattern,start,stop,separator,lastseparator,textonly) -- test this on mml
concatrange(xmlapplylpath(getid(id),pattern),start,stop,separator,lastseparator,textonly)
end
diff --git a/tex/context/base/mkiv/mult-fun.lua b/tex/context/base/mkiv/mult-fun.lua
index 6be8e83db..b53424f65 100644
--- a/tex/context/base/mkiv/mult-fun.lua
+++ b/tex/context/base/mkiv/mult-fun.lua
@@ -44,8 +44,8 @@ return {
"withshade", "withcircularshade", "withlinearshade", -- old but kept
"defineshade", "shaded",
-- "withshading", "withlinearshading", "withcircularshading", "withfromshadecolor", "withtoshadecolor",
- "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector", "withshadecenter",
- "withshadestep", "withshadefraction",
+ "shadedinto", "withshadecolors", "withshadedomain", "withshademethod", "withshadefactor", "withshadevector",
+ "withshadecenter", "withshadedirection", "withshadestep", "withshadefraction",
"cmyk", "spotcolor", "multitonecolor", "namedcolor",
"drawfill", "undrawfill",
"inverted", "uncolored", "softened", "grayed", "greyed",
@@ -129,5 +129,7 @@ return {
"area",
--
"addbackground",
+ --
+ "shadedup", "shadeddown", "shadedleft", "shadedright",
},
}
diff --git a/tex/context/base/mkiv/page-flt.lua b/tex/context/base/mkiv/page-flt.lua
index 9cc9012a2..c57715fd9 100644
--- a/tex/context/base/mkiv/page-flt.lua
+++ b/tex/context/base/mkiv/page-flt.lua
@@ -375,7 +375,7 @@ implement {
implement {
name = "analysefloatmethod",
actions = function(str)
- local method, label, row, column = floats.analysemethod(str)
+ local method, label, column, row = floats.analysemethod(str)
setmacro("floatmethod",method or "")
setmacro("floatlabel", label or "")
setmacro("floatrow", row or "")
diff --git a/tex/context/base/mkiv/page-mix.mkiv b/tex/context/base/mkiv/page-mix.mkiv
index db98df4a8..ba397e5ed 100644
--- a/tex/context/base/mkiv/page-mix.mkiv
+++ b/tex/context/base/mkiv/page-mix.mkiv
@@ -311,7 +311,7 @@
\hss
\starttextproperties
\usemixedcolumnscolorparameter\c!rulecolor
- \csname\??mixedcolumnsseparator\p_separator\endcsname % was \c!rule
+ \begincsname\??mixedcolumnsseparator\p_separator\endcsname % was \c!rule
\stoptextproperties
\hss
\egroup
@@ -361,11 +361,11 @@
{\edef\currentmixedcolumns{#1}%
\edef\currentmixedcolumnsmethod{\mixedcolumnsparameter\c!method}%
\mixedcolumnsparameter\c!before\relax
- \csname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
+ \begincsname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
\begingroup
\setupcurrentmixedcolumns[#2]%
\page_mix_initialize_columns
- \csname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname}
+ \begincsname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname}
\def\page_mix_start_columns_b[#1][#2]%
{\doifelseassignment{#1}%
@@ -375,13 +375,13 @@
\firstargumentfalse}%
\edef\currentmixedcolumnsmethod{\mixedcolumnsparameter\c!method}%
\mixedcolumnsparameter\c!before\relax % so, it doesn't listen to local settings !
- \csname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
+ \begincsname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
\begingroup
\iffirstargument
\setupcurrentmixedcolumns[#1]%
\fi
\page_mix_initialize_columns
- \csname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname} % no \relax
+ \begincsname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname} % no \relax
\def\page_mix_error_b
{\writestatus\m!columns{best use an instance of mixed columns}}
@@ -390,10 +390,10 @@
{\let\currentmixedcolumns\empty
\edef\currentmixedcolumnsmethod{\mixedcolumnsparameter\c!method}%
\mixedcolumnsparameter\c!before\relax
- \csname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
+ \begincsname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
\begingroup
\page_mix_initialize_columns
- \csname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname}
+ \begincsname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname}
\unexpanded\def\page_mix_fast_columns_start#1%
{\pushmacro\currentmixedcolumns
@@ -401,27 +401,27 @@
\edef\currentmixedcolumns{#1}%
\edef\currentmixedcolumnsmethod{\mixedcolumnsparameter\c!method}%
\mixedcolumnsparameter\c!before\relax % so, it doesn't list to local settings !
- \csname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
+ \begincsname\??mixedcolumnsbefore\currentmixedcolumnsmethod\endcsname\relax
\begingroup
\page_mix_initialize_columns
- \csname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname} % no \relax
+ \begincsname\??mixedcolumnsstart\currentmixedcolumnsmethod\endcsname} % no \relax
%D When we stop, we switch over to the balancing routine. After we're done we
%D make sure to set the sizes are set, a somewhat redundant action when we
%D already have flushed but better be safe.
\unexpanded\def\stopmixedcolumns
- {\csname\??mixedcolumnsstop \currentmixedcolumnsmethod\endcsname % no \relax
+ {\begincsname\??mixedcolumnsstop \currentmixedcolumnsmethod\endcsname % no \relax
\endgroup
- \csname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
+ \begincsname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
\mixedcolumnsparameter\c!after\relax
\popmacro\currentmixedcolumnsmethod
\popmacro\currentmixedcolumns}
% \unexpanded\def\stopmixedcolumns
-% {\csname\??mixedcolumnsstop \currentmixedcolumnsmethod\endcsname % no \relax
+% {\begincsname\??mixedcolumnsstop \currentmixedcolumnsmethod\endcsname % no \relax
% \endgroup
-% \csname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
+% \begincsname\??mixedcolumnsafter\currentmixedcolumnsmethod\endcsname\relax
% \mixedcolumnsparameter\c!after\relax
% \ifx\currentmixedcolumnsmethod\s!otr
% \popmacro\currentmixedcolumnsmethod
diff --git a/tex/context/base/mkiv/page-set.mkiv b/tex/context/base/mkiv/page-set.mkiv
index fab6bc086..0099c5189 100644
--- a/tex/context/base/mkiv/page-set.mkiv
+++ b/tex/context/base/mkiv/page-set.mkiv
@@ -1464,8 +1464,7 @@
\c!frame=\v!off,
\c!offset=\v!overlay,
\c!frame=\v!off,
- \c!align=,
- \c!lines=0]
+ \c!align=]
\let\page_set_setup_saved\setupcolumnset
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index 5c70adcd8..1e21f36f0 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 2fde12e0f..a5ac3a260 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/interface/common/i-en-xml.xml b/tex/context/interface/common/i-en-xml.xml
index f37a15976..ce90f7bb1 100644
--- a/tex/context/interface/common/i-en-xml.xml
+++ b/tex/context/interface/common/i-en-xml.xml
@@ -258,6 +258,10 @@
<cd:arguments><cd:resolve name="xml-node"/></cd:arguments>
</cd:command>
+ <cd:command name="xmlpath">
+ <cd:arguments><cd:resolve name="xml-node"/></cd:arguments>
+ </cd:command>
+
<cd:command name="xmlnamespace">
<cd:arguments><cd:resolve name="xml-node"/></cd:arguments>
</cd:command>
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index ba99dcce3..4099dfc6b 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 : 01/31/16 11:42:23
+-- merge date : 02/01/16 13:26:19
do -- begin closure to overcome local limits and interference