summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/context/sources/general/manuals/languages/languages-numbering.tex12
-rw-r--r--tex/context/base/context-version.pdfbin4256 -> 4253 bytes
-rw-r--r--tex/context/base/mkiv/colo-imp-rainbow.mkiv252
-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/core-con.lua380
-rw-r--r--tex/context/base/mkiv/lang-txt.lua74
-rw-r--r--tex/context/base/mkiv/publ-imp-default.mkvi16
-rw-r--r--tex/context/base/mkiv/status-files.pdfbin9213 -> 9214 bytes
-rw-r--r--tex/context/base/mkiv/status-lua.pdfbin367168 -> 367183 bytes
-rw-r--r--tex/context/interface/mkiv/i-accent.xml252
-rw-r--r--tex/context/interface/mkiv/i-align.xml276
-rw-r--r--tex/context/interface/mkiv/i-anchor.xml35
-rw-r--r--tex/context/interface/mkiv/i-attachment.xml154
-rw-r--r--tex/context/interface/mkiv/i-attribute.xml96
-rw-r--r--tex/context/interface/mkiv/i-backend.xml49
-rw-r--r--tex/context/interface/mkiv/i-background.xml161
-rw-r--r--tex/context/interface/mkiv/i-bar.xml205
-rw-r--r--tex/context/interface/mkiv/i-blackrule.xml101
-rw-r--r--tex/context/interface/mkiv/i-bleed.xml64
-rw-r--r--tex/context/interface/mkiv/i-block.xml120
-rw-r--r--tex/context/interface/mkiv/i-bookmark.xml79
-rw-r--r--tex/context/interface/mkiv/i-boxes.xml982
-rw-r--r--tex/context/interface/mkiv/i-buffer.xml196
-rw-r--r--tex/context/interface/mkiv/i-button.xml187
-rw-r--r--tex/context/interface/mkiv/i-capitals.xml208
-rw-r--r--tex/context/interface/mkiv/i-catcodes.xml123
-rw-r--r--tex/context/interface/mkiv/i-character.xml136
-rw-r--r--tex/context/interface/mkiv/i-characteralign.xml45
-rw-r--r--tex/context/interface/mkiv/i-characterspacing.xml43
-rw-r--r--tex/context/interface/mkiv/i-characterstripping.xml20
-rw-r--r--tex/context/interface/mkiv/i-charwidth.xml17
-rw-r--r--tex/context/interface/mkiv/i-chemical.xml255
-rw-r--r--tex/context/interface/mkiv/i-cleaning.xml47
-rw-r--r--tex/context/interface/mkiv/i-clipping.xml78
-rw-r--r--tex/context/interface/mkiv/i-collector.xml114
-rw-r--r--tex/context/interface/mkiv/i-color.xml597
-rw-r--r--tex/context/interface/mkiv/i-columns.xml111
-rw-r--r--tex/context/interface/mkiv/i-combination.xml131
-rw-r--r--tex/context/interface/mkiv/i-commandhandler.xml314
-rw-r--r--tex/context/interface/mkiv/i-comment.xml140
-rw-r--r--tex/context/interface/mkiv/i-common-argument.xml509
-rw-r--r--tex/context/interface/mkiv/i-common-assignment.xml338
-rw-r--r--tex/context/interface/mkiv/i-common-definitions.xml13
-rw-r--r--tex/context/interface/mkiv/i-common-keyword.xml704
-rw-r--r--tex/context/interface/mkiv/i-common-string.xml157
-rw-r--r--tex/context/interface/mkiv/i-common-value.xml546
-rw-r--r--tex/context/interface/mkiv/i-context.pdfbin821499 -> 821315 bytes
-rw-r--r--tex/context/interface/mkiv/i-context.xml234
-rw-r--r--tex/context/interface/mkiv/i-conversion.xml632
-rw-r--r--tex/context/interface/mkiv/i-counter.xml517
-rw-r--r--tex/context/interface/mkiv/i-dataset.xml51
-rw-r--r--tex/context/interface/mkiv/i-define.xml23
-rw-r--r--tex/context/interface/mkiv/i-delimitedtext.xml217
-rw-r--r--tex/context/interface/mkiv/i-description.xml172
-rw-r--r--tex/context/interface/mkiv/i-digits.xml26
-rw-r--r--tex/context/interface/mkiv/i-dimension.xml67
-rw-r--r--tex/context/interface/mkiv/i-direction.xml69
-rw-r--r--tex/context/interface/mkiv/i-document.xml215
-rw-r--r--tex/context/interface/mkiv/i-dummy.xml58
-rw-r--r--tex/context/interface/mkiv/i-effect.xml62
-rw-r--r--tex/context/interface/mkiv/i-enumeration.xml219
-rw-r--r--tex/context/interface/mkiv/i-export.xml77
-rw-r--r--tex/context/interface/mkiv/i-field.xml383
-rw-r--r--tex/context/interface/mkiv/i-figure.xml50
-rw-r--r--tex/context/interface/mkiv/i-file.xml404
-rw-r--r--tex/context/interface/mkiv/i-filler.xml116
-rw-r--r--tex/context/interface/mkiv/i-fillinline.xml43
-rw-r--r--tex/context/interface/mkiv/i-fillinrule.xml66
-rw-r--r--tex/context/interface/mkiv/i-firstline.xml52
-rw-r--r--tex/context/interface/mkiv/i-fittingpage.xml96
-rw-r--r--tex/context/interface/mkiv/i-floats.xml736
-rw-r--r--tex/context/interface/mkiv/i-fontfamily.xml225
-rw-r--r--tex/context/interface/mkiv/i-fonts.xml1644
-rw-r--r--tex/context/interface/mkiv/i-form.xml23
-rw-r--r--tex/context/interface/mkiv/i-formula.xml295
-rw-r--r--tex/context/interface/mkiv/i-fraction.xml191
-rw-r--r--tex/context/interface/mkiv/i-framed.xml594
-rw-r--r--tex/context/interface/mkiv/i-graphics.xml522
-rw-r--r--tex/context/interface/mkiv/i-grid.xml189
-rw-r--r--tex/context/interface/mkiv/i-help.xml83
-rw-r--r--tex/context/interface/mkiv/i-highlight.xml64
-rw-r--r--tex/context/interface/mkiv/i-hspace.xml159
-rw-r--r--tex/context/interface/mkiv/i-hyphenation.xml260
-rw-r--r--tex/context/interface/mkiv/i-imposition.xml82
-rw-r--r--tex/context/interface/mkiv/i-indent.xml91
-rw-r--r--tex/context/interface/mkiv/i-indentedtext.xml72
-rw-r--r--tex/context/interface/mkiv/i-initial.xml81
-rw-r--r--tex/context/interface/mkiv/i-injector.xml73
-rw-r--r--tex/context/interface/mkiv/i-insertion.xml48
-rw-r--r--tex/context/interface/mkiv/i-interaction.xml160
-rw-r--r--tex/context/interface/mkiv/i-interactionbar.xml100
-rw-r--r--tex/context/interface/mkiv/i-interactionmenu.xml276
-rw-r--r--tex/context/interface/mkiv/i-interactionscreen.xml68
-rw-r--r--tex/context/interface/mkiv/i-interface.xml202
-rw-r--r--tex/context/interface/mkiv/i-interlinespace.xml176
-rw-r--r--tex/context/interface/mkiv/i-italiccorrection.xml32
-rw-r--r--tex/context/interface/mkiv/i-itemgroup.xml534
-rw-r--r--tex/context/interface/mkiv/i-items.xml85
-rw-r--r--tex/context/interface/mkiv/i-javascript.xml51
-rw-r--r--tex/context/interface/mkiv/i-kerning.xml93
-rw-r--r--tex/context/interface/mkiv/i-label.xml210
-rw-r--r--tex/context/interface/mkiv/i-labeltext.xml496
-rw-r--r--tex/context/interface/mkiv/i-language.xml200
-rw-r--r--tex/context/interface/mkiv/i-layer.xml327
-rw-r--r--tex/context/interface/mkiv/i-layout.xml367
-rw-r--r--tex/context/interface/mkiv/i-linenumber.xml158
-rw-r--r--tex/context/interface/mkiv/i-lines.xml116
-rw-r--r--tex/context/interface/mkiv/i-linetable.xml165
-rw-r--r--tex/context/interface/mkiv/i-linewidth.xml20
-rw-r--r--tex/context/interface/mkiv/i-list.xml620
-rw-r--r--tex/context/interface/mkiv/i-logo.xml105
-rw-r--r--tex/context/interface/mkiv/i-lohi.xml223
-rw-r--r--tex/context/interface/mkiv/i-lua.xml193
-rw-r--r--tex/context/interface/mkiv/i-makeup.xml180
-rw-r--r--tex/context/interface/mkiv/i-marginblock.xml87
-rw-r--r--tex/context/interface/mkiv/i-margindata.xml469
-rw-r--r--tex/context/interface/mkiv/i-marker.xml33
-rw-r--r--tex/context/interface/mkiv/i-marking.xml174
-rw-r--r--tex/context/interface/mkiv/i-math.xml462
-rw-r--r--tex/context/interface/mkiv/i-mathalignment.xml67
-rw-r--r--tex/context/interface/mkiv/i-mathcases.xml71
-rw-r--r--tex/context/interface/mkiv/i-mathfence.xml199
-rw-r--r--tex/context/interface/mkiv/i-mathmatrix.xml115
-rw-r--r--tex/context/interface/mkiv/i-mathornament.xml46
-rw-r--r--tex/context/interface/mkiv/i-mathradical.xml56
-rw-r--r--tex/context/interface/mkiv/i-mathstackers.xml1789
-rw-r--r--tex/context/interface/mkiv/i-metapost.xml406
-rw-r--r--tex/context/interface/mkiv/i-mixedcolumns.xml127
-rw-r--r--tex/context/interface/mkiv/i-modes.xml216
-rw-r--r--tex/context/interface/mkiv/i-modules.xml126
-rw-r--r--tex/context/interface/mkiv/i-narrow.xml121
-rw-r--r--tex/context/interface/mkiv/i-naturaltable.xml301
-rw-r--r--tex/context/interface/mkiv/i-note.xml663
-rw-r--r--tex/context/interface/mkiv/i-object.xml132
-rw-r--r--tex/context/interface/mkiv/i-offset.xml74
-rw-r--r--tex/context/interface/mkiv/i-opposite.xml29
-rw-r--r--tex/context/interface/mkiv/i-ornament.xml103
-rw-r--r--tex/context/interface/mkiv/i-output.xml49
-rw-r--r--tex/context/interface/mkiv/i-overlay.xml45
-rw-r--r--tex/context/interface/mkiv/i-pagebreak.xml135
-rw-r--r--tex/context/interface/mkiv/i-pagecomment.xml40
-rw-r--r--tex/context/interface/mkiv/i-pagefigure.xml25
-rw-r--r--tex/context/interface/mkiv/i-pagegrid.xml220
-rw-r--r--tex/context/interface/mkiv/i-pageinjection.xml89
-rw-r--r--tex/context/interface/mkiv/i-pagelayout.xml41
-rw-r--r--tex/context/interface/mkiv/i-pagenumber.xml184
-rw-r--r--tex/context/interface/mkiv/i-pageselection.xml175
-rw-r--r--tex/context/interface/mkiv/i-pageshift.xml29
-rw-r--r--tex/context/interface/mkiv/i-pagestate.xml59
-rw-r--r--tex/context/interface/mkiv/i-pairedbox.xml171
-rw-r--r--tex/context/interface/mkiv/i-papersize.xml303
-rw-r--r--tex/context/interface/mkiv/i-paragraph.xml71
-rw-r--r--tex/context/interface/mkiv/i-paragraphnumber.xml29
-rw-r--r--tex/context/interface/mkiv/i-paragraphs.xml168
-rw-r--r--tex/context/interface/mkiv/i-parallel.xml85
-rw-r--r--tex/context/interface/mkiv/i-parbuilder.xml35
-rw-r--r--tex/context/interface/mkiv/i-pdf.xml131
-rw-r--r--tex/context/interface/mkiv/i-penalty.xml29
-rw-r--r--tex/context/interface/mkiv/i-periods.xml43
-rw-r--r--tex/context/interface/mkiv/i-phantom.xml41
-rw-r--r--tex/context/interface/mkiv/i-placement.xml75
-rw-r--r--tex/context/interface/mkiv/i-position.xml528
-rw-r--r--tex/context/interface/mkiv/i-positionbar.xml73
-rw-r--r--tex/context/interface/mkiv/i-positioning.xml98
-rw-r--r--tex/context/interface/mkiv/i-postponing.xml15
-rw-r--r--tex/context/interface/mkiv/i-processor.xml51
-rw-r--r--tex/context/interface/mkiv/i-profile.xml100
-rw-r--r--tex/context/interface/mkiv/i-publication.xml1124
-rw-r--r--tex/context/interface/mkiv/i-random.xml64
-rw-r--r--tex/context/interface/mkiv/i-readme.pdfbin60787 -> 60789 bytes
-rw-r--r--tex/context/interface/mkiv/i-references.xml566
-rw-r--r--tex/context/interface/mkiv/i-regime.xml88
-rw-r--r--tex/context/interface/mkiv/i-register.xml646
-rw-r--r--tex/context/interface/mkiv/i-renderingwindow.xml62
-rw-r--r--tex/context/interface/mkiv/i-replacement.xml26
-rw-r--r--tex/context/interface/mkiv/i-rotatation.xml54
-rw-r--r--tex/context/interface/mkiv/i-scale.xml121
-rw-r--r--tex/context/interface/mkiv/i-script.xml106
-rw-r--r--tex/context/interface/mkiv/i-section.xml679
-rw-r--r--tex/context/interface/mkiv/i-sectionblock.xml125
-rw-r--r--tex/context/interface/mkiv/i-selector.xml52
-rw-r--r--tex/context/interface/mkiv/i-setups.xml224
-rw-r--r--tex/context/interface/mkiv/i-shift.xml85
-rw-r--r--tex/context/interface/mkiv/i-sidebar.xml103
-rw-r--r--tex/context/interface/mkiv/i-smash.xml82
-rw-r--r--tex/context/interface/mkiv/i-sort.xml188
-rw-r--r--tex/context/interface/mkiv/i-soundtrack.xml30
-rw-r--r--tex/context/interface/mkiv/i-spellchecking.xml33
-rw-r--r--tex/context/interface/mkiv/i-startstop.xml78
-rw-r--r--tex/context/interface/mkiv/i-stream.xml74
-rw-r--r--tex/context/interface/mkiv/i-string.xml69
-rw-r--r--tex/context/interface/mkiv/i-strut.xml53
-rw-r--r--tex/context/interface/mkiv/i-symbol.xml145
-rw-r--r--tex/context/interface/mkiv/i-synonym.xml212
-rw-r--r--tex/context/interface/mkiv/i-system.xml3534
-rw-r--r--tex/context/interface/mkiv/i-systemlog.xml31
-rw-r--r--tex/context/interface/mkiv/i-table.xml407
-rw-r--r--tex/context/interface/mkiv/i-tabulation.xml270
-rw-r--r--tex/context/interface/mkiv/i-tagging.xml68
-rw-r--r--tex/context/interface/mkiv/i-textbackground.xml147
-rw-r--r--tex/context/interface/mkiv/i-textflow.xml84
-rw-r--r--tex/context/interface/mkiv/i-textrule.xml72
-rw-r--r--tex/context/interface/mkiv/i-texts.xml385
-rw-r--r--tex/context/interface/mkiv/i-thinrule.xml74
-rw-r--r--tex/context/interface/mkiv/i-token.xml31
-rw-r--r--tex/context/interface/mkiv/i-tolerance.xml22
-rw-r--r--tex/context/interface/mkiv/i-tooltip.xml81
-rw-r--r--tex/context/interface/mkiv/i-tracker.xml75
-rw-r--r--tex/context/interface/mkiv/i-translation.xml29
-rw-r--r--tex/context/interface/mkiv/i-twopassdata.xml124
-rw-r--r--tex/context/interface/mkiv/i-typography.xml173
-rw-r--r--tex/context/interface/mkiv/i-unit.xml121
-rw-r--r--tex/context/interface/mkiv/i-variables.xml356
-rw-r--r--tex/context/interface/mkiv/i-verbatim.xml449
-rw-r--r--tex/context/interface/mkiv/i-version.xml78
-rw-r--r--tex/context/interface/mkiv/i-viewerlayer.xml68
-rw-r--r--tex/context/interface/mkiv/i-visualizer.xml156
-rw-r--r--tex/context/interface/mkiv/i-vspace.xml151
-rw-r--r--tex/context/interface/mkiv/i-whitespace.xml62
-rw-r--r--tex/context/interface/mkiv/i-xml.xml827
-rw-r--r--tex/context/interface/mkiv/i-xtable.xml247
-rw-r--r--tex/context/modules/mkiv/s-math-repertoire.mkiv3
-rw-r--r--tex/generic/context/luatex/luatex-fonts-merged.lua2
-rw-r--r--tex/generic/context/luatex/luatex-mplib.lua22
225 files changed, 44829 insertions, 191 deletions
diff --git a/doc/context/sources/general/manuals/languages/languages-numbering.tex b/doc/context/sources/general/manuals/languages/languages-numbering.tex
index 510f51034..90deab417 100644
--- a/doc/context/sources/general/manuals/languages/languages-numbering.tex
+++ b/doc/context/sources/general/manuals/languages/languages-numbering.tex
@@ -284,6 +284,18 @@ specific date with \type {\date}, for instance:
\LL
\stoptabulate
+There are also some converters built in (more can be added), for instance:
+
+\startbuffer
+The current {\em gregorian} date \currentdate [month, day, {, }, year] is
+in {\em jalali} \currentdate [jalali:to, month, day, {, }, year] but we
+can also as a specific one, so {\em jalali} \date [y=1395, m=4, d=18]
+[month, day, {, }, year] is {\em gregorian} \date [y=1395, m=4, d=18]
+[jalali:from, month, day, {, }, year].
+\stopbuffer
+
+\typebuffer \startnarrower \getbuffer stopnarrower
+
\stopsection
% \startsection[title=Counters]
diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf
index 21a5808f0..49ee19eb0 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/colo-imp-rainbow.mkiv b/tex/context/base/mkiv/colo-imp-rainbow.mkiv
new file mode 100644
index 000000000..c9686d755
--- /dev/null
+++ b/tex/context/base/mkiv/colo-imp-rainbow.mkiv
@@ -0,0 +1,252 @@
+%D \module
+%D [ file=colo-imp-rainbow,
+%D version=2016.03.21,
+%D title=\CONTEXT\ Color Macros,
+%D subtitle=X11,
+%D author=Alan Braslau]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D \subsubject{For scientists by scientists}
+%D
+%D We define color groups having equal gray scale values by either reducing
+%D their rgb values to darken them or by adding equal amounts of $r=g=b$ to
+%D lighten them.
+%D
+%D \startformula
+%D s = .3r + .59g + .11b
+%D \stopformula
+%D
+%D By the way, \CONTEXT\ has always used this formula internally when colors
+%D are converted to gray.
+
+\definecolorgroup
+ [gray]
+ [0.1:0.1:0.1,
+ 0.2:0.2:0.2,
+ 0.3:0.3:0.3,
+ 0.4:0.4:0.4,
+ 0.5:0.5:0.5,
+ 0.6:0.6:0.6,
+ 0.7:0.7:0.7,
+ 0.8:0.8:0.8,
+ 0.9:0.9:0.9,
+ 1.0:1.0:1.0]
+
+\definecolorgroup
+ [red]
+ [0.333:0.000:0.000,
+ 0.667:0.000:0.000,
+ 1.000:0.000:0.000,
+ 1.000:0.143:0.143,
+ 1.000:0.286:0.286,
+ 1.000:0.429:0.429,
+ 1.000:0.571:0.571,
+ 1.000:0.714:0.714,
+ 1.000:0.857:0.857]
+
+\definecolorgroup
+ [green]
+ [0.000:0.169:0.000,
+ 0.000:0.339:0.000,
+ 0.000:0.508:0.000,
+ 0.000:0.678:0.000,
+ 0.000:0.847:0.000,
+ 0.024:1.000:0.024,
+ 0.268:1.000:0.268,
+ 0.512:1.000:0.512,
+ 0.756:1.000:0.756]
+
+\definecolorgroup
+ [blue]
+ [0.000:0.000:0.909,
+ 0.101:0.101:1.000,
+ 0.213:0.213:1.000,
+ 0.326:0.326:1.000,
+ 0.438:0.438:1.000,
+ 0.551:0.551:1.000,
+ 0.663:0.663:1.000,
+ 0.775:0.775:1.000,
+ 0.888:0.888:1.000]
+
+\definecolorgroup
+ [cyan]
+ [0.000:0.143:0.143,
+ 0.000:0.286:0.286,
+ 0.000:0.429:0.429,
+ 0.000:0.571:0.571,
+ 0.000:0.714:0.714,
+ 0.000:0.857:0.857,
+ 0.000:1.000:1.000,
+ 0.333:1.000:1.000,
+ 0.667:1.000:1.000]
+
+\definecolorgroup
+ [magenta]
+ [0.244:0.000:0.244,
+ 0.488:0.000:0.488,
+ 0.732:0.000:0.732,
+ 0.976:0.000:0.976,
+ 1.000:0.153:1.000,
+ 1.000:0.322:1.000,
+ 1.000:0.492:1.000,
+ 1.000:0.661:1.000,
+ 1.000:0.831:1.000]
+
+\definecolorgroup
+ [yellow]
+ [0.112:0.112:0.000,
+ 0.225:0.225:0.000,
+ 0.337:0.337:0.000,
+ 0.449:0.449:0.000,
+ 0.562:0.562:0.000,
+ 0.674:0.674:0.000,
+ 0.787:0.787:0.000,
+ 0.899:0.899:0.000,
+ 1.000:1.000:0.091]
+
+\definecolorgroup
+ [orange]
+ [0.147:0.095:0.000,
+ 0.293:0.190:0.000,
+ 0.440:0.285:0.000,
+ 0.587:0.380:0.000,
+ 0.733:0.475:0.000,
+ 0.880:0.569:0.000,
+ 1.000:0.673:0.026,
+ 1.000:0.816:0.169,
+ 1.000:0.959:0.312]
+
+\definecolorgroup
+ [violet]
+ [0.137:0.075:0.137,
+ 0.273:0.149:0.273,
+ 0.410:0.224:0.410,
+ 0.546:0.298:0.546,
+ 0.683:0.373:0.683,
+ 0.819:0.448:0.819,
+ 0.950:0.527:0.950,
+ 1.000:0.661:1.000,
+ 1.000:0.831:1.000]
+
+\definecolorgroup
+ [brown]
+ [0.209:0.053:0.053,
+ 0.417:0.106:0.106,
+ 0.627:0.160:0.160,
+ 0.737:0.255:0.255,
+ 0.837:0.355:0.355,
+ 0.937:0.455:0.455,
+ 1.000:0.571:0.571,
+ 1.000:0.714:0.714,
+ 1.000:0.857:0.857]
+
+%D Define \quote{rainbow} color palets having equal grayscale values.
+%D The names correspond to the number color codes used on electrical resistances.
+
+\dorecurse {9} {
+ \definepalet
+ [rainbow#1]
+ [ one#1=brown:#1,
+ two#1=red:#1,
+ three#1=orange:#1,
+ four#1=yellow:#1,
+ five#1=green:#1,
+ six#1=blue:#1,
+ seven#1=violet:#1,
+ eight#1=gray:#1]
+}
+
+%D Define two more color palets showing grayscale contrast.
+%D Note that \emph{none} of these palets are very aesthetic!
+
+\definepalet
+ [rainbow0]
+ [ one0=brown:8,
+ two0=red:7,
+ three0=orange:6,
+ four0=yellow:5,
+ five0=green:4,
+ six0=blue:3,
+ seven0=violet:2,
+ eight0=gray:1]
+
+\definepalet
+ [rainbow]
+ [ zero=black,
+ one=brown:1,
+ two=red:2,
+ three=orange:3,
+ four=yellow:4,
+ five=green:5,
+ six=blue:6,
+ seven=violet:7,
+ eight=gray:8,
+ nine=white]
+
+\continueifinputfile{colo-imp-rainbow.mkiv}
+
+\usemodule[art-01] \setupbodyfont[8pt]
+
+\starttexdefinition ShowSomething #1
+ \startpacked
+ \dorecurse {9} {
+ \dontleavehmode
+ \start
+ \ttbf
+ \color [#1:##1] {\hbox to 6em{#1:##1\hss}}
+ \tttf
+ \quad
+ \colorvalue {#1:##1}
+ \quad
+ \grayvalue {#1:##1}
+ \quad
+ \stop
+ \par
+ }
+ \stoppacked
+\stoptexdefinition
+
+\starttext
+
+ \startcolumns [n=2,distance=0pt]
+ \ShowSomething {gray}
+ \ShowSomething {brown}
+ \ShowSomething {red}
+ \ShowSomething {orange}
+ \ShowSomething {yellow}
+ \ShowSomething {green}
+ \column
+ \ShowSomething {cyan}
+ \ShowSomething {blue}
+ \ShowSomething {magenta}
+ \ShowSomething {violet}
+ \stopcolumns
+
+ \startalignment [flushleft]
+ \dontleavehmode
+ \showcolorgroup [brown] [vertical,name,number]
+ \showcolorgroup [red] [vertical,name]
+ \showcolorgroup [orange] [vertical,name]
+ \showcolorgroup [yellow] [vertical,name]
+ \showcolorgroup [green] [vertical,name]
+ \showcolorgroup [cyan] [vertical,name]
+ \showcolorgroup [blue] [vertical,name]
+ \showcolorgroup [violet] [vertical,name]
+ \showcolorgroup [magenta] [vertical,name]
+ \showcolorgroup [gray] [vertical,name]
+ \stopalignment
+
+ \page
+
+ \dorecurse {9} {
+ \comparepalet [rainbow#1]
+ }
+
+ \comparepalet [rainbow0]
+
+ \comparepalet [rainbow]
+
+\stoptext
diff --git a/tex/context/base/mkiv/cont-new.mkiv b/tex/context/base/mkiv/cont-new.mkiv
index fe4ee0e69..04932eef5 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.07.07 23:58}
+\newcontextversion{2016.07.08 17:19}
%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 3bf751cc5..55d4ff148 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.07.07 23:58}
+\edef\contextversion{2016.07.08 17:19}
\edef\contextkind {beta}
%D For those who want to use this:
diff --git a/tex/context/base/mkiv/core-con.lua b/tex/context/base/mkiv/core-con.lua
index 6913ac569..fb5c3defe 100644
--- a/tex/context/base/mkiv/core-con.lua
+++ b/tex/context/base/mkiv/core-con.lua
@@ -6,7 +6,7 @@ if not modules then modules = { } end modules ['core-con'] = {
license = "see context related readme files"
}
--- todo: split into char-lan.lua and core-con.lua
+-- todo: split into lang-con.lua and core-con.lua
--[[ldx--
<p>This module implements a bunch of conversions. Some are more
@@ -42,6 +42,13 @@ local converters = converters
languages = languages or { }
local languages = languages
+local ctx_labeltext = context.labeltext
+local ctx_LABELTEXT = context.LABELTEXT
+local ctx_WORD = context.WORD
+local ctx_space = context.space
+local ctx_convertnumber = context.convertnumber
+local ctx_highordinalstr = context.highordinalstr
+
converters.number = tonumber
converters.numbers = tonumber
@@ -683,94 +690,104 @@ implement {
-- -- the original.
-- --
-- -- Conversion by Hans Hagen
---
--- local g_days_in_month = { [0]=31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
--- local j_days_in_month = { [0]=31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 }
---
--- local function div(a,b)
--- return math.floor(a/b)
--- end
---
--- local function remainder(a,b)
--- return a - div(a,b)*b
--- end
---
--- function gregorian_to_jalali(gy,gm,gd)
--- local jy, jm, jd, g_day_no, j_day_no, j_np, i
--- gy, gm, gd = gy - 1600, gm - 1, gd - 1
--- g_day_no = 365*gy + div((gy+3),4) - div((gy+99),100) + div((gy+399),400)
--- i = 0
--- while i < gm do
--- g_day_no = g_day_no + g_days_in_month[i]
--- i = i + 1
--- end
--- if (gm>1 and ((gy%4==0 and gy%100~=0) or (gy%400==0))) then
--- g_day_no = g_day_no + 1
--- end
--- g_day_no = g_day_no + gd
--- j_day_no = g_day_no - 79
--- j_np = div(j_day_no,12053)
--- j_day_no = remainder(j_day_no,12053)
--- jy = 979 + 33*j_np + 4*div(j_day_no,1461)
--- j_day_no = remainder(j_day_no,1461)
--- if j_day_no >= 366 then
--- jy = jy + div((j_day_no-1),365)
--- j_day_no = remainder((j_day_no-1),365)
--- end
--- i = 0
--- while i < 11 and j_day_no >= j_days_in_month[i] do
--- j_day_no = j_day_no - j_days_in_month[i]
--- i = i + 1
--- end
--- jm = i + 1
--- jd = j_day_no + 1
--- return jy, jm, jd
--- end
---
--- function jalali_to_gregorian(jy,jm,jd)
--- local gy, gm, gd, g_day_no, j_day_no, leap, i
--- jy, jm, jd = jy - 979, jm - 1, jd - 1
--- j_day_no = 365*jy + div(jy,33)*8 + div((remainder(jy,33)+3),4)
--- i = 0
--- while i < jm do
--- j_day_no = j_day_no + j_days_in_month[i]
--- i = i + 1
--- end
--- j_day_no = j_day_no + jd
--- g_day_no = j_day_no + 79
--- gy = 1600 + 400*div(g_day_no,146097)
--- g_day_no = remainder (g_day_no, 146097)
--- leap = 1
--- if g_day_no >= 36525 then
--- g_day_no = g_day_no - 1
--- gy = gy + 100*div(g_day_no,36524)
--- g_day_no = remainder (g_day_no, 36524)
--- if g_day_no >= 365 then
--- g_day_no = g_day_no + 1
--- else
--- leap = 0
--- end
--- end
--- gy = gy + 4*div(g_day_no,1461)
--- g_day_no = remainder (g_day_no, 1461)
--- if g_day_no >= 366 then
--- leap = 0
--- g_day_no = g_day_no - 1
--- gy = gy + div(g_day_no, 365)
--- g_day_no = remainder(g_day_no, 365)
--- end
--- i = 0
--- while g_day_no >= g_days_in_month[i] + ((i == 1 and leap) or 0) do
--- g_day_no = g_day_no - g_days_in_month[i] + ((i == 1 and leap) or 0)
--- i = i + 1
--- end
--- gm = i + 1
--- gd = g_day_no + 1
--- return gy, gm, gd
+
+local g_days_in_month = { [0] = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
+local j_days_in_month = { [0] = 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 }
+
+local div = math.div
+local mod = math.mod
+
+function gregorian_to_jalali(gy,gm,gd)
+ local jy, jm, jd, g_day_no, j_day_no, j_np, i
+ gy, gm, gd = gy - 1600, gm - 1, gd - 1
+ g_day_no = 365*gy + div((gy+3),4) - div((gy+99),100) + div((gy+399),400)
+ i = 0
+ while i < gm do
+ g_day_no = g_day_no + g_days_in_month[i]
+ i = i + 1
+ end
+ if (gm>1 and ((gy%4==0 and gy%100~=0) or (gy%400==0))) then
+ g_day_no = g_day_no + 1
+ end
+ g_day_no = g_day_no + gd
+ j_day_no = g_day_no - 79
+ j_np = div(j_day_no,12053)
+ j_day_no = mod(j_day_no,12053)
+ jy = 979 + 33*j_np + 4*div(j_day_no,1461)
+ j_day_no = mod(j_day_no,1461)
+ if j_day_no >= 366 then
+ jy = jy + div((j_day_no-1),365)
+ j_day_no = mod((j_day_no-1),365)
+ end
+ i = 0
+ while i < 11 and j_day_no >= j_days_in_month[i] do
+ j_day_no = j_day_no - j_days_in_month[i]
+ i = i + 1
+ end
+ jm = i + 1
+ jd = j_day_no + 1
+ return jy, jm, jd
+end
+
+function jalali_to_gregorian(jy,jm,jd)
+ local gy, gm, gd, g_day_no, j_day_no, leap, i
+ jy, jm, jd = jy - 979, jm - 1, jd - 1
+ j_day_no = 365*jy + div(jy,33)*8 + div((mod(jy,33)+3),4)
+ for i=0,jm-1,1 do
+ j_day_no = j_day_no + j_days_in_month[i]
+ end
+ j_day_no = j_day_no + jd
+ g_day_no = j_day_no + 79
+ gy = 1600 + 400*div(g_day_no,146097)
+ g_day_no = mod(g_day_no, 146097)
+ leap = 1
+ if g_day_no >= 36525 then
+ g_day_no = g_day_no - 1
+ gy = gy + 100*div(g_day_no,36524)
+ g_day_no = mod(g_day_no, 36524)
+ if g_day_no >= 365 then
+ g_day_no = g_day_no + 1
+ else
+ leap = 0
+ end
+ end
+ gy = gy + 4*div(g_day_no,1461)
+ g_day_no = mod(g_day_no, 1461)
+ if g_day_no >= 366 then
+ leap = 0
+ g_day_no = g_day_no - 1
+ gy = gy + div(g_day_no, 365)
+ g_day_no = mod(g_day_no, 365)
+ end
+ i = 0
+ while true do
+ local d = g_days_in_month[i] + ((i == 1 and leap) or 0)
+ if g_day_no >= d then
+ g_day_no = g_day_no - d
+ i = i + 1
+ else
+ break
+ end
+ end
+ gm = i + 1
+ gd = g_day_no + 1
+ return gy, gm, gd
+end
+
+-- local function test(yg,mg,dg,yj,mj,dj)
+-- local y1, m1, d1 = jalali_to_gregorian(yj,mj,dj)
+-- local y2, m2, d2 = gregorian_to_jalali(yg,mg,dg)
+-- print(y1 == yg and m1 == mg and d1 == dg, yg,mg,dg, y1,m1,d1)
+-- print(y2 == yj and m2 == mj and d2 == dj, yj,mj,dj, y2,m2,d2)
-- end
---
--- print(gregorian_to_jalali(2009,02,24))
--- print(jalali_to_gregorian(1387,12,06))
+
+-- test(1953,08,19, 1332,05,28)
+-- test(1979,02,11, 1357,11,22)
+-- test(2000,02,28, 1378,12,09)
+-- test(2000,03,01, 1378,12,11)
+-- test(2009,02,24, 1387,12,06)
+-- test(2015,03,21, 1394,01,01)
+-- test(2016,03,20, 1395,01,01)
-- -- more efficient but needs testing
@@ -850,7 +867,7 @@ local function ctxordinal(n,language)
local o = t and t(n)
context(n)
if o then
- context.highordinalstr(o)
+ ctx_highordinalstr(o)
end
end
@@ -1204,25 +1221,25 @@ end
implement {
name = "dayname",
- actions = { dayname, context.labeltext },
+ actions = { dayname, ctx_labeltext },
arguments = "integer",
}
implement {
name = "weekdayname",
- actions = { weekdayname, context.labeltext },
+ actions = { weekdayname, ctx_labeltext },
arguments = { "integer", "integer", "integer" }
}
implement {
name = "monthname",
- actions = { monthname, context.labeltext },
+ actions = { monthname, ctx_labeltext },
arguments = { "integer" }
}
implement {
name = "monthmnem",
- actions = { monthmnem, context.labeltext },
+ actions = { monthmnem, ctx_labeltext },
arguments = { "integer" }
}
@@ -1241,6 +1258,16 @@ local spaced = {
[v_day] = true,
}
+local converters = {
+ ["jalali:to"] = gregorian_to_jalali,
+ ["jalali:from"] = jalali_to_gregorian,
+}
+
+local variants = {
+ mnem = monthmnems,
+ jalali = setmetatableindex(function(t,k) return months[k] .. ":jalali" end),
+}
+
local function currentdate(str,currentlanguage) -- second argument false : no label
local list = utilities.parsers.settings_to_array(str)
local splitlabel = languages.labels.split or string.itself -- we need to get the loading order right
@@ -1253,89 +1280,96 @@ local function currentdate(str,currentlanguage) -- second argument false : no la
end
for i=1,#list do
local entry = list[i]
- local tag, plus = splitlabel(entry)
- local ordinal, mnemonic, whatordinal, highordinal = false, false, nil, false
- if not tag then
- tag = entry
- elseif plus == "+" or plus == "ord" then
- ordinal = true
- elseif plus == "++" or plus == "highord" then
- ordinal = true
- highordinal = true
- elseif plus == "mnem" then
- mnemonic = true
- end
- if not auto and spaced[tag] then
- context.space()
- end
- auto = false
- if tag == v_year or tag == "y" or tag == "Y" then
- context(year)
- elseif tag == "yy" or tag == "YY" then
- context("%02i",year % 100)
- elseif tag == v_month or tag == "m" then
- if currentlanguage == false then
- context(months[month])
- elseif mnemonic then
- context.labeltext(variables[monthmnems[month]])
- else
- context.labeltext(variables[months[month]])
- end
- elseif tag == v_MONTH then
- if currentlanguage == false then
- context.WORD(variables[months[month]])
- elseif mnemonic then
- context.LABELTEXT(variables[monthmnems[month]])
- else
- context.LABELTEXT(variables[months[month]])
+ local convert = converters[entry]
+ if convert then
+ year, month, day = convert(year,month,day)
+ else
+ local tag, plus = splitlabel(entry)
+ local ordinal, mnemonic, whatordinal, highordinal = false, false, nil, false
+ if not tag then
+ tag = entry
+ elseif plus == "+" or plus == "ord" then
+ ordinal = true
+ elseif plus == "++" or plus == "highord" then
+ ordinal = true
+ highordinal = true
+ -- elseif plus == "mnem" then
+ -- mnemonic = true
+ elseif plus then -- elseif plus == "mnem" then
+ mnemonic = variants[plus]
end
- elseif tag == "mm" then
- context("%02i",month)
- elseif tag == "M" then
- context(month)
- elseif tag == v_day or tag == "d" then
- if currentlanguage == false then
- context(days[day])
- else
- context.convertnumber(v_day,day) -- why not direct
+ if not auto and spaced[tag] then
+ ctx_space()
end
- whatordinal = day
- elseif tag == "dd" then
- context("%02i",day)
- whatordinal = day
- elseif tag == "D" then
- context(day)
- whatordinal = day
- elseif tag == v_weekday or tag == "w" then
- local wd = weekday(day,month,year)
- if currentlanguage == false then
- context(days[wd])
- else
- context.labeltext(variables[days[wd]])
+ auto = false
+ if tag == v_year or tag == "y" or tag == "Y" then
+ context(year)
+ elseif tag == "yy" or tag == "YY" then
+ context("%02i",year % 100)
+ elseif tag == v_month or tag == "m" then
+ if currentlanguage == false then
+ context(months[month])
+ elseif mnemonic then
+ ctx_labeltext(variables[mnemonic[month]])
+ else
+ ctx_labeltext(variables[months[month]])
+ end
+ elseif tag == v_MONTH then
+ if currentlanguage == false then
+ ctx_WORD(variables[months[month]])
+ elseif mnemonic then
+ ctx_LABELTEXT(variables[mnemonic[month]])
+ else
+ ctx_LABELTEXT(variables[months[month]])
+ end
+ elseif tag == "mm" then
+ context("%02i",month)
+ elseif tag == "M" then
+ context(month)
+ elseif tag == v_day or tag == "d" then
+ if currentlanguage == false then
+ context(days[day])
+ else
+ ctx_convertnumber(v_day,day) -- why not direct
+ end
+ whatordinal = day
+ elseif tag == "dd" then
+ context("%02i",day)
+ whatordinal = day
+ elseif tag == "D" then
+ context(day)
+ whatordinal = day
+ elseif tag == v_weekday or tag == "w" then
+ local wd = weekday(day,month,year)
+ if currentlanguage == false then
+ context(days[wd])
+ else
+ ctx_labeltext(variables[days[wd]])
+ end
+ elseif tag == v_WEEKDAY then
+ local wd = weekday(day,month,year)
+ if currentlanguage == false then
+ ctx_WORD(days[wd])
+ else
+ ctx_LABELTEXT(variables[days[wd]])
+ end
+ elseif tag == "W" then
+ context(weekday(day,month,year))
+ elseif tag == v_referral then
+ context("%04i%02i%02i",year,month,day)
+ elseif tag == v_space or tag == "\\ " then
+ ctx_space()
+ auto = true
+ elseif tag ~= "" then
+ context(tag)
+ auto = true
end
- elseif tag == v_WEEKDAY then
- local wd = weekday(day,month,year)
- if currentlanguage == false then
- context.WORD(days[wd])
- else
- context.LABELTEXT(variables[days[wd]])
- end
- elseif tag == "W" then
- context(weekday(day,month,year))
- elseif tag == v_referral then
- context("%04i%02i%02i",year,month,day)
- elseif tag == v_space or tag == "\\ " then
- context.space()
- auto = true
- elseif tag ~= "" then
- context(tag)
- auto = true
- end
- if ordinal and whatordinal then
- if currentlanguage == false then
- -- ignore
- else
- context[highordinal and "highordinalstr" or "ordinalstr"](converters.ordinal(whatordinal,currentlanguage))
+ if ordinal and whatordinal then
+ if currentlanguage == false then
+ -- ignore
+ else
+ context[highordinal and "highordinalstr" or "ordinalstr"](converters.ordinal(whatordinal,currentlanguage))
+ end
end
end
end
diff --git a/tex/context/base/mkiv/lang-txt.lua b/tex/context/base/mkiv/lang-txt.lua
index 2938550ee..6d9c94e0f 100644
--- a/tex/context/base/mkiv/lang-txt.lua
+++ b/tex/context/base/mkiv/lang-txt.lua
@@ -552,7 +552,7 @@ data.labels={
},
},
["april:mnem"]={
- labels={
+ labels={
af="",
ca="",
cs="dub.",
@@ -2300,6 +2300,78 @@ data.labels={
vi="thứ tư",
},
},
+ ["august:jalali"] = {
+ labels = {
+ en = "Aban",
+ fa = "آبان",
+ },
+ },
+ ["november:jalali"] = {
+ labels = {
+ en = "Bahman",
+ fa = "unset",
+ },
+ },
+ ["september:jalali"] = {
+ labels = {
+ en = "Azar",
+ fa = "آذر",
+ },
+ },
+ ["october:jalali"] = {
+ labels = {
+ en = "Dey",
+ fa = "دی",
+ },
+ },
+ ["december:jalali"] = {
+ labels = {
+ en = "Esfand",
+ fa = "اسفند",
+ },
+ },
+ ["januari:jalali"] = {
+ labels = {
+ en = "Farvardin",
+ fa = "فروردین",
+ },
+ },
+ ["march:jalali"] = {
+ labels = {
+ en = "Khordad",
+ fa = "خرداد",
+ },
+ },
+ ["july:jalali"] = {
+ labels = {
+ en = "Mehr",
+ fa = "مهر",
+ },
+ },
+ ["may:jalali"] = {
+ labels = {
+ en = "Mordad",
+ fa = "مرداد",
+ },
+ },
+ ["februari:jalali"] = {
+ labels = {
+ en = "Ordibehesht",
+ fa = "اردیبهشت",
+ },
+ },
+ ["june:jalali"] = {
+ labels = {
+ en = "Shahrivar",
+ fa = "شهریور",
+ },
+ },
+ ["april:jalali"] = {
+ labels = {
+ en = "Tir",
+ fa = "تیر",
+ },
+ },
},
titles={
abbreviations={
diff --git a/tex/context/base/mkiv/publ-imp-default.mkvi b/tex/context/base/mkiv/publ-imp-default.mkvi
index f5c99ac18..9918c8934 100644
--- a/tex/context/base/mkiv/publ-imp-default.mkvi
+++ b/tex/context/base/mkiv/publ-imp-default.mkvi
@@ -275,6 +275,18 @@
[\c!left={(},
\c!right={)}]
+\definebtx
+ [\s!default:\s!cite:lefttext]
+ [\s!default:\s!cite]
+ [\c!left=,
+ \c!right=]
+
+\definebtx
+ [\s!default:\s!cite:righttext]
+ [\s!default:\s!cite]
+ [\c!left=,
+ \c!right=]
+
% Multilingual text strings
\setupbtxlabeltext
@@ -496,11 +508,11 @@
%D Experiment:
-\startsetups btx:default:lefttext
+\startsetups btx:default:cite:lefttext
\currentbtxlefttext
\stopsetups
-\startsetups btx:default:righttext
+\startsetups btx:default:cite:righttext
\currentbtxrighttext
\stopsetups
diff --git a/tex/context/base/mkiv/status-files.pdf b/tex/context/base/mkiv/status-files.pdf
index dbd30fb33..c7630f4bf 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 8e6aa3c03..0f50e6861 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/mkiv/i-accent.xml b/tex/context/interface/mkiv/i-accent.xml
new file mode 100644
index 000000000..b947dfc12
--- /dev/null
+++ b/tex/context/interface/mkiv/i-accent.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineaccent" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecharacter" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="string-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecommand" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="string-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathaccent" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildmathaccent" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextaccent" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextmacron" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextbottomdot" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextcedilla" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextognek" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextbottomcomma" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="d" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buildtextgrave" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="acute" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grave" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ddot" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tilde" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bar" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="breve" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="check" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hat" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vec" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dot" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="AA" file="enco-ini.mkiv"/>
+
+ <cd:command name="aa" file="enco-ini.mkiv"/>
+
+ <cd:command name="AE" file="enco-ini.mkiv"/>
+
+ <cd:command name="ae" file="enco-ini.mkiv"/>
+
+ <cd:command name="CC" file="enco-ini.mkiv"/>
+
+ <cd:command name="cc" file="enco-ini.mkiv"/>
+
+ <cd:command name="L" file="enco-ini.mkiv"/>
+
+ <cd:command name="l" file="enco-ini.mkiv"/>
+
+ <cd:command name="O" file="enco-ini.mkiv"/>
+
+ <cd:command name="o" file="enco-ini.mkiv"/>
+
+ <cd:command name="OE" file="enco-ini.mkiv"/>
+
+ <cd:command name="oe" file="enco-ini.mkiv"/>
+
+ <cd:command name="SZ" file="enco-ini.mkiv"/>
+
+ <cd:command name="sz" file="enco-ini.mkiv"/>
+
+ <cd:command name="SS" file="enco-ini.mkiv"/>
+
+ <cd:command name="IJ" file="enco-ini.mkiv"/>
+
+ <cd:command name="ij" file="enco-ini.mkiv"/>
+
+ <cd:command name="i" file="enco-ini.mkiv"/>
+
+ <cd:command name="j" file="enco-ini.mkiv"/>
+
+ <cd:command name="eszett" file="enco-ini.mkiv"/>
+
+ <cd:command name="Eszett" file="enco-ini.mkiv"/>
+
+ <cd:command name="Ssharp" file="enco-ini.mkiv"/>
+
+ <cd:command name="lslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="Lslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="dslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="Dslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="oslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="Oslash" file="enco-ini.mkiv"/>
+
+ <cd:command name="dcroat" file="enco-ini.mkiv"/>
+
+ <cd:command name="Dcroat" file="enco-ini.mkiv"/>
+
+ <cd:command name="kcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="Kcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="lcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="Lcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="ncedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="Ncedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="rcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="Rcedilla" file="enco-ini.mkiv"/>
+
+ <cd:command name="aumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="Aumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="eumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="Eumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="iumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="Iumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="oumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="Oumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="uumlaut" file="enco-ini.mkiv"/>
+
+ <cd:command name="Uumlaut" file="enco-ini.mkiv"/>
+
+ -->
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-align.xml b/tex/context/interface/mkiv/i-align.xml
new file mode 100644
index 000000000..d8b75a463
--- /dev/null
+++ b/tex/context/interface/mkiv/i-align.xml
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupalign" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="broad"/>
+ <cd:constant type="wide"/>
+ <cd:constant type="bottom" default="yes"/>
+ <cd:constant type="height"/>
+ <cd:constant type="line"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="lohi"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="width" default="yes"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="flushinner"/>
+ <cd:constant type="flushouter"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="center"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="last"/>
+ <cd:constant type="end"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="lefttoright"/>
+ <cd:constant type="righttoleft"/>
+ <cd:constant type="l2r"/>
+ <cd:constant type="r2l"/>
+ <cd:constant type="table"/>
+ <cd:constant type="lesshyphenation"/>
+ <cd:constant type="morehyphenation"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="nothanging"/>
+ <cd:constant type="hz"/>
+ <cd:constant type="fullhz"/>
+ <cd:constant type="nohz"/>
+ <cd:constant type="hyphenated"/>
+ <cd:constant type="nothyphenated"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="extremestretch"/>
+ <cd:constant type="final"/>
+ <cd:constant type="2*final"/>
+ <cd:constant type="3*final"/>
+ <cd:constant type="4*final"/>
+ <!--
+ <cd:constant type="cd:name"/>
+ -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usealignparameter" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alignment" type="environment" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupalign"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linealignment" type="environment" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="max"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftaligned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="middlealigned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="rightaligned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="maxaligned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="midaligned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="centeraligned" type="environment" file="spac-ali.mkiv"/>
+
+ <cd:command name="leftaligned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightaligned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="middlealigned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="maxaligned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midaligned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="centeraligned" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alignedline" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-alignline"/>
+ <cd:resolve name="argument-alignline"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordright" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="right"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplealignedbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-alignsimple"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplealignedspreadbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-alignsimple"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplealignedboxplus" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-alignsimple"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplereversealignedbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-alignsimple"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplereversealignedboxplus" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-alignsimple"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alignedbox" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-aligned"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="aligned" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-aligned"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefttoright" file="spac-ali.mkiv"/>
+
+ <cd:command name="righttoleft" file="spac-ali.mkiv"/>
+
+ <cd:command name="raggedbottom" file="spac-ali.mkiv"/>
+
+ <cd:command name="alignbottom" file="spac-ali.mkiv"/>
+
+ <cd:command name="baselinebottom" file="spac-ali.mkiv"/>
+
+ <cd:command name="notragged" file="spac-ali.mkiv"/>
+
+ <cd:command name="raggedleft" file="spac-ali.mkiv"/>
+
+ <cd:command name="raggedcenter" file="spac-ali.mkiv"/>
+
+ <cd:command name="raggedright" file="spac-ali.mkiv"/>
+
+ <cd:command name="veryraggedleft" file="spac-ali.mkiv"/>
+
+ <cd:command name="veryraggedcenter" file="spac-ali.mkiv"/>
+
+ <cd:command name="veryraggedright" file="spac-ali.mkiv"/>
+
+ <cd:command name="raggedwidecenter" file="spac-ali.mkiv"/>
+
+ <cd:command name="centeredlastline" file="spac-ali.mkiv"/>
+
+ <cd:command name="flushedrightlastline" file="spac-ali.mkiv"/>
+
+ <cd:command name="ttraggedright" file="spac-ali.mkiv"/>
+
+ <cd:command name="forgetragged" file="spac-ali.mkiv"/>
+
+ <cd:command name="line" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftline" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightline" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="centerline" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-anchor.xml b/tex/context/interface/mkiv/i-anchor.xml
new file mode 100644
index 000000000..342976a3d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-anchor.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineanchor" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="anchor" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-attachment.xml b/tex/context/interface/mkiv/i-attachment.xml
new file mode 100644
index 000000000..6aadc0304
--- /dev/null
+++ b/tex/context/interface/mkiv/i-attachment.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineattachment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupattachment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="buffer">
+ <cd:constant type="cd:buffer"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="hidden"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="Graph"/>
+ <cd:constant type="Paperclip"/>
+ <cd:constant type="Pushpin"/>
+ <cd:constant type="Default"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textlayer">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="leftedge"/>
+ <cd:constant type="rightedge"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupattachments" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="registerattachment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="attachment" generated="yes" variant="generated" file="scrn-wid.mkvi">
+ <cd:sequence>
+ <cd:variable value="attachment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="attachment" type="environment" generated="yes" variant="generated" file="scrn-wid.mkvi">
+ <cd:sequence>
+ <cd:variable value="attachment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeattachments" file="scrn-wid.mkvi"/>
+
+ <cd:command name="attachment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="attachment" type="environment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupattachment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-attribute.xml b/tex/context/interface/mkiv/i-attribute.xml
new file mode 100644
index 000000000..eb699b99e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-attribute.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="pushattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="popattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installattributestack" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ <cd:constant type="public" default="yes"/>
+ <cd:constant type="private"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesystemattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ <cd:constant type="public"/>
+ <cd:constant type="private" default="yes"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="newattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosetattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doresetattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dogetattribute" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dogetattributeid" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetallattributes" file="attr-ini.mkiv"/>
+
+ <cd:command name="savecurrentattributes" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="restorecurrentattributes" file="attr-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showattributes" file="attr-ini.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-backend.xml b/tex/context/interface/mkiv/i-backend.xml
new file mode 100644
index 000000000..ff9a628cb
--- /dev/null
+++ b/tex/context/interface/mkiv/i-backend.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupbackend" file="back-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="export">
+ <cd:constant type="yes"/>
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="xhtml">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="xmpfile">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="version"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="always"/>
+ <cd:constant type="never"/>
+ </cd:parameter>
+ <cd:parameter name="profile">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-background.xml b/tex/context/interface/mkiv/i-background.xml
new file mode 100644
index 000000000..400e01454
--- /dev/null
+++ b/tex/context/interface/mkiv/i-background.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definebackground" file="pack-bck.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackground" file="pack-bck.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" generated="yes" variant="generated" file="pack-bck.mkvi">
+ <cd:sequence>
+ <cd:variable value="background"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" file="pack-bck.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" generated="yes" variant="generated" file="pack-bck.mkvi">
+ <cd:sequence>
+ <cd:variable value="background"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" file="pack-bck.mkvi">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="backgroundline" file="pack-bck.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" variant="1" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="leftedge"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="text"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="rightedge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbackgrounds" variant="2" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="paper"/>
+ <cd:constant type="page"/>
+ <cd:constant type="leftpage"/>
+ <cd:constant type="rightpage"/>
+ <cd:constant type="text"/>
+ <cd:constant type="hidden"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="background" type="environment" begin="push" end="pop" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesomebackground" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsomebackgroundelse" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsomebackground" file="page-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-bar.xml b/tex/context/interface/mkiv/i-bar.xml
new file mode 100644
index 000000000..3f339b9a0
--- /dev/null
+++ b/tex/context/interface/mkiv/i-bar.xml
@@ -0,0 +1,205 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definebar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="ex" default="yes"/>
+ <cd:constant type="em"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="in"/>
+ <cd:constant type="cm"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="nc"/>
+ </cd:parameter>
+ <cd:parameter name="order">
+ <cd:constant type="foreground" default="yes"/>
+ <cd:constant type="background"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupbars" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="bar" generated="yes" variant="generated" file="node-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="bar"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bar" type="environment" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setbar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directsetbar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bar" type="environment" begin="push" end="pop" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrike" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="understrike" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbars" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbars" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overstrikes" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="understrikes" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underrandom" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underrandoms" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underdash" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underdashes" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underdot" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underdots" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-blackrule.xml b/tex/context/interface/mkiv/i-blackrule.xml
new file mode 100644
index 000000000..edb6873f0
--- /dev/null
+++ b/tex/context/interface/mkiv/i-blackrule.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupblackrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="mp"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrule" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupblackrules"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blackrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupblackrules"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vl" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hl" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somekindoftab" file="tabl-mis.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-bleed.xml b/tex/context/interface/mkiv/i-bleed.xml
new file mode 100644
index 000000000..15a2fe5f7
--- /dev/null
+++ b/tex/context/interface/mkiv/i-bleed.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupbleeding" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="t"/>
+ <cd:constant type="b"/>
+ <cd:constant type="l" default="yes"/>
+ <cd:constant type="r"/>
+ <cd:constant type="bl"/>
+ <cd:constant type="lb"/>
+ <cd:constant type="br"/>
+ <cd:constant type="rb"/>
+ <cd:constant type="tl"/>
+ <cd:constant type="lt"/>
+ <cd:constant type="tr"/>
+ <cd:constant type="rt"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bleed" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbleeding"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bleedwidth" file="pack-box.mkiv"/>
+
+ <cd:command name="bleedheight" file="pack-box.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-block.xml b/tex/context/interface/mkiv/i-block.xml
new file mode 100644
index 000000000..980b5b435
--- /dev/null
+++ b/tex/context/interface/mkiv/i-block.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineblock" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblock" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="block" type="environment" generated="yes" variant="generated" begin="begin" end="end" file="strc-blk.mkiv">
+ <cd:sequence>
+ <cd:variable value="block"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hideblocks" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keepblocks" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblocks" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processblocks" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="selectblocks" file="strc-blk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="criterium">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-bookmark.xml b/tex/context/interface/mkiv/i-bookmark.xml
new file mode 100644
index 000000000..5b7aec9a8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-bookmark.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupbookmark" file="strc-bkm.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="force">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numberseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberstarter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="numberstopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="numbersegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="sectionblock">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupbookmarks" file="strc-bkm.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupbookmark"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="bookmark" file="strc-bkm.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebookmarks" file="src-bkm.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbookmark"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-boxes.xml b/tex/context/interface/mkiv/i-boxes.xml
new file mode 100644
index 000000000..a9eeb96ae
--- /dev/null
+++ b/tex/context/interface/mkiv/i-boxes.xml
@@ -0,0 +1,982 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="doiftext" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsetext" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiftextelse" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowithnextbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowithnextboxcs" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nextboxwd" file="supp-box.mkiv"/>
+
+ <cd:command name="nextboxht" file="supp-box.mkiv"/>
+
+ <cd:command name="nextboxdp" file="supp-box.mkiv"/>
+
+ <cd:command name="nextboxhtdp" file="supp-box.mkiv"/>
+
+ <cd:command name="flushnextbox" file="supp-box.mkiv"/>
+
+ <cd:command name="nextbox" file="supp-box.mkiv"/>
+
+ <cd:command name="nextdepth" file="supp-box.mkiv"/>
+
+ <cd:command name="dowithnextboxcontent" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowithnextboxcontentcs" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rlap" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="llap" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clap" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tlap" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blap" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reshapebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shapebox" type="environment" begin="beginof" end="endof" file="supp-box.mkiv"/>
+
+ <cd:command name="flushshapebox" file="supp-box.mkiv"/>
+
+ <cd:command name="innerflushshapebox" file="supp-box.mkiv"/>
+
+ <cd:command name="shapedhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processtokens" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doboundtext" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="limitatetext" variant="1" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension" prefix="cd:sign"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="limitatetext" variant="2" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:dimension" prefix="cd:sign"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="limtatefirstline" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processisolatedchars" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processisolatedwords" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytocharacters" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytowords" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringchar" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringword" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringline" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringcharspaced" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringwordspaced" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytosplitstringlinespaced" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinedbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="struttedbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="topskippedbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="centeredbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="centerednextbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="centerbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setrigidcolumnhsize" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setrigidcolumnbalance" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vboxtohbox" type="environment" file="supp-box.mkiv"/>
+
+ <cd:command name="vboxtohboxseparator" type="environment" file="supp-box.mkiv"/>
+
+ <cd:command name="convertvboxtohbox" file="supp-box.mkiv"/>
+
+ <cd:command name="hboxestohbox" type="environment" file="supp-box.mkiv"/>
+
+ <cd:command name="unhhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:delimiter name="with"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="hhbox" file="supp-box.mkiv"/>
+
+ -->
+
+ <cd:command name="hboxofvbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcontent" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlay" type="environment" file="supp-box.mkiv"/>
+
+ <cd:command name="fakebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ltop" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctop" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rtop" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefthbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="righthbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="boxofsize" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:keywords delimiters="none" list="yes" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="limitatelines" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fittopbaselinegrid" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="boxcursor" file="supp-box.mkiv"/>
+
+ <cd:command name="placedbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="topbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bottombox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefttopbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="righttopbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftbottombox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightbottombox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="topleftbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="toprightbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bottomleftbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bottomrightbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="middlebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="baselinemiddlebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="baselineleftbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="baselinerightbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lrtbbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="toplinebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setstackbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="initializeboxstack" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="restorebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="foundbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifboxelse" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localpushbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localpopbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalpushbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalpopbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removedepth" file="supp-box.mkiv"/>
+
+ <cd:command name="obeydepth" file="supp-box.mkiv"/>
+
+ <cd:command name="undepthed" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removebottomthings" file="supp-box.mkiv"/>
+
+ <cd:command name="removelastskip" file="supp-box.mkiv"/>
+
+ <cd:command name="makestrutofbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="raisebox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lowerbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="halfwaybox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="depthonlybox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalvbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalvtop" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalvcenter" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalhpack" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="naturalvpack" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="frozenhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setboxllx" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setboxlly" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gsetboxllx" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gsetboxlly" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getboxllx" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getboxlly" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directgetboxllx" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directgetboxlly" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shownextbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="spreadhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="minimalhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nodetostring" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getnaturaldimensions" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lastnaturalboxwd" file="supp-box.mkiv"/>
+
+ <cd:command name="lastnaturalboxht" file="supp-box.mkiv"/>
+
+ <cd:command name="lastnaturalboxdp" file="supp-box.mkiv"/>
+
+ <cd:command name="naturalwd" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelserighttoleftinbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifrighttoleftinboxelse" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="righttolefthbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefttorighthbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="righttoleftvbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefttorightvbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="righttoleftvtop" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lefttorightvtop" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="autodirhbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="autodirvbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="autodirvtop" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftorrighthbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftorrightvbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftorrightvtop" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ibox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="obox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definehbox" file="spac-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hbox" generated="yes" variant="generated" file="spac-ali.mkiv">
+ <cd:sequence>
+ <cd:string value="hbox"/>
+ <cd:variable value="box"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-buffer.xml b/tex/context/interface/mkiv/i-buffer.xml
new file mode 100644
index 000000000..ad1ffd519
--- /dev/null
+++ b/tex/context/interface/mkiv/i-buffer.xml
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="doifelsebuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-buffer"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifbufferelse" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-buffer"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetbuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grabbufferdata" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-category-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grabbufferdatadirect" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" begin="set" end="end" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-buffer-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbuffer"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdefinedbuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinebuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="buffer" type="environment" generated="yes" variant="generated" file="buff-ini.mkiv">
+ <cd:sequence>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="getbuffer" generated="yes" variant="generated" file="buff-ini.mkiv">
+ <cd:sequence>
+ <cd:string value="get"/>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hiding" type="environment" file="buff-ini.mkiv"/>
+
+ <cd:command name="processtexbuffer" file="buff-ini.mkiv">
+ <cd:sequence>
+ <cd:string value="processTEXbuffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savebuffer" variant="1" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-list"/>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savebuffer" variant="2" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="list">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxluabuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mkvibuffer" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getbufferdata" file="buff-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-list-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typebuffer" generated="yes" variant="generated" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:string value="type"/>
+ <cd:variable value="buffer"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typedefinedbuffer" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-button.xml b/tex/context/interface/mkiv/i-button.xml
new file mode 100644
index 000000000..1f6dfd5bf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-button.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definebutton" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbutton" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="samepage">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="hidden"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupbuttons" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="button" generated="yes" variant="generated" file="scrn-but.mkvi">
+ <cd:sequence>
+ <cd:variable value="button"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="button" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlaybutton" variant="1" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlaybutton" variant="2" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPmenubuttons" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlayrollbutton" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepushbutton" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldcontentframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pushbutton" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepushsymbol" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="n"/>
+ <cd:constant type="r"/>
+ <cd:constant type="d"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="psh" variant="button" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="psh" type="environment" variant="button" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rollbutton" variant="1" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionmenu"/>
+ </cd:assignments>
+ <cd:resolve name="string-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rollbutton" variant="2" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ <cd:resolve name="string-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rob" variant="button" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rob" variant="button" type="environment" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-capitals.xml b/tex/context/interface/mkiv/i-capitals.xml
new file mode 100644
index 000000000..bfbb6bb2b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-capitals.xml
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecapitals" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcapitals"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcapitals" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcharactercasing" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="WORD"/>
+ <cd:constant type="word"/>
+ <cd:constant type="Word"/>
+ <cd:constant type="Words"/>
+ <cd:constant type="capital"/>
+ <cd:constant type="Capital"/>
+ <cd:constant type="none"/>
+ <cd:constant type="random"/>
+ <cd:constant type="mixed"/>
+ <cd:constant type="camel"/>
+ <cd:constant type="cap"/>
+ <cd:constant type="Cap"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORD" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="word" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Word" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Words" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="camel" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WORDS" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="words" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pseudosmallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pseudoSmallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pseudoSmallCapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pseudoMixedCapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="realsmallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="realSmallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="realSmallCapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="notsmallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Smallcapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="SmallCapped" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="autocap" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mixedcaps" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="kap" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Caps" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uppercased" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lowercased" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="randomizetext" file="typo-cap.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="randomized" type="environment" file="typo-cap.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-catcodes.xml b/tex/context/interface/mkiv/i-catcodes.xml
new file mode 100644
index 000000000..7c3f649d5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-catcodes.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="texcode" type="environment" file="catc-ctx.mkiv"/>
+
+ <cd:command name="contextcode" type="environment" file="catc-ctx.mkiv"/>
+
+ <cd:command name="contextdefinitioncode" type="environment" file="catc-ctx.mkiv"/>
+
+ <cd:command name="protect" type="environment" begin="un" end="​" file="catc-def.mkiv"/><!-- end="zero width space" -->
+
+ <cd:command name="newcatcodetable" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="catcodetable" type="environment" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="extendedcatcodetable" type="environment" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installactivecharacter" file="catc-act.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineactivecharacter" file="catc-act.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installanddefineactivecharacter" file="catc-act.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makecharacteractive" file="catc-act.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="permitcircumflexescape" file="catc-ini.mkiv"/>
+
+ <cd:command name="permitcaretescape" file="catc-ini.mkiv"/>
+
+ <cd:command name="letcatcodecommand" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:character"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defcatcodecommand" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:character"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uedcatcodecommand" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:character"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="catcodetable" type="environment" begin="push" end="pop" file="catc-ini.mkiv"/>
+
+ <cd:command name="restorecatcodes" file="catc-ini.mkiv"/>
+
+ <cd:command name="setcatcodetable" file="catc-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tracecatcodetables" file="catc-ini.mkiv"/>
+
+ <cd:command name="catcodetablename" file="catc-ini.mkiv"/>
+
+ <cd:command name="rescan" file="catc-sym.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rescanwithsetup" file="catc-sym.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-character.xml b/tex/context/interface/mkiv/i-character.xml
new file mode 100644
index 000000000..47bc714fa
--- /dev/null
+++ b/tex/context/interface/mkiv/i-character.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="letteropenbrace" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterclosebrace" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterampersand" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterless" file="catc-sym.mkiv"/>
+
+ <cd:command name="lettermore" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterhash" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterdoublequote" file="catc-sym.mkiv"/>
+
+ <cd:command name="lettersinglequote" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterdollar" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterpercent" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterhat" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterunderscore" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterbar" file="catc-sym.mkiv"/>
+
+ <cd:command name="lettertilde" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterbackslash" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterslash" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterquestionmark" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterat" file="catc-sym.mkiv"/>
+
+ <cd:command name="lettercolon" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterescape" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterbgroup" file="catc-sym.mkiv"/>
+
+ <cd:command name="letteregroup" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterleftbrace" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterrightbrace" file="catc-sym.mkiv"/>
+
+ <cd:command name="letterexclamationmark" file="catc-sym.mkiv"/>
+
+ <cd:command name="utfchar" file="char-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="safechar" file="char-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkedchar" file="char-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textormathchar" file="char-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chardescription" file="char-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="percent" file="enco-ini.mkiv"/>
+
+ <cd:command name="procent" file="enco-ini.mkiv"/>
+
+ <cd:command name="ampersand" file="enco-ini.mkiv"/>
+
+ <cd:command name="dollar" file="enco-ini.mkiv"/>
+
+ <cd:command name="hash" file="enco-ini.mkiv"/>
+
+ <cd:command name="hyphen" file="enco-ini.mkiv"/>
+
+ <cd:command name="lowerleftsingleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="lowerleftdoubleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="lowerrightsingleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="lowerrightdoubleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperleftsingleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperleftdoubleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperrightsingleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperrightdoubleninequote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperleftsinglesixquote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperleftdoublesixquote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperrightsinglesixquote" file="enco-ini.mkiv"/>
+
+ <cd:command name="upperrightdoublesixquote" file="enco-ini.mkiv"/>
+
+ <cd:command name="leftsubguillemot" file="enco-ini.mkiv"/>
+
+ <cd:command name="rightsubguillemot" file="enco-ini.mkiv"/>
+
+ <cd:command name="textcontrolspace" file="enco-ini.mkiv"/>
+
+ <cd:command name="textvisiblespace" file="enco-ini.mkiv"/>
+
+ <cd:command name="textminus" file="enco-ini.mkiv"/>
+
+ <cd:command name="textplus" file="enco-ini.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-characteralign.xml b/tex/context/interface/mkiv/i-characteralign.xml
new file mode 100644
index 000000000..2ee8d0cd9
--- /dev/null
+++ b/tex/context/interface/mkiv/i-characteralign.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="singalcharacteralign" file="typo-tal.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcharacteralign" file="typo-tal.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="number" method="apply"/>
+ <cd:constant type="cd:text" prefix="text" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcharacteralign" file="typo-tal.mkiv"/>
+
+ <cd:command name="alignmentcharacter" file="typo-tal.mkiv"/>
+
+ <cd:command name="characteralign" type="environment" file="typo-tal.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="number" method="apply"/>
+ <cd:constant type="cd:text" prefix="text" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkcharacteralign" file="typo-tal.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-characterspacing.xml b/tex/context/interface/mkiv/i-characterspacing.xml
new file mode 100644
index 000000000..cb54030c7
--- /dev/null
+++ b/tex/context/interface/mkiv/i-characterspacing.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecharacterspacing" file="typo-spa.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcharacterspacing" file="typo-spa.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcharacterspacing" file="typo-spa.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcharacterspacing" file="typo-spa.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-characterstripping.xml b/tex/context/interface/mkiv/i-characterstripping.xml
new file mode 100644
index 000000000..cd89ac065
--- /dev/null
+++ b/tex/context/interface/mkiv/i-characterstripping.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setcharacterstripping" file="typo-rep.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcharacterstripping" file="typo-rep.mkiv"/>
+
+ <cd:command name="forcecharacterstripping" file="typo-rep.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-charwidth.xml b/tex/context/interface/mkiv/i-charwidth.xml
new file mode 100644
index 000000000..63240327a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-charwidth.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="charwidthlanguage" file="typo-lan.mkiv"/>
+
+ <cd:command name="averagecharwidth" file="typo-lan.mkiv"/>
+
+ <cd:command name="languagecharwidth" file="typo-lan.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-language"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-chemical.xml b/tex/context/interface/mkiv/i-chemical.xml
new file mode 100644
index 000000000..d300f9008
--- /dev/null
+++ b/tex/context/interface/mkiv/i-chemical.xml
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="molecule" file="chem-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chem" file="chem-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupchemical" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="strut">
+ <cd:inherit name="value-strut"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rotation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symalign">
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="axis">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="framecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="size">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupchemicals" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupchemical"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setupchemicalframed" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definechemical" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definechemicalsymbol" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chemicalsymbol" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chemicaltext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chemical" type="environment" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupchemical"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="structurechemical" type="environment" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupchemical"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="chemical" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-text-list"/>
+ <cd:resolve name="keyword-text-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="structurechemical" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-text-list"/>
+ <cd:resolve name="keyword-text-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="chemicaltoptext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chemicalbottext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chemicalmidtext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="toptext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bottext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="midtext" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="definechemicals" file="chem-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupchemical"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-cleaning.xml b/tex/context/interface/mkiv/i-cleaning.xml
new file mode 100644
index 000000000..d982a5dd5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-cleaning.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="punctuation" type="environment" begin="push" end="pop" file="typo-chr.mkiv"/>
+
+ <cd:command name="removepunctuation" file="typo-chr.mkiv"/>
+
+ <cd:command name="markcontent" file="typo-chr.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markedcontent" type="environment" file="typo-chr.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removemarkedcontent" file="typo-chr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcharactercleaning" file="typo-cln.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="1"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-clipping.xml b/tex/context/interface/mkiv/i-clipping.xml
new file mode 100644
index 000000000..aa152a85b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-clipping.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupclipping" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clip" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupclipping"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-collector.xml b/tex/context/interface/mkiv/i-collector.xml
new file mode 100644
index 000000000..dab49f14c
--- /dev/null
+++ b/tex/context/interface/mkiv/i-collector.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="rotation">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="corner">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top" default="yes"/>
+ <cd:constant type="bottom"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:resolve name="value-aligned"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="composedcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptcollector" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="collectedtext" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-color.xml b/tex/context/interface/mkiv/i-color.xml
new file mode 100644
index 000000000..3f98914e4
--- /dev/null
+++ b/tex/context/interface/mkiv/i-color.xml
@@ -0,0 +1,597 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="negatecolorbox" file="colo-ext.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colorintent" type="environment" file="colo-ext.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="knockout"/>
+ <cd:constant type="overprint"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overprint" type="environment" file="colo-ext.mkiv"/>
+
+ <cd:command name="knockout" type="environment" file="colo-ext.mkiv"/>
+
+ <cd:command name="textcolorintent" type="environment" file="colo-ext.mkiv"/>
+
+ <cd:command name="definecolorgroup" file="colo-grp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="gray"/>
+ <cd:constant type="rgb" default="yes"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="spot"/>
+ </cd:keywords>
+ <cd:triplet list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="r">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="g">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="h">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="v">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="multiply"/>
+ <cd:constant type="screen"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="softlight"/>
+ <cd:constant type="hardlight"/>
+ <cd:constant type="colordodge"/>
+ <cd:constant type="colorburn"/>
+ <cd:constant type="darken"/>
+ <cd:constant type="lighten"/>
+ <cd:constant type="difference"/>
+ <cd:constant type="exclusion"/>
+ <cd:constant type="hue"/>
+ <cd:constant type="saturation"/>
+ <cd:constant type="color"/>
+ <cd:constant type="luminosity"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolor" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineglobalcolor" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineglobalcolor" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definenamedcolor" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definenamedcolor" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprocesscolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-color-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definespotcolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-color"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="a">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="multiply"/>
+ <cd:constant type="screen"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="softlight"/>
+ <cd:constant type="hardlight"/>
+ <cd:constant type="colordodge"/>
+ <cd:constant type="colorburn"/>
+ <cd:constant type="darken"/>
+ <cd:constant type="lighten"/>
+ <cd:constant type="difference"/>
+ <cd:constant type="exclusion"/>
+ <cd:constant type="hue"/>
+ <cd:constant type="saturation"/>
+ <cd:constant type="color"/>
+ <cd:constant type="luminosity"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="e">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="p">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemultitonecolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:color">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="definespotcolor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetransparency" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtocolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graycolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colored" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colored" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directcolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directcolored" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directcolored" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="definecolor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentcolor" type="environment" file="colo-ini.mkiv"/>
+
+ <cd:command name="colorset" type="environment" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecolors" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolors" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="spot">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="rgb">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cmyk">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="always"/>
+ </cd:parameter>
+ <cd:parameter name="pagecolormodel">
+ <cd:constant type="auto"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="intent">
+ <cd:constant type="overprint"/>
+ <cd:constant type="knockout"/>
+ <cd:constant type="none" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" begin="push" end="pop" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="color" type="environment" begin="save" end="restore" file="colo-ini.mkiv"/>
+
+ <cd:command name="definepalet" variant="1" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:name">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepalet" variant="2" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getpaletsize" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paletsize" file="colo-ini.mkiv"/>
+
+ <cd:command name="setuppalet" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcolormodell" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="black"/>
+ <cd:constant type="bw"/>
+ <cd:constant type="gray"/>
+ <cd:constant type="rgb"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="protectedcolors" type="environment" file="colo-ini.mkiv"/>
+
+ <cd:command name="defineintermediatecolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:color"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="a">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecolor" file="color-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcolorelse" file="color-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcolor" file="color-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcolor" type="environment" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPcolor" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPcoloronly" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPtransparency" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPoptions" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colorvalue" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grayvalue" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colorcomponents" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="transparencycomponents" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcolorcomponents" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseblack" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifblackelse" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-color"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedrawingblack" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdrawingblackelse" file="colo-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorbar" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolor" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorset" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorcomponents" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showpalet" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="horizontal" default="yes"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="number"/>
+ <cd:constant type="value"/>
+ <cd:constant type="name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparepalet" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcolorgroup" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="horizontal" default="yes"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="number"/>
+ <cd:constant type="value"/>
+ <cd:constant type="name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparecolorgroup" file="colo-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-columns.xml b/tex/context/interface/mkiv/i-columns.xml
new file mode 100644
index 000000000..154d38072
--- /dev/null
+++ b/tex/context/interface/mkiv/i-columns.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupcolumns" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="background"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="left"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:constant type="setuptolerance"/>
+ </cd:parameter>
+ <cd:parameter name="blank">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columns" type="environment" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcolumns"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcolumnspan" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columnspan" type="environment" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcolumnspan"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setsimplecolumnhsize" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplecolumns" type="environment" file="page-mul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setsimplecolumnhsize"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-combination.xml b/tex/context/interface/mkiv/i-combination.xml
new file mode 100644
index 000000000..4e7ea2d52
--- /dev/null
+++ b/tex/context/interface/mkiv/i-combination.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecombination" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcombination"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombination" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="label"/>
+ <cd:constant type="text" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupcombinations" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupcombination"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="combination" type="environment" variant="1" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:matrix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combination" type="environment" variant="2" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcombination"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="content" type="environment" variant="combination" file="pack-com.mkiv"/>
+
+ <cd:command name="caption" type="environment" variant="combination" file="pack-com.mkiv"/>
+
+ -->
+
+ <cd:command name="floatcombination" type="environment" variant="1" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:matrix"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floatcombination" type="environment" variant="2" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcombination"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-commandhandler.xml b/tex/context/interface/mkiv/i-commandhandler.xml
new file mode 100644
index 000000000..210690d3e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-commandhandler.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="installparameterhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installrootparameterhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installparameterhashhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installparametersethandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installstyleandcolorhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdefinehandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installsetuphandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installswitchsetuphandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installautosetuphandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installbasicparameterhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installbasicautosetuphandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installcommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installswitchcommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installautocommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installsimplecommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdirectparameterhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdirectsetuphandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdirectparametersethandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdirectstyleandcolorhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdirectcommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installsetuponlycommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="relateparameterhandlers" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installactionhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installnamespace" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installcorenamespace" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definenamespace" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="name">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="parent">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="list"/>
+ </cd:parameter>
+ <cd:parameter name="setup">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="list"/>
+ </cd:parameter>
+ <cd:parameter name="set">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="list"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listnamespaces" file="mult-aux.mkiv"/>
+
+ <cd:command name="showparentchain" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcommandhandlerelse" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotcommandhandler" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdefinitionset" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installdefinitionsetmember" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installparentinjector" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installframedcommandhandler" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installframedautocommandhandler" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installsimpleframedcommandhandler" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-comment.xml b/tex/context/interface/mkiv/i-comment.xml
new file mode 100644
index 000000000..52d54398b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-comment.xml
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecomment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcomment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcomment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="hidden"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="Comment"/>
+ <cd:constant type="Help"/>
+ <cd:constant type="Insert"/>
+ <cd:constant type="Key"/>
+ <cd:constant type="Newparagraph"/>
+ <cd:constant type="Note"/>
+ <cd:constant type="Paragraph"/>
+ <cd:constant type="Default"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="xml"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="textlayer">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="leftedge"/>
+ <cd:constant type="rightedge"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="text"/>
+ <cd:constant type="high" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" generated="yes" variant="generated" file="scrn-wid.mkvi">
+ <cd:sequence>
+ <cd:variable value="comment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcomment"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment" generated="yes" variant="generated" file="scrn-wid.mkvi">
+ <cd:sequence>
+ <cd:variable value="comment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcomment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecomments" file="scrn-wid.mkvi"/>
+
+ <cd:command name="comment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcomment"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comment" type="environment" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcomment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-common-argument.xml b/tex/context/interface/mkiv/i-common-argument.xml
new file mode 100644
index 000000000..305b93e90
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-argument.xml
@@ -0,0 +1,509 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * IDENTIFIER -->
+
+ <cd:define name="argument-name">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-name-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-name-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-name-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * NUMBER -->
+
+ <cd:define name="argument-number">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-number-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-number-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-number-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * TEXT -->
+
+ <cd:define name="argument-text">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-text-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-text-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-text-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * FILE -->
+
+ <cd:define name="argument-file">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-file-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-file-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-file-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * DIMENSION -->
+
+ <cd:define name="argument-dimension">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dimension-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dimension-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dimension-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * DUMMY -->
+
+ <cd:define name="argument-dummy">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dummy-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dummy-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-dummy-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * KEY -->
+
+ <cd:define name="argument-key">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-key-optional">
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-key-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-key-list-optional">
+ <cd:keywords delimiters="braces" list="yes" optional="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * REFERENCE -->
+
+ <cd:define name="argument-reference">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-reference-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * COMMAND -->
+
+ <cd:define name="argument-command">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="argument-command-list">
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * VALUE -->
+
+ <cd:define name="argument-value">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:value"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * FONT -->
+
+ <cd:define name="argument-font">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * COLOR -->
+
+ <cd:define name="argument-color">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * NODE -->
+
+ <cd:define name="argument-node">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:node"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * LPATH -->
+
+ <cd:define name="argument-lpath">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:lpath"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * XMLSETUP -->
+
+ <cd:define name="argument-xmlsetup">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:xmlsetup"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * SECTION -->
+
+ <cd:define name="argument-section">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * LIST -->
+
+ <cd:define name="argument-list">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * MARK -->
+
+ <cd:define name="argument-mark">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:mark"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * LANGUAGE -->
+
+ <cd:define name="argument-language">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * FIRST -->
+
+ <cd:define name="argument-first">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:first"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * LAST -->
+
+ <cd:define name="argument-last">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:last"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * BUFFER -->
+
+ <cd:define name="argument-buffer">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * SETUP -->
+
+ <cd:define name="argument-setup">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:setup"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * CATEGORY -->
+
+ <cd:define name="argument-category">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:category"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * CHARACTER -->
+
+ <cd:define name="argument-character">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:character"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * CSNAME -->
+
+ <cd:define name="argument-csname">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * TRUE -->
+
+ <cd:define name="argument-true">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:true"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * FALSE -->
+
+ <cd:define name="argument-false">
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:false"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * ALIGNLINE -->
+
+ <cd:define name="argument-alignline">
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-alignline"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * ALIGNSIMPLE -->
+
+ <cd:define name="argument-alignsimple">
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-alignsimple"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * BTXFIELD -->
+
+ <cd:define name="argument-btxfield">
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-btxfield"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... {...} -->
+ <!-- -->
+ <!-- * BTXAUTHOR -->
+
+ <cd:define name="argument-btxauthor">
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-btxauthor"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- math formula directives -->
+
+ <cd:define name="argument-formula">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="packed"/>
+ <cd:constant type="tight"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="frame"/>
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:define>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-common-assignment.xml b/tex/context/interface/mkiv/i-common-assignment.xml
new file mode 100644
index 000000000..0f11d0137
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-assignment.xml
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * SECTIONDATA -->
+
+ <cd:define name="assignment-sectiondata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-sectiondata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * FLOATDATA -->
+
+ <cd:define name="assignment-floatdata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:resolve name="value-floatlocation"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-floatdata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:resolve name="value-floatlocation"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * REGISTERDATA -->
+
+ <cd:define name="assignment-registerdata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="keys">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="entries">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="keys:1">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keys:2">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keys:3">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:1">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:2">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:3">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-registerdata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="keys">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="entries">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="keys:1">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keys:2">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keys:3">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:1">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:2">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="entries:3">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * CONSTRUCTIONDATA -->
+
+ <cd:define name="assignment-constructiondata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-constructiondata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * USERDATA -->
+
+ <cd:define name="assignment-userdata">
+ <cd:assignments>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-userdata-optional">
+ <cd:assignments optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-userdata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-userdata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- * LABELDATA -->
+
+ <cd:define name="assignment-labeldata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:key"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-labeldata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:key"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [..,.=.,..] -->
+ <!-- -->
+ <!-- CITEDATA -->
+
+ <cd:define name="assignment-citedata-list">
+ <cd:assignments list="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:resolve name="value-btxalternative"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:inherit name="setupbtx"/>
+ </cd:assignments>
+ </cd:define>
+
+ <cd:define name="assignment-citedata-list-optional">
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:resolve name="value-btxalternative"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:inherit name="setupbtx"/>
+ </cd:assignments>
+ </cd:define>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-common-definitions.xml b/tex/context/interface/mkiv/i-common-definitions.xml
new file mode 100644
index 000000000..1bb84efdc
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-definitions.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:interfacefile filename="i-common-argument.xml"/>
+ <cd:interfacefile filename="i-common-assignment.xml"/>
+ <cd:interfacefile filename="i-common-keyword.xml"/>
+ <cd:interfacefile filename="i-common-string.xml"/>
+ <cd:interfacefile filename="i-common-value.xml"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-common-keyword.xml b/tex/context/interface/mkiv/i-common-keyword.xml
new file mode 100644
index 000000000..15eed8628
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-keyword.xml
@@ -0,0 +1,704 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * DIMENSION -->
+
+ <cd:define name="keyword-dimension">
+ <cd:keywords>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dimension-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dimension-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dimension-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * NUMBER -->
+
+ <cd:define name="keyword-number">
+ <cd:keywords>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-number-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-number-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-number-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * REFERENCE -->
+
+ <cd:define name="keyword-reference">
+ <cd:keywords>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-reference-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-reference-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-reference-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * IDENTIFIER -->
+
+ <cd:define name="keyword-name">
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-name-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-name-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-name-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * SECTION -->
+
+ <cd:define name="keyword-section">
+ <cd:keywords>
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-section-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-section-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-section-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * LANGUAGE -->
+
+ <cd:define name="keyword-language">
+ <cd:keywords>
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-language-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-language-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-language-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * LIST -->
+
+ <cd:define name="keyword-list">
+ <cd:keywords>
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-list-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-list-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-list-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:list"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * MARK -->
+
+ <cd:define name="keyword-mark">
+ <cd:keywords>
+ <cd:constant type="cd:mark"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-mark-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:mark"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-mark-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:mark"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-mark-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:mark"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * SINGULAR -->
+
+ <cd:define name="keyword-singular">
+ <cd:keywords>
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-singular-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-singular-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-singular-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:singular"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * PLURAL -->
+
+ <cd:define name="keyword-plural">
+ <cd:keywords>
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-plural-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-plural-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-plural-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:plural"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * COLOR -->
+
+ <cd:define name="keyword-color">
+ <cd:keywords>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-color-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-color-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-color-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * TEXT -->
+
+ <cd:define name="keyword-text">
+ <cd:keywords>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-text-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-text-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-text-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * COMMAND -->
+
+ <cd:define name="keyword-command">
+ <cd:keywords>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-command-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-command-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-command-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * BUFFER -->
+
+ <cd:define name="keyword-buffer">
+ <cd:keywords>
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-buffer-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-buffer-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-buffer-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * CATEGORY -->
+
+ <cd:define name="keyword-category">
+ <cd:keywords>
+ <cd:constant type="cd:category"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-category-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:category"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-category-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:category"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-category-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:category"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * FILE -->
+
+ <cd:define name="keyword-file">
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-file-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-file-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-file-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * FONT -->
+
+ <cd:define name="keyword-font">
+ <cd:keywords>
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-font-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-font-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-font-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * CSNAME -->
+
+ <cd:define name="keyword-csname">
+ <cd:keywords>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-csname-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-csname-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-csname-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * DUMMY -->
+
+ <cd:define name="keyword-dummy">
+ <cd:keywords>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dummy-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dummy-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-dummy-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * KEY -->
+
+ <cd:define name="keyword-key">
+ <cd:keywords>
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-key-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-key-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-key-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:key"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * URL -->
+
+ <cd:define name="keyword-url">
+ <cd:keywords>
+ <cd:constant type="cd:url"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-url-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:url"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-url-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:url"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-url-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:url"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * TEMPLATE -->
+
+ <cd:define name="keyword-template">
+ <cd:keywords>
+ <cd:constant type="cd:template"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-template-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:template"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-template-list">
+ <cd:keywords list="yes">
+ <cd:constant type="cd:template"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-template-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:template"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * FLOATLOCATION -->
+
+ <cd:define name="keyword-floatlocation-list">
+ <cd:keywords list="yes">
+ <cd:resolve name="value-floatlocation"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-floatlocation-list-optional">
+ <cd:keywords list="yes" optional="yes">
+ <cd:resolve name="value-floatlocation"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * LAYOUTELEMENT -->
+
+ <cd:define name="keyword-layoutelement">
+ <cd:keywords>
+ <cd:constant type="date"/>
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="cd:mark"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-layoutelement-optional">
+ <cd:keywords optional="yes">
+ <cd:constant type="date"/>
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="cd:mark"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... [...] -->
+ <!-- -->
+ <!-- * BTXALTERNATIVE -->
+
+ <cd:define name="keyword-btxalternative">
+ <cd:keywords>
+ <cd:resolve name="value-btxalternative"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="keyword-btxalternative-optional">
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-btxalternative"/>
+ </cd:keywords>
+ </cd:define>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-common-string.xml b/tex/context/interface/mkiv/i-common-string.xml
new file mode 100644
index 000000000..8e940e6f3
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-string.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * TRUE -->
+
+ <cd:define name="string-true">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:true"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * FALSE -->
+
+ <cd:define name="string-false">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:false"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * IDENTIFIER -->
+
+ <cd:define name="string-name">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * TEXT -->
+
+ <cd:define name="string-text">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * CHARACTER -->
+
+ <cd:define name="string-character">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:character"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * NUMBER -->
+
+ <cd:define name="string-number">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <cd:define name="string-number-optional">
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * CONTENT -->
+
+ <cd:define name="string-content">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:content"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * COMMAND -->
+
+ <cd:define name="string-command">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * FILE -->
+
+ <cd:define name="string-file">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * FONT -->
+
+ <cd:define name="string-font">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * DIMENSION -->
+
+ <cd:define name="string-dimension">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * BOX -->
+
+ <cd:define name="string-box">
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:csname"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:define>
+
+ <!-- * -->
+ <!-- \... ... -->
+ <!-- -->
+ <!-- * BOXOPTIONS -->
+
+ <cd:define name="string-boxoptions">
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:define>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-common-value.xml b/tex/context/interface/mkiv/i-common-value.xml
new file mode 100644
index 000000000..f111292b8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-common-value.xml
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!-- style = ... -->
+
+ <cd:define name="value-style">
+ <cd:constant type="cd:style"/>
+ <cd:constant type="cd:command"/>
+ </cd:define>
+
+ <!-- mathstyle = ... -->
+
+ <cd:define name="value-mathstyle">
+ <cd:constant type="display"/>
+ <cd:constant type="text"/>
+ <cd:constant type="script"/>
+ <cd:constant type="scriptscript"/>
+ <cd:constant type="cramped"/>
+ <cd:constant type="uncramped"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="small"/>
+ <cd:constant type="big"/>
+ </cd:define>
+
+ <!-- leftmargin = ... -->
+
+ <cd:define name="value-leftskip">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:define>
+
+ <!-- rightmargin = ... -->
+
+ <cd:define name="value-rightskip">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:define>
+
+ <!-- indentnext = ... -->
+
+ <cd:define name="value-indentnext">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ </cd:define>
+
+ <!-- limittext = ... -->
+
+ <cd:define name="value-limittext">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:text"/>
+ </cd:define>
+
+ <!-- prefixsegments = ... -->
+
+ <cd:define name="value-prefixsegments">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="cd:number" method="range"/>
+ <cd:constant type="*" prefix="cd:number" method="range"/>
+ <cd:constant type="all" prefix="cd:number" method="range"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:section" prefix="cd:section" method="range"/>
+ <cd:constant type="*" prefix="cd:section" method="range"/>
+ <cd:constant type="all" prefix="cd:section" method="range"/>
+ </cd:define>
+
+ <!-- numbersegments = ... -->
+
+ <cd:define name="value-numbersegments">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="cd:number" method="range"/>
+ <cd:constant type="*" prefix="cd:number" method="range"/>
+ <cd:constant type="all" prefix="cd:number" method="range"/>
+ </cd:define>
+
+ <!-- starter = ... -->
+
+ <cd:define name="value-starter">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:command" prefix="cd:processor" method="apply"/>
+ </cd:define>
+
+ <!-- stopper = ... -->
+
+ <cd:define name="value-stopper">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:command" prefix="cd:processor" method="apply"/>
+ </cd:define>
+
+ <!-- connector = ... -->
+
+ <cd:define name="value-connector">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:command" prefix="cd:processor" method="apply"/>
+ </cd:define>
+
+ <!-- textstate = ... -->
+
+ <cd:define name="value-textstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="nomarking"/>
+ <cd:constant type="cd:name"/>
+ </cd:define>
+
+ <!-- pagebreak = ... -->
+
+ <cd:define name="value-pagebreak">
+ <cd:constant type="empty"/>
+ <cd:constant type="header"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="dummy"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="+" method="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="makeup"/>
+ <cd:constant type="blank"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="bigpreference"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="even"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="quadruple"/>
+ <cd:constant type="last"/>
+ <cd:constant type="lastpage"/>
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:define>
+
+ <!-- columnbreak = ... -->
+
+ <cd:define name="value-columnbreak">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="preference"/>
+ <cd:constant type="local"/>
+ <cd:constant type="force"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="cd:number"/>
+ </cd:define>
+
+ <!-- alignline = ... -->
+
+ <cd:define name="value-alignline">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="center"/>
+ <cd:constant type="max"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="backspace"/>
+ <cd:constant type="cutspace"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="leftedge"/>
+ <cd:constant type="rightedge"/>
+ </cd:define>
+
+ <!-- alignsimple = ... -->
+
+ <cd:define name="value-alignsimple">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ </cd:define>
+
+ <!-- aligned = ... -->
+
+ <cd:define name="value-aligned">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="line"/>
+ <cd:constant type="l"/>
+ <cd:constant type="c"/>
+ <cd:constant type="r"/>
+ <cd:constant type="m"/>
+ <cd:constant type="t"/>
+ <cd:constant type="b"/>
+ <cd:constant type="g"/>
+ </cd:define>
+
+ <!-- floatlocation = ... -->
+
+ <cd:define name="value-floatlocation">
+ <cd:constant type="split"/>
+ <cd:constant type="always"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="backspace"/>
+ <cd:constant type="cutspace"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="leftedge"/>
+ <cd:constant type="rightedge"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="inneredge"/>
+ <cd:constant type="outeredge"/>
+ <cd:constant type="text"/>
+ <cd:constant type="opposite"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="line" prefix="cd:sign" method="none"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="none"/>
+ <cd:constant type="local"/>
+ <cd:constant type="here"/>
+ <cd:constant type="force"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="hang" prefix="cd:sign" method="none"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="tall"/>
+ <cd:constant type="both"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="offset"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="page"/>
+ <cd:constant type="leftpage"/>
+ <cd:constant type="rightpage"/>
+ <cd:constant type="somewhere"/>
+ </cd:define>
+
+ <!-- sortorder = ... -->
+
+ <cd:define name="value-sortorder">
+ <cd:constant type="default"/>
+ <cd:constant type="DIN␣5007-1"/>
+ <cd:constant type="DIN␣5007-2"/>
+ <cd:constant type="Duden"/>
+ <cd:constant type="de-DE"/>
+ <cd:constant type="de-CH"/>
+ <cd:constant type="de-AT"/>
+ <cd:constant type="ru-iso9"/>
+ <cd:constant type="ocs-scn"/>
+ <cd:constant type="cd:language"/>
+ </cd:define>
+
+ <!-- sortmethod = ... -->
+
+ <cd:define name="value-sortmethod">
+ <cd:constant type="default"/>
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="ch"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="zm"/>
+ <cd:constant type="pm"/>
+ <cd:constant type="mc"/>
+ <cd:constant type="zc"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="uc"/>
+ </cd:define>
+
+ <!-- referenceprefix = ... -->
+
+ <cd:define name="value-referenceprefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:define>
+
+ <!-- referencetype = ... -->
+
+ <cd:define name="value-referencetype">
+ <cd:constant type="default"/>
+ <cd:constant type="text"/>
+ <cd:constant type="title"/>
+ <cd:constant type="number"/>
+ <cd:constant type="page"/>
+ <cd:constant type="realpage"/>
+ </cd:define>
+
+ <!-- markposition = ... -->
+
+ <cd:define name="value-markposition">
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="next"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="default"/>
+ <cd:constant type="both"/>
+ <cd:constant type="all"/>
+ <cd:constant type="nocheck" prefix="first" method="range"/>
+ <cd:constant type="nocheck" prefix="last" method="range"/>
+ <cd:constant type="nocheck" prefix="previous" method="range"/>
+ <cd:constant type="nocheck" prefix="next" method="range"/>
+ <cd:constant type="nocheck" prefix="top" method="range"/>
+ <cd:constant type="nocheck" prefix="bottom" method="range"/>
+ </cd:define>
+
+ <!-- strut = ... -->
+
+ <cd:define name="value-strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="cap"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="line"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:character"/>
+ </cd:define>
+
+ <!-- grid = ... -->
+
+ <cd:define name="value-grid">
+ <cd:constant type="normal"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="both"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="high"/>
+ <cd:constant type="one"/>
+ <cd:constant type="low"/>
+ <cd:constant type="none"/>
+ <cd:constant type="line"/>
+ <cd:constant type="strut"/>
+ <cd:constant type="box"/>
+ <cd:constant type="min"/>
+ <cd:constant type="max"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="cd:name"/>
+ </cd:define>
+
+ <!-- papersize = ... -->
+
+ <cd:define name="value-papersize">
+ <cd:constant type="A0"/>
+ <cd:constant type="A1"/>
+ <cd:constant type="A2"/>
+ <cd:constant type="A3"/>
+ <cd:constant type="A4"/>
+ <cd:constant type="A5"/>
+ <cd:constant type="A6"/>
+ <cd:constant type="A7"/>
+ <cd:constant type="A8"/>
+ <cd:constant type="A9"/>
+ <cd:constant type="A10"/>
+ <cd:constant type="A4/2"/>
+ <cd:constant type="B0"/>
+ <cd:constant type="B1"/>
+ <cd:constant type="B2"/>
+ <cd:constant type="B3"/>
+ <cd:constant type="B4"/>
+ <cd:constant type="B5"/>
+ <cd:constant type="B6"/>
+ <cd:constant type="B7"/>
+ <cd:constant type="B8"/>
+ <cd:constant type="B9"/>
+ <cd:constant type="B10"/>
+ <cd:constant type="C0"/>
+ <cd:constant type="C1"/>
+ <cd:constant type="C2"/>
+ <cd:constant type="C3"/>
+ <cd:constant type="C4"/>
+ <cd:constant type="C5"/>
+ <cd:constant type="C6"/>
+ <cd:constant type="C7"/>
+ <cd:constant type="C8"/>
+ <cd:constant type="C9"/>
+ <cd:constant type="C10"/>
+ <cd:constant type="4␣A0"/>
+ <cd:constant type="2␣A0"/>
+ <cd:constant type="C6/C5"/>
+ <cd:constant type="S3"/>
+ <cd:constant type="S4"/>
+ <cd:constant type="S5"/>
+ <cd:constant type="S6"/>
+ <cd:constant type="S8"/>
+ <cd:constant type="SL"/>
+ <cd:constant type="SM"/>
+ <cd:constant type="SW"/>
+ <cd:constant type="HD"/>
+ <cd:constant type="HD+"/>
+ <cd:constant type="HD-"/>
+ <cd:constant type="S33"/>
+ <cd:constant type="S44"/>
+ <cd:constant type="S55"/>
+ <cd:constant type="S66"/>
+ <cd:constant type="CD"/>
+ <cd:constant type="letter"/>
+ <cd:constant type="ledger"/>
+ <cd:constant type="tabloid"/>
+ <cd:constant type="legal"/>
+ <cd:constant type="folio"/>
+ <cd:constant type="executive"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ <cd:constant type="C"/>
+ <cd:constant type="envelope␣9"/>
+ <cd:constant type="envelope␣10"/>
+ <cd:constant type="envelope␣11"/>
+ <cd:constant type="envelope␣12"/>
+ <cd:constant type="envelope␣14"/>
+ <cd:constant type="monarch"/>
+ <cd:constant type="check"/>
+ <cd:constant type="DL"/>
+ <cd:constant type="E4"/>
+ <cd:constant type="RA0"/>
+ <cd:constant type="RA1"/>
+ <cd:constant type="RA2"/>
+ <cd:constant type="RA3"/>
+ <cd:constant type="RA4"/>
+ <cd:constant type="SRA0"/>
+ <cd:constant type="SRA1"/>
+ <cd:constant type="SRA2"/>
+ <cd:constant type="SRA3"/>
+ <cd:constant type="SRA4"/>
+ <cd:constant type="G5"/>
+ <cd:constant type="E5"/>
+ <cd:constant type="A3plus"/>
+ <cd:constant type="business"/>
+ <cd:constant type="businessUS"/>
+ <cd:constant type="oversized"/>
+ <cd:constant type="undersized"/>
+ <cd:constant type="doublesized"/>
+ <cd:constant type="doubleoversized"/>
+ <cd:constant type="doublewide"/>
+ </cd:define>
+
+ <!-- btxalternative = ... -->
+
+ <cd:define name="value-btxalternative">
+ <cd:constant type="default"/>
+ <cd:constant type="category"/>
+ <cd:constant type="entry"/>
+ <cd:constant type="short"/>
+ <cd:constant type="page"/>
+ <cd:constant type="num"/>
+ <cd:constant type="textnum"/>
+ <cd:constant type="year"/>
+ <cd:constant type="index"/>
+ <cd:constant type="tag"/>
+ <cd:constant type="keywords"/>
+ <cd:constant type="author"/>
+ <cd:constant type="authoryears"/>
+ <cd:constant type="authornum"/>
+ <cd:constant type="authoryear"/>
+ </cd:define>
+
+ <!-- btxfield = ... -->
+
+ <cd:define name="value-btxfield">
+ <cd:constant type="address"/>
+ <cd:constant type="assignee"/>
+ <cd:constant type="author"/>
+ <cd:constant type="booktitle"/>
+ <cd:constant type="chapter"/>
+ <cd:constant type="day"/>
+ <cd:constant type="dayfiled"/>
+ <cd:constant type="edition"/>
+ <cd:constant type="editor"/>
+ <cd:constant type="howpublished"/>
+ <cd:constant type="institution"/>
+ <cd:constant type="journal"/>
+ <cd:constant type="language"/>
+ <cd:constant type="month"/>
+ <cd:constant type="monthfiled"/>
+ <cd:constant type="nationality"/>
+ <cd:constant type="note"/>
+ <cd:constant type="number"/>
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="organization"/>
+ <cd:constant type="pages"/>
+ <cd:constant type="publisher"/>
+ <cd:constant type="school"/>
+ <cd:constant type="series"/>
+ <cd:constant type="title"/>
+ <cd:constant type="type"/>
+ <cd:constant type="volume"/>
+ <cd:constant type="year"/>
+ <cd:constant type="yearfiled"/>
+ <cd:constant type="cd:name"/>
+ </cd:define>
+
+ <!-- btxauthor = ... -->
+
+ <cd:define name="value-btxauthor">
+ <cd:constant type="author"/>
+ <cd:constant type="editor"/>
+ </cd:define>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-context.pdf b/tex/context/interface/mkiv/i-context.pdf
index 25ceec4f1..645256f15 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-context.xml b/tex/context/interface/mkiv/i-context.xml
new file mode 100644
index 000000000..f1e85658f
--- /dev/null
+++ b/tex/context/interface/mkiv/i-context.xml
@@ -0,0 +1,234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<!--
+
+ Right from the start the ConTeXt user interface was sytematic enough to be described using a
+ common framework. First it was done in the TeX language at the top of the files where features
+ were implemented. Later we switched to XML where all definitions were moved to one file. That
+ file could be translated to different user interfaces.
+
+ The current XML files are a follow up on this. Instead of one big file we now have many small
+ files, and support for shared (XML) definitions has been extended. Many more commands are defined,
+ including those considered low level. There are no longer translated files needed but you can
+ still generate them.
+
+ These files can be used to generate overviews (see x-setups-*.mkiv) but also for generating
+ information for text editors. We also use them for the (local) help service.
+
+ Wolfgang Schuster & Hans Hagen
+
+-->
+
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:interfacefile filename="i-common-definitions.xml"/>
+
+ <cd:interfacefile filename="i-accent.xml"/>
+ <cd:interfacefile filename="i-align.xml"/>
+ <cd:interfacefile filename="i-anchor.xml"/>
+ <cd:interfacefile filename="i-attachment.xml"/>
+ <cd:interfacefile filename="i-attribute.xml"/>
+ <cd:interfacefile filename="i-backend.xml"/>
+ <cd:interfacefile filename="i-background.xml"/>
+ <cd:interfacefile filename="i-bar.xml"/>
+ <cd:interfacefile filename="i-blackrule.xml"/>
+ <cd:interfacefile filename="i-bleed.xml"/>
+ <cd:interfacefile filename="i-block.xml"/>
+ <cd:interfacefile filename="i-bookmark.xml"/>
+ <cd:interfacefile filename="i-boxes.xml"/>
+ <cd:interfacefile filename="i-buffer.xml"/>
+ <cd:interfacefile filename="i-button.xml"/>
+ <cd:interfacefile filename="i-capitals.xml"/>
+ <cd:interfacefile filename="i-catcodes.xml"/>
+ <cd:interfacefile filename="i-character.xml"/>
+ <cd:interfacefile filename="i-characteralign.xml"/>
+ <cd:interfacefile filename="i-characterspacing.xml"/>
+ <cd:interfacefile filename="i-characterstripping.xml"/>
+ <cd:interfacefile filename="i-charwidth.xml"/>
+ <cd:interfacefile filename="i-chemical.xml"/>
+ <cd:interfacefile filename="i-cleaning.xml"/>
+ <cd:interfacefile filename="i-clipping.xml"/>
+ <cd:interfacefile filename="i-collector.xml"/>
+ <cd:interfacefile filename="i-color.xml"/>
+ <cd:interfacefile filename="i-columns.xml"/>
+ <cd:interfacefile filename="i-combination.xml"/>
+ <cd:interfacefile filename="i-commandhandler.xml"/>
+ <cd:interfacefile filename="i-comment.xml"/>
+ <cd:interfacefile filename="i-conversion.xml"/>
+ <cd:interfacefile filename="i-counter.xml"/>
+ <cd:interfacefile filename="i-dataset.xml"/>
+ <cd:interfacefile filename="i-define.xml"/>
+ <cd:interfacefile filename="i-delimitedtext.xml"/>
+ <cd:interfacefile filename="i-description.xml"/>
+ <cd:interfacefile filename="i-digits.xml"/>
+ <cd:interfacefile filename="i-dimension.xml"/>
+ <cd:interfacefile filename="i-direction.xml"/>
+ <cd:interfacefile filename="i-document.xml"/>
+ <cd:interfacefile filename="i-dummy.xml"/>
+ <cd:interfacefile filename="i-effect.xml"/>
+ <cd:interfacefile filename="i-enumeration.xml"/>
+ <cd:interfacefile filename="i-export.xml"/>
+ <cd:interfacefile filename="i-field.xml"/>
+ <cd:interfacefile filename="i-figure.xml"/>
+ <cd:interfacefile filename="i-file.xml"/>
+ <cd:interfacefile filename="i-filler.xml"/>
+ <cd:interfacefile filename="i-fillinline.xml"/>
+ <cd:interfacefile filename="i-fillinrule.xml"/>
+ <cd:interfacefile filename="i-firstline.xml"/>
+ <cd:interfacefile filename="i-fittingpage.xml"/>
+ <cd:interfacefile filename="i-floats.xml"/>
+ <cd:interfacefile filename="i-fontfamily.xml"/>
+ <cd:interfacefile filename="i-fonts.xml"/>
+ <cd:interfacefile filename="i-form.xml"/>
+ <cd:interfacefile filename="i-formula.xml"/>
+ <cd:interfacefile filename="i-fraction.xml"/>
+ <cd:interfacefile filename="i-framed.xml"/>
+ <cd:interfacefile filename="i-graphics.xml"/>
+ <cd:interfacefile filename="i-grid.xml"/>
+ <cd:interfacefile filename="i-help.xml"/>
+ <cd:interfacefile filename="i-highlight.xml"/>
+ <cd:interfacefile filename="i-hspace.xml"/>
+ <cd:interfacefile filename="i-hyphenation.xml"/>
+ <cd:interfacefile filename="i-imposition.xml"/>
+ <cd:interfacefile filename="i-indent.xml"/>
+ <cd:interfacefile filename="i-indentedtext.xml"/>
+ <cd:interfacefile filename="i-initial.xml"/>
+ <cd:interfacefile filename="i-injector.xml"/>
+ <cd:interfacefile filename="i-insertion.xml"/>
+ <cd:interfacefile filename="i-interaction.xml"/>
+ <cd:interfacefile filename="i-interactionbar.xml"/>
+ <cd:interfacefile filename="i-interactionmenu.xml"/>
+ <cd:interfacefile filename="i-interactionscreen.xml"/>
+ <cd:interfacefile filename="i-interface.xml"/>
+ <cd:interfacefile filename="i-interlinespace.xml"/>
+ <cd:interfacefile filename="i-interlinespace.xml"/>
+ <cd:interfacefile filename="i-italiccorrection.xml"/>
+ <cd:interfacefile filename="i-itemgroup.xml"/>
+ <cd:interfacefile filename="i-items.xml"/>
+ <cd:interfacefile filename="i-javascript.xml"/>
+ <cd:interfacefile filename="i-kerning.xml"/>
+ <cd:interfacefile filename="i-label.xml"/>
+ <cd:interfacefile filename="i-labeltext.xml"/>
+ <cd:interfacefile filename="i-language.xml"/>
+ <cd:interfacefile filename="i-layer.xml"/>
+ <cd:interfacefile filename="i-layout.xml"/>
+ <cd:interfacefile filename="i-linenumber.xml"/>
+ <cd:interfacefile filename="i-lines.xml"/>
+ <cd:interfacefile filename="i-linetable.xml"/>
+ <cd:interfacefile filename="i-linewidth.xml"/>
+ <cd:interfacefile filename="i-list.xml"/>
+ <cd:interfacefile filename="i-logo.xml"/>
+ <cd:interfacefile filename="i-lohi.xml"/>
+ <cd:interfacefile filename="i-lua.xml"/>
+ <cd:interfacefile filename="i-makeup.xml"/>
+ <cd:interfacefile filename="i-marginblock.xml"/>
+ <cd:interfacefile filename="i-margindata.xml"/>
+ <cd:interfacefile filename="i-marker.xml"/>
+ <cd:interfacefile filename="i-marking.xml"/>
+ <cd:interfacefile filename="i-math.xml"/>
+ <cd:interfacefile filename="i-mathalignment.xml"/>
+ <cd:interfacefile filename="i-mathcases.xml"/>
+ <cd:interfacefile filename="i-mathfence.xml"/>
+ <cd:interfacefile filename="i-mathmatrix.xml"/>
+ <cd:interfacefile filename="i-mathornament.xml"/>
+ <cd:interfacefile filename="i-mathradical.xml"/>
+ <cd:interfacefile filename="i-mathstackers.xml"/>
+ <cd:interfacefile filename="i-metapost.xml"/>
+ <cd:interfacefile filename="i-mixedcolumns.xml"/>
+ <cd:interfacefile filename="i-modes.xml"/>
+ <cd:interfacefile filename="i-modules.xml"/>
+ <cd:interfacefile filename="i-narrow.xml"/>
+ <cd:interfacefile filename="i-naturaltable.xml"/>
+ <cd:interfacefile filename="i-note.xml"/>
+ <cd:interfacefile filename="i-object.xml"/>
+ <cd:interfacefile filename="i-offset.xml"/>
+ <cd:interfacefile filename="i-opposite.xml"/>
+ <cd:interfacefile filename="i-ornament.xml"/>
+ <cd:interfacefile filename="i-output.xml"/>
+ <cd:interfacefile filename="i-overlay.xml"/>
+ <cd:interfacefile filename="i-pagebreak.xml"/>
+ <cd:interfacefile filename="i-pagecomment.xml"/>
+ <cd:interfacefile filename="i-pagefigure.xml"/>
+ <cd:interfacefile filename="i-pagegrid.xml"/>
+ <cd:interfacefile filename="i-pageinjection.xml"/>
+ <cd:interfacefile filename="i-pagelayout.xml"/>
+ <cd:interfacefile filename="i-pagenumber.xml"/>
+ <cd:interfacefile filename="i-pageselection.xml"/>
+ <cd:interfacefile filename="i-pageshift.xml"/>
+ <cd:interfacefile filename="i-pagestate.xml"/>
+ <cd:interfacefile filename="i-pairedbox.xml"/>
+ <cd:interfacefile filename="i-papersize.xml"/>
+ <cd:interfacefile filename="i-paragraph.xml"/>
+ <cd:interfacefile filename="i-paragraphnumber.xml"/>
+ <cd:interfacefile filename="i-paragraphs.xml"/>
+ <cd:interfacefile filename="i-parallel.xml"/>
+ <cd:interfacefile filename="i-parbuilder.xml"/>
+ <cd:interfacefile filename="i-pdf.xml"/>
+ <cd:interfacefile filename="i-penalty.xml"/>
+ <cd:interfacefile filename="i-periods.xml"/>
+ <cd:interfacefile filename="i-phantom.xml"/>
+ <cd:interfacefile filename="i-placement.xml"/>
+ <cd:interfacefile filename="i-position.xml"/>
+ <cd:interfacefile filename="i-positionbar.xml"/>
+ <cd:interfacefile filename="i-positioning.xml"/>
+ <cd:interfacefile filename="i-postponing.xml"/>
+ <cd:interfacefile filename="i-processor.xml"/>
+ <cd:interfacefile filename="i-profile.xml"/>
+ <cd:interfacefile filename="i-publication.xml"/>
+ <cd:interfacefile filename="i-random.xml"/>
+ <cd:interfacefile filename="i-references.xml"/>
+ <cd:interfacefile filename="i-regime.xml"/>
+ <cd:interfacefile filename="i-register.xml"/>
+ <cd:interfacefile filename="i-renderingwindow.xml"/>
+ <cd:interfacefile filename="i-replacement.xml"/>
+ <cd:interfacefile filename="i-rotatation.xml"/>
+ <cd:interfacefile filename="i-scale.xml"/>
+ <cd:interfacefile filename="i-script.xml"/>
+ <cd:interfacefile filename="i-section.xml"/>
+ <cd:interfacefile filename="i-sectionblock.xml"/>
+ <cd:interfacefile filename="i-selector.xml"/>
+ <cd:interfacefile filename="i-setups.xml"/>
+ <cd:interfacefile filename="i-shift.xml"/>
+ <cd:interfacefile filename="i-sidebar.xml"/>
+ <cd:interfacefile filename="i-smash.xml"/>
+ <cd:interfacefile filename="i-sort.xml"/>
+ <cd:interfacefile filename="i-soundtrack.xml"/>
+ <cd:interfacefile filename="i-spellchecking.xml"/>
+ <cd:interfacefile filename="i-startstop.xml"/>
+ <cd:interfacefile filename="i-stream.xml"/>
+ <cd:interfacefile filename="i-string.xml"/>
+ <cd:interfacefile filename="i-strut.xml"/>
+ <cd:interfacefile filename="i-symbol.xml"/>
+ <cd:interfacefile filename="i-synonym.xml"/>
+ <cd:interfacefile filename="i-system.xml"/>
+ <cd:interfacefile filename="i-systemlog.xml"/>
+ <cd:interfacefile filename="i-table.xml"/>
+ <cd:interfacefile filename="i-tabulation.xml"/>
+ <cd:interfacefile filename="i-tagging.xml"/>
+ <cd:interfacefile filename="i-textbackground.xml"/>
+ <cd:interfacefile filename="i-textflow.xml"/>
+ <cd:interfacefile filename="i-textrule.xml"/>
+ <cd:interfacefile filename="i-texts.xml"/>
+ <cd:interfacefile filename="i-thinrule.xml"/>
+ <cd:interfacefile filename="i-token.xml"/>
+ <cd:interfacefile filename="i-tolerance.xml"/>
+ <cd:interfacefile filename="i-tooltip.xml"/>
+ <cd:interfacefile filename="i-tracker.xml"/>
+ <cd:interfacefile filename="i-translation.xml"/>
+ <cd:interfacefile filename="i-twopassdata.xml"/>
+ <cd:interfacefile filename="i-typography.xml"/>
+ <cd:interfacefile filename="i-unit.xml"/>
+ <cd:interfacefile filename="i-variables.xml"/>
+ <cd:interfacefile filename="i-verbatim.xml"/>
+ <cd:interfacefile filename="i-version.xml"/>
+ <cd:interfacefile filename="i-viewerlayer.xml"/>
+ <cd:interfacefile filename="i-visualizer.xml"/>
+ <cd:interfacefile filename="i-vspace.xml"/>
+ <cd:interfacefile filename="i-whitespace.xml"/>
+ <cd:interfacefile filename="i-xml.xml"/>
+ <cd:interfacefile filename="i-xtable.xml"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-conversion.xml b/tex/context/interface/mkiv/i-conversion.xml
new file mode 100644
index 000000000..b4755c27c
--- /dev/null
+++ b/tex/context/interface/mkiv/i-conversion.xml
@@ -0,0 +1,632 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="numbers" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Numbers" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="romannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Romannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="abjadnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="abjadnodotnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="abjadnaivenumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="languagecharacters" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="languageCharacters" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alphabeticnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Alphabeticnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thainumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="devanagarinumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gurmurkhinumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gujaratinumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tibetannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="greeknumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Greeknumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="arabicnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="persiannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="arabicdecimals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="persiandecimals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="arabicexnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="koreannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="koreannumeralsp" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="koreannumeralsc" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="koreanparentnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="koreancirclenumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chinesenumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chinesecapnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chineseallnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="character" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Character" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="characters" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Characters" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="monthlong" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="monthshort" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertmonth" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="month" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTH" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTHLONG" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MONTHSHORT" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="weekday" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WEEKDAY" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dayoftheweek" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdayoftheweek" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseleapyear" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifleapyearelse" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dayspermonth" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdayspermonth" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentdate" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="yes"/>
+ <cd:constant type="moth"/>
+ <cd:constant type="day"/>
+ <cd:constant type="weekday"/>
+ <cd:constant type="y"/>
+ <cd:constant type="yy"/>
+ <cd:constant type="Y"/>
+ <cd:constant type="m"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="M"/>
+ <cd:constant type="d"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="D"/>
+ <cd:constant type="w"/>
+ <cd:constant type="W"/>
+ <cd:constant type="space"/>
+ <cd:constant type="\␣"/>
+ <cd:constant type="month:mnem"/>
+ <cd:constant type="m:mnem"/>
+ <cd:constant type="d:ord"/>
+ <cd:constant type="day:ord"/>
+ <cd:constant type="dd:ord"/>
+ <cd:constant type="D:ord"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="date" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="d">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="currentdate"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawdate" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="currentdate"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currenttime" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="h"/>
+ <cd:constant type="m"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processmonth" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processyear" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" variant="1" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-csname"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineconversion" variant="2" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertnumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="empty"/>
+ <cd:constant type="default"/>
+ <cd:constant type="none"/>
+ <cd:constant type="month"/>
+ <cd:constant type="month:mnem"/>
+ <cd:constant type="character"/>
+ <cd:constant type="Character"/>
+ <cd:constant type="characters"/>
+ <cd:constant type="Characters"/>
+ <cd:constant type="a"/>
+ <cd:constant type="A"/>
+ <cd:constant type="Numbers"/>
+ <cd:constant type="word"/>
+ <cd:constant type="words"/>
+ <cd:constant type="Word"/>
+ <cd:constant type="Words"/>
+ <cd:constant type="n"/>
+ <cd:constant type="N"/>
+ <!-- oldstylenumerals
+ <cd:constant type="o"/>
+ <cd:constant type="O"/>
+ -->
+ <cd:constant type="romannumerals"/>
+ <cd:constant type="Romannumerals"/>
+ <cd:constant type="i"/>
+ <cd:constant type="I"/>
+ <cd:constant type="r"/>
+ <cd:constant type="R"/>
+ <cd:constant type="KR"/>
+ <cd:constant type="RK"/>
+ <cd:constant type="greek"/>
+ <cd:constant type="Greek"/>
+ <cd:constant type="g"/>
+ <cd:constant type="G"/>
+ <cd:constant type="abjadnumerals"/>
+ <cd:constant type="abjadnodotnumerals"/>
+ <cd:constant type="abjadnaivenumerals"/>
+ <cd:constant type="thainumerals"/>
+ <cd:constant type="devanagarinumerals"/>
+ <cd:constant type="gurmurkhinumerals"/>
+ <cd:constant type="gujaratinnumerals"/>
+ <cd:constant type="tibetannumerals"/>
+ <cd:constant type="greeknumerals"/>
+ <cd:constant type="Greeknumerals"/>
+ <cd:constant type="arabicnumerals"/>
+ <cd:constant type="persiannumerals"/>
+ <cd:constant type="arabicexnumerals"/>
+ <cd:constant type="arabicdecimals"/>
+ <cd:constant type="persiandecimals"/>
+ <cd:constant type="koreannumerals"/>
+ <cd:constant type="koreanparentnumerals"/>
+ <cd:constant type="koreancirclenumerals"/>
+ <cd:constant type="kr"/>
+ <cd:constant type="kr-p"/>
+ <cd:constant type="kr-c"/>
+ <cd:constant type="chinesenumerals"/>
+ <cd:constant type="chinesecapnumerals"/>
+ <cd:constant type="chineseallnumerals"/>
+ <cd:constant type="cn"/>
+ <cd:constant type="cn-c"/>
+ <cd:constant type="cn-a"/>
+ <cd:constant type="sloveniannumerals"/>
+ <cd:constant type="slovenianNumerals"/>
+ <cd:constant type="spanishnumerals"/>
+ <cd:constant type="spanishNumerals"/>
+ <cd:constant type="mathgreek"/>
+ <cd:constant type="set␣0"/>
+ <cd:constant type="set␣1"/>
+ <cd:constant type="set␣2"/>
+ <cd:constant type="set␣3"/>
+ <cd:constant type="continued"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uconvertnumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:inherit name="convertnumber"/>
+ </cd:keywords>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseconversiondefined" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifconversiondefinedelse" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseconversionnumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifconversionnumberelse" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="wordtonumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="three"/>
+ <cd:constant type="four"/>
+ <cd:constant type="five"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="highordinalstr" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ordinalstr" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ordinaldaynumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="verbosenumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VerboseNumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smallcappedromannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smallcappedcharacters" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sloveniannumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="slovenianNumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="spanishnumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="spanishNumerals" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unihex" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="continuednumber" file="core-con.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-counter.xml b/tex/context/interface/mkiv/i-counter.xml
new file mode 100644
index 000000000..7701d40cd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-counter.xml
@@ -0,0 +1,517 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <!--
+ <cd:parameter name="name">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="counter">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="way">
+ <cd:constant type="page" prefix="by" method="none"/>
+ <cd:constant type="block" prefix="by" method="none"/>
+ <cd:constant type="text" prefix="by" method="none"/>
+ <cd:constant type="head" prefix="by" method="none"/>
+ <cd:constant type="cd:section" prefix="by" method="none"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefixseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="prefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="numberorder">
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:parameter name="numberseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="numberstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="numbersegments">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="first"/>
+ <cd:constant type="previous"/>
+ <!--
+ <cd:constant type="prev"/>
+ -->
+ <cd:constant type="next"/>
+ <cd:constant type="last"/>
+ <cd:constant type="number" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="strict"/>
+ <cd:constant type="positive"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconnector">
+ <cd:resolve name="value-connector"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcounterelse" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcounterown" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="restartcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="incrementcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decrementcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lastcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nextcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prevcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="countersubs" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savecounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="restorecounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="incrementedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decrementedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lastcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nextcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prevcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawsubcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lastsubcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstsubcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nextsubcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prevsubcountervalue" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertedsubcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directconvertedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="first"/>
+ <cd:constant type="previous"/>
+ <!--
+ <cd:constant type="prev"/>
+ -->
+ <cd:constant type="next"/>
+ <cd:constant type="last"/>
+ <cd:constant type="number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedefinedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdefinedcounterelse" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdefinedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifundefinedcounter" file="strc-num.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineresetset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-number-list"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="definestructureresetset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-number-list"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="defineseparatorset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-connector"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-connector"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="definestructureseparatorset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-connector"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-connector"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="defineconversionset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="definestructureconversionset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="defineprefixset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-section-list"/>
+ <cd:resolve name="keyword-section-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="definestructureprefixset" file="strc-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:name" prefix="cd:sectionblock" method="range"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-section-list"/>
+ <cd:resolve name="keyword-section-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-dataset.xml b/tex/context/interface/mkiv/i-dataset.xml
new file mode 100644
index 000000000..914fe0af1
--- /dev/null
+++ b/tex/context/interface/mkiv/i-dataset.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definedataset" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupdataset"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupdataset" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional-list"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="delay">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdataset" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="datasetvariable" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:key"/>
+ <cd:constant type="realpage"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-define.xml b/tex/context/interface/mkiv/i-define.xml
new file mode 100644
index 000000000..0d0398e5d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-define.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="define" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineexpandable" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-delimitedtext.xml b/tex/context/interface/mkiv/i-delimitedtext.xml
new file mode 100644
index 000000000..24fa581fd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-delimitedtext.xml
@@ -0,0 +1,217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definedelimitedtext" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupdelimitedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupdelimitedtext" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:language"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="font"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="text"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="margin" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nextleft">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="nextright">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:resolve name="value-rightskip"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="symstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="symcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimitedtext" generated="yes" variant="generated" file="typo-del.mkiv">
+ <cd:sequence>
+ <cd:variable value="delimitedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimitedtext" type="environment" generated="yes" variant="generated" file="typo-del.mkiv">
+ <cd:sequence>
+ <cd:variable value="delimitedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimitedtext" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimitedtext" type="environment" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimited" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="delimited" type="environment" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quotation" type="environment" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quote" type="environment" file="typo-del.mkiv"/>
+
+ <cd:command name="blockquote" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blockquote" type="environment" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="speech" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="speech" type="environment" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="startnarrower"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquotation" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupdelimitedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupquote" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupdelimitedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsentence" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsentence" type="environment" file="typo-del.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-description.xml b/tex/context/interface/mkiv/i-description.xml
new file mode 100644
index 000000000..0204b3466
--- /dev/null
+++ b/tex/context/interface/mkiv/i-description.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definedescription" file="strc-des.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupdescription"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupdescription" file="strc-des.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <!-- begin construction values -->
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="top"/>
+ <cd:constant type="command"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="headalign">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="none"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <!-- end construction values -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupdescriptions" file="strc-des.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupdescription"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="description" type="environment" generated="yes" variant="generated:1" file="strc-des.mkvi">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" type="environment" generated="yes" variant="generated:2" file="strc-des.mkvi">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="description" generated="yes" variant="generated" file="strc-des.mkvi">
+ <cd:sequence>
+ <cd:variable value="description"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="par"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-digits.xml b/tex/context/interface/mkiv/i-digits.xml
new file mode 100644
index 000000000..325febab3
--- /dev/null
+++ b/tex/context/interface/mkiv/i-digits.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setdigitsmanipulation" file="typo-dig.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetdigitsmanipulation" file="typo-dig.mkiv"/>
+
+ <cd:command name="equaldigits" file="typo-dig.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dummydigit" file="typo-dig.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-dimension.xml b/tex/context/interface/mkiv/i-dimension.xml
new file mode 100644
index 000000000..2962a3aef
--- /dev/null
+++ b/tex/context/interface/mkiv/i-dimension.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="assigndimension" file="mult-dim.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="small" prefix="cd:sign" method="none"/>
+ <cd:constant type="medium" prefix="cd:sign" method="none"/>
+ <cd:constant type="big" prefix="cd:sign" method="none"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assignalfadimension" file="mult-dim.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assignwidth" file="mult-dim.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assignvalue" file="mult-dim.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-direction.xml b/tex/context/interface/mkiv/i-direction.xml
new file mode 100644
index 000000000..725e215a3
--- /dev/null
+++ b/tex/context/interface/mkiv/i-direction.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupdirections" file="typo-dir.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="bidi">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="default" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="fences">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdirection" file="typo-dir.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetdirection" file="typo-dir.mkiv"/>
+
+ <!--
+
+ <cd:command name="lefttorightmark" file="typo-dir.mkiv"/>
+
+ <cd:command name="righttoleftmark" file="typo-dir.mkiv"/>
+
+ <cd:command name="lrm" file="typo-dir.mkiv"/>
+
+ <cd:command name="rlm" file="typo-dir.mkiv"/>
+
+ -->
+
+ <cd:command name="showdirsinmargin" file="supp-dir.mkiv"/>
+
+ <cd:command name="istltdir" file="supp-dir.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="TLT"/>
+ <cd:constant type="TRT"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="istrtdir" file="supp-dir.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="TLT"/>
+ <cd:constant type="TRT"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-document.xml b/tex/context/interface/mkiv/i-document.xml
new file mode 100644
index 000000000..a2ed222d0
--- /dev/null
+++ b/tex/context/interface/mkiv/i-document.xml
@@ -0,0 +1,215 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="text" type="environment" file="file-job.mkvi"/>
+
+ <cd:command name="text" type="environment" begin="autostart" end="autostop" file="file-job.mkvi"/>
+
+ <cd:command name="notext" type="environment" file="file-job.mkvi"/>
+
+ <cd:command name="environment" type="environment" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" type="environment" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="environment" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useenvironment" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentenvironment" file="file-job.mkvi"/>
+
+ <cd:command name="project" type="environment" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" type="environment" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="project" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useproject" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentproject" file="file-job.mkvi"/>
+
+ <cd:command name="product" type="environment" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" type="environment" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="product" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useproduct" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentproduct" file="file-job.mkvi"/>
+
+ <cd:command name="component" type="environment" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" type="environment" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:file"/>
+ <cd:constant type="*"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" variant="1" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="component" variant="2" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usecomponent" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentcomponent" file="file-job.mkvi"/>
+
+ <cd:command name="document" type="environment" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupdocument"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupdocument" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="metadata:author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="metadata:title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="metadata:subject">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="metadata:keywords">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetdocument" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupdocument"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="documentvariable" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-dummy.xml b/tex/context/interface/mkiv/i-dummy.xml
new file mode 100644
index 000000000..452ac311e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-dummy.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="getdummyparameters" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dummyparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directdummyparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdummyparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letdummyparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedummystyleandcolor" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedummystyleparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usedummycolorparameter" file="mult-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-effect.xml b/tex/context/interface/mkiv/i-effect.xml
new file mode 100644
index 000000000..c46c689e2
--- /dev/null
+++ b/tex/context/interface/mkiv/i-effect.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineeffect" file="attr-eff.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupeffect"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupeffect" file="attr-eff.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="both"/>
+ <cd:constant type="hidden"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="effect" type="environment" file="attr-eff.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="effect" type="environment" generated="yes" variant="generated" file="attr-eff.mkiv">
+ <cd:sequence>
+ <cd:variable value="effect"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="effect" file="attr-eff.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-enumeration.xml b/tex/context/interface/mkiv/i-enumeration.xml
new file mode 100644
index 000000000..abd1da232
--- /dev/null
+++ b/tex/context/interface/mkiv/i-enumeration.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineenumerations" file="strc-enu.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupenumeration"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenumeration" file="strc-enu.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titledistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titlestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="titlecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="titlecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="starter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="counter">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <!-- begin construction values -->
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="top" default="yes"/>
+ <cd:constant type="command"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="headalign">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="none"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <!-- end construction values -->
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupenumerations" file="strc-enu.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupenumeration"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="enumeration" type="environment" generated="yes" variant="generated:1" file="strc-enu.mkvi">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" type="environment" generated="yes" variant="generated:2" file="strc-enu.mkvi">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enumeration" generated="yes" variant="generated" file="strc-enu.mkvi">
+ <cd:sequence>
+ <cd:variable value="enumeration"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="par"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-export.xml b/tex/context/interface/mkiv/i-export.xml
new file mode 100644
index 000000000..40c73ee51
--- /dev/null
+++ b/tex/context/interface/mkiv/i-export.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setelementexporttag" file="back-exp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="export" default="yes"/>
+ <cd:constant type="nature"/>
+ <cd:constant type="pdf"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="inline"/>
+ <cd:constant type="display"/>
+ <cd:constant type="mixed"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupexport" file="back-exp.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="align">
+ <cd:constant type="flushleft"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitle">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="html"/>
+ <cd:constant type="div"/>
+ </cd:parameter>
+ <cd:parameter name="properties">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="hyphen">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="svgstyle">
+ <cd:constant type=""/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="cssfile">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="firstpage">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="lastpage">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-field.xml b/tex/context/interface/mkiv/i-field.xml
new file mode 100644
index 000000000..67ff40ccf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-field.xml
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="presetfieldsymbols" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldcategory" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldcategory"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfieldcategory" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="radio"/>
+ <cd:constant type="sub"/>
+ <cd:constant type="text"/>
+ <cd:constant type="line"/>
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="signature"/>
+ </cd:parameter>
+ <cd:parameter name="values">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="fieldframecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="fieldbackgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="center"/>
+ <cd:constant type="flushright"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="readonly"/>
+ <cd:constant type="required"/>
+ <cd:constant type="protected"/>
+ <cd:constant type="sorted"/>
+ <cd:constant type="unavailable"/>
+ <cd:constant type="nocheck"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="file"/>
+ <cd:constant type="hidden"/>
+ <cd:constant type="printable"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="clickin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="clickout">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="regionout">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="afterkey">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="format">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="validate">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="calculate">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="focusin">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="focusout">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="openpage">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closepage">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefieldcategory" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffieldcategoryelse" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldbody" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldbody"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfieldbody" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="category">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="setupfieldcategory"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldbody" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldbody"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldbodyset" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefieldbody" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffieldbodyelse" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="radio"/>
+ <cd:constant type="sub"/>
+ <cd:constant type="text"/>
+ <cd:constant type="line"/>
+ <cd:constant type="push"/>
+ <cd:constant type="check"/>
+ <cd:constant type="signature"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesubfield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="clonefield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyfield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfieldframed" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fitfield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldbody"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfieldlabelframed" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfieldcontentframed" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ <cd:inherit name="setupfieldcategory"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfieldtotalframed" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="reset"/>
+ <cd:constant type="label"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfield" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="label"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldtotalframed"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldlabelframed"/>
+ </cd:assignments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfieldcontentframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfields" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="label"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldtotalframed"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldlabelframed"/>
+ </cd:assignments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfieldcontentframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="field" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefieldstack" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldcategory"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fieldstack" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfieldcategory"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-figure.xml b/tex/context/interface/mkiv/i-figure.xml
new file mode 100644
index 000000000..a53678e89
--- /dev/null
+++ b/tex/context/interface/mkiv/i-figure.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="figure" type="environment" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="externalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referring" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:position list="yes"/>
+ <cd:position list="yes"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marking" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:position list="yes"/>
+ <cd:position list="yes"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="remark" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:position list="yes"/>
+ <cd:position list="yes"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="colorbar" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color-list"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-file.xml b/tex/context/interface/mkiv/i-file.xml
new file mode 100644
index 000000000..4805c0faf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-file.xml
@@ -0,0 +1,404 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="input" variant="1" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="input" variant="2" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotfile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffileelse" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="jobfilename" file="core-sys.mkiv"/>
+
+ <cd:command name="jobfilesuffix" file="core-sys.mkiv"/>
+
+ <cd:command name="inputfilebarename" file="core-sys.mkiv"/>
+
+ <cd:command name="inputfilerealsuffix" file="core-sys.mkiv"/>
+
+ <cd:command name="inputfilesuffix" file="core-sys.mkiv"/>
+
+ <cd:command name="inputfilename" file="core-sys.mkiv"/>
+
+ <cd:command name="outputfilename" file="core-sys.mkiv"/>
+
+ <cd:command name="readingfile" type="environment" file="file-ini.mkvi"/>
+
+ <cd:command name="endofline" type="environment" begin="push" end="pop" file="file-ini.mkvi"/>
+
+ <cd:command name="restoreendofline" file="file-ini.mkvi"/>
+
+ <cd:command name="inputgivenfile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepath" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpathelse" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefileexists" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffileexistselse" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepathexists" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpathexistselse" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseparentfile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifparentfileelse" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfilename" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitofffull" file="file-ini.mkvi"/>
+
+ <cd:command name="splitoffpath" file="file-ini.mkvi"/>
+
+ <cd:command name="splitoffbase" file="file-ini.mkvi"/>
+
+ <cd:command name="splitoffname" file="file-ini.mkvi"/>
+
+ <cd:command name="splitofftype" file="file-ini.mkvi"/>
+
+ <cd:command name="splitoffkind" file="file-ini.mkvi"/>
+
+ <cd:command name="splitoffroot" file="file-ini.mkvi"/>
+
+ <cd:command name="doifelseinputfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinputfileelse" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processfile" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usepath" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesubpath" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="path" type="environment" begin="push" end="pop" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetpath" file="file-job.mkvi"/>
+
+ <cd:command name="allinputpaths" file="file-job.mkvi"/>
+
+ <cd:command name="locatefilepath" file="file-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="locatedfilepath" file="file-job.mkvi"/>
+
+ <cd:command name="usezipfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-file-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processfilemany" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processfileonce" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processfilenone" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadtexfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadluafile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadcldfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadanyfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadtexfileonce" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadluafileonce" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadcldfileonce" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadanyfileonce" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="continueifinputfile" file="file-job.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readjobfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readlocfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readsysfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readfixfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readsetfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ReadFile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readtexfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="readxmlfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselocfile" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflocfileelse" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="locfilename" file="file-res.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefilesynonym" file="file-sys.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefilefallback" file="file-sys.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="truefilename" file="file-sys.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-filler.xml b/tex/context/interface/mkiv/i-filler.xml
new file mode 100644
index 000000000..919267b30
--- /dev/null
+++ b/tex/context/interface/mkiv/i-filler.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefiller" file="spac-flr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfiller"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfiller" file="spac-flr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="symbol" default="yes"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="rule"/>
+ <cd:constant type="space"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:resolve name="value-alignsimple"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupfillers" file="spac-flr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfiller"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="filler" file="spac-flr.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="sym"/>
+ <cd:constant type="symbol"/>
+ <cd:constant type="rule"/>
+ <cd:constant type="width"/>
+ <cd:constant type="space"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkedfiller" file="spac-flr.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="sym"/>
+ <cd:constant type="symbol"/>
+ <cd:constant type="rule"/>
+ <cd:constant type="width"/>
+ <cd:constant type="space"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-fillinline.xml b/tex/context/interface/mkiv/i-fillinline.xml
new file mode 100644
index 000000000..dbf9f8627
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fillinline.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupfillinlines" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinline" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfillinlines"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-fillinrule.xml b/tex/context/interface/mkiv/i-fillinrule.xml
new file mode 100644
index 000000000..949b8f6ea
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fillinrule.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupfillinrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="small" default="yes"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillinrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfillinrules"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fillintext" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfillinrules"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-firstline.xml b/tex/context/interface/mkiv/i-firstline.xml
new file mode 100644
index 000000000..ffa706e3d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-firstline.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefirstline" file="typo-fln.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfirstline"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfirstline" file="typo-fln.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="default"/>
+ <cd:constant type="line" default="yes"/>
+ <cd:constant type="word"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setfirstline" file="typo-fln.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applytofirstcharacter" file="typo-fln.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-fittingpage.xml b/tex/context/interface/mkiv/i-fittingpage.xml
new file mode 100644
index 000000000..3489c55e2
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fittingpage.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefittingpage" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfittingpage" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="pagestate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="paper">
+ <cd:constant type="auto"/>
+ <cd:constant type="defaut" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fittingpage" type="environment" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fittingpage" type="environment" generated="yes" variant="generated" file="page-app.mkiv">
+ <cd:sequence>
+ <cd:variable value="fittingpage"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TEXpage" type="environment" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupTEXpage" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpage" type="environment" file="meta-fig.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupMPpage" file="meta-fig.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfittingpage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-floats.xml b/tex/context/interface/mkiv/i-floats.xml
new file mode 100644
index 000000000..d786769fc
--- /dev/null
+++ b/tex/context/interface/mkiv/i-floats.xml
@@ -0,0 +1,736 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefloat" variant="1" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-plural-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfloat"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloat" variant="2" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-plural-optional"/>
+ <cd:resolve name="keyword-singular-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfloat" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:inherit name="placefloat"/>
+ </cd:parameter>
+ <cd:parameter name="fallback">
+ <cd:inherit name="placefloat"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sidemethod">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="textmethod">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sidealign">
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="local">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="availablewidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="availableheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:resolve name="value-alignline"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="innermargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="outermargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottombefore">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottomafter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <!-- begin root only -->
+ <cd:parameter name="spacebefore">
+ <cd:constant type="none"/>
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:constant type="none"/>
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="none"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="sidespacebefore">
+ <cd:constant type="none"/>
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="sidespaceafter">
+ <cd:constant type="none"/>
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="ntop">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nbottom">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big" default="yes"/>
+ <cd:constant type="line"/>
+ <cd:constant type="depth"/>
+ </cd:parameter>
+ <cd:parameter name="nlines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="cache">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <!-- end root only -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupfloats" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfloat"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefloatcaption" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfloatcaption"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setupfloatcaption" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="suffix">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="suffixseparator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="suffixstopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="low"/>
+ <cd:constant type="high"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="lefthanging"/>
+ <cd:constant type="righthanging"/>
+ <cd:constant type="hang"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom" default="yes"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="spaceinbetween">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="group">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="innermargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="outermargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minwidth">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcaption" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfloatcaption"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupcaptions" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfloatcaption"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="placefloat" generated="yes" variant="generated" file="strc-flt.mkvi">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="float"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" type="environment" generated="yes" variant="generated" file="strc-flt.mkvi">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="float"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloat" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floattext" type="environment" generated="yes" variant="generated" file="strc-flt.mkvi">
+ <cd:sequence>
+ <cd:variable value="float"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffloats" generated="yes" variant="generated" file="strc-flt.mkvi">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistoffloats" generated="yes" variant="generated" file="strc-flt.mkvi">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="floats"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="floatuserdataparameter" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelserightpagefloat" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifrightpagefloatelse" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseoddpagefloat" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifoddpagefloatelse" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsemainfloatbody" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmainfloatbodyelse" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefigure" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefigure" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figuretext" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoffigures" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistoffigures" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placetable" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placetable" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabletext" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoftables" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistoftables" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placegraphic" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placegraphic" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="graphictext" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofgraphics" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofgraphics" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeintermezzo" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeintermezzo" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="intermezzotext" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofintermezzi" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofintermezzi" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placechemical" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placechemical" type="environment" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-floatdata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofchemicals" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofchemicals" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplocalfloats" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noflocalfloats" file="strc-flt.mkvi"/>
+
+ <cd:command name="resetlocalfloats" file="strc-flt.mkvi"/>
+
+ <cd:command name="somelocalfloat" file="strc-flt.mkvi"/>
+
+ <cd:command name="getlocalfloats" file="strc-flt.mkvi"/>
+
+ <cd:command name="flushlocalfloats" file="strc-flt.mkvi"/>
+
+ <cd:command name="getlocalfloat" file="strc-flt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forcelocalfloats" file="strc-flt.mkvi"/>
+
+ <cd:command name="setupfloatsplitting" file="tabl-tsp.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfloat" file="tabl-tsp.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfloatsplitting"/>
+ </cd:assignments>
+ <cd:resolve name="argument-command"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotinsidesplitfloat" file="tabl-tsp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placenamedfloat" file="page-flt.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefloatwithsetups" file="page-flt.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-floatlocation-list-optional"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-fontfamily.xml b/tex/context/interface/mkiv/i-fontfamily.xml
new file mode 100644
index 000000000..648bef6a2
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fontfamily.xml
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefontfamily" variant="1" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="type"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathematics"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-font"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="designsize">
+ <cd:constant type="default"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tf">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfamily" variant="2" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="type"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathematics"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-font"/>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefallbackfamily" variant="1" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="type"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathematics"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-font"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="designsize">
+ <cd:constant type="default"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="range">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="check">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="force">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tf">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefallbackfamily" variant="2" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="support"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="type"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ <cd:constant type="math"/>
+ <cd:constant type="mathematics"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-font"/>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfamilypreset" variant="1" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="definefontfamily"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfamilypreset" variant="2" file="font-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-fonts.xml b/tex/context/interface/mkiv/i-fonts.xml
new file mode 100644
index 000000000..c10b56571
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fonts.xml
@@ -0,0 +1,1644 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definefontfallback" file="font-col.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="cd:font"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="rscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="force">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="check">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetfontfallback" file="font-col.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emphasistypeface" file="font-emp.mkvi"/>
+
+ <cd:command name="emphasisboldface" file="font-emp.mkvi"/>
+
+ <cd:command name="normalboldface" file="font-emp.mkvi"/>
+
+ <cd:command name="normaltypeface" file="font-emp.mkvi"/>
+
+ <cd:command name="swaptypeface" file="font-emp.mkvi"/>
+
+ <cd:command name="typeface" file="font-emp.mkvi"/>
+
+ <cd:command name="boldface" file="font-emp.mkvi"/>
+
+ <cd:command name="swapface" file="font-emp.mkvi"/>
+
+ <!--
+
+ <cd:command name="emphbf" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emphit" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emphsl" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emphtf" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emph" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emphasized" file="font-emp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="definefontfeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="language">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="mode">
+ <cd:constant type="node"/>
+ <cd:constant type="base"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="liga">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="kern">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="extrakerns">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="tlig">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="trep">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="missing">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="dummies">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="analyze">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="unicoding">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="protrusion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="nostackmath">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="realdimensions">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="itlc">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="textitalics">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mathitalics">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="slant">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="extend">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dimensions">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="boundingbox">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="compose">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="char-ligatures">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="compat-ligatures">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="extrafeatures">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="featureset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="colorsheme">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="postprocessor">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mathdimensions">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="keepligatures">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="devanagari">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="tcom">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="anum">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mathsize">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="decomposehangul">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mathalternatives">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="mathgaps">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="cd:name">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontfeaturelist" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="addfeature" variant="1" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="addfeature" variant="2" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subtractfeature" variant="1" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subtractfeature" variant="2" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="replacefeature" variant="1" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="replacefeature" variant="2" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetandaddfeature" variant="1" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetandaddfeature" variant="2" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetfeature" file="font-fea.mkvi"/>
+
+ <cd:command name="revivefeature" file="font-fea.mkvi"/>
+
+ <cd:command name="setfontfeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="feature" variant="1" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="="/>
+ <cd:constant type="!"/>
+ <cd:constant type="&gt;"/>
+ <cd:constant type="&lt;"/>
+ <cd:constant type="more"/>
+ <cd:constant type="less"/>
+ <cd:constant type="new"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="default"/>
+ <cd:constant type="old"/>
+ <cd:constant type="local"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="feature" variant="2" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="="/>
+ <cd:constant type="!"/>
+ <cd:constant type="&gt;"/>
+ <cd:constant type="&lt;"/>
+ <cd:constant type="more"/>
+ <cd:constant type="less"/>
+ <cd:constant type="new"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="default"/>
+ <cd:constant type="old"/>
+ <cd:constant type="local"/>
+ </cd:keywords>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecurrentfonthasfeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcurrentfonthasfeatureelse" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doaddfeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosubtractfeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doreplacefeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doresetandafffeature" file="font-fea.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontclass" type="environment" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="each"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="classfont" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsynonym" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fallbacks">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="designsize">
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontfile" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fallbacks">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="designsize">
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="truefontname" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="expandfontsynonym" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefontsynonym" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffontsynonymelse" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tracedfontname" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontclassname" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadfontgoodies" file="font-gds.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setfontcolorsheme" file="font-gds.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetfontcolorsheme" file="font-gds.mkvi"/>
+
+ <cd:command name="definedfont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-font-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="font" type="environment" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-font-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bodyfontsize" file="font-ini.mkvi"/>
+
+ <cd:command name="normalizebodyfontsize" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thenormalizedbodyfontsize" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mapfontsize" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-dimension"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontstyle" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontsize" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefontalternative" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" variant="1" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinterlinespace"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefont" variant="2" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font"/>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefrozenfont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontenvironment" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="big">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="small">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="a">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="b">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="c">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="d">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xx">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="script">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scriptscript">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="em">
+ <cd:constant type="slanted"/>
+ <cd:constant type="italic"/>
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="*">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupbodyfontenvironment" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="definebodyfontenvironment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="processbodyfontenvironmentlist" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bodyfontenvironmentlist" file="font-fil.mkvi"/>
+
+ <cd:command name="registerfontclass" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcurrentfontclass" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tx" file="font-ini.mkvi"/>
+
+ <cd:command name="txx" file="font-ini.mkvi"/>
+
+ <cd:command name="definebodyfont" variant="1" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="tf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bf">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="it">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bi">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="bs">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="sc">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mrlr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mrrl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mb">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mblr">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="mbrl">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfont" variant="2" file="font-fil.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="rm" default="yes"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfonts" file="font-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="language">
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbodyfont" file="font-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="global"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="x"/>
+ <cd:constant type="xx"/>
+ <cd:constant type="small"/>
+ <cd:constant type="big"/>
+ <cd:constant type="script"/>
+ <cd:constant type="scriptscript"/>
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="support"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtobodyfont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastswitchtobodyfont" file="font-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="x"/>
+ <cd:constant type="xx"/>
+ <cd:constant type="small"/>
+ <cd:constant type="big"/>
+ <cd:constant type="script"/>
+ <cd:constant type="scriptscript"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usebodyfont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usebodyfontparameter" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontchar" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontcharbyindex" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tochar" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchstyleonly" variant="1" file="font-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ <cd:constant type="roman"/>
+ <cd:constant type="serif"/>
+ <cd:constant type="regular"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="sansserif"/>
+ <cd:constant type="support"/>
+ <cd:constant type="type"/>
+ <cd:constant type="teletype"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="handwritten"/>
+ <cd:constant type="calligraphic"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchstyleonly" variant="2" file="font-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebodyfontswitch" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setsmallbodyfont" file="font-ini.mkvi"/>
+
+ <cd:command name="setbigbodyfont" file="font-ini.mkvi"/>
+
+ <cd:command name="setmainbodyfont" file="font-ini.mkvi"/>
+
+ <cd:command name="restoreglobalbodyfont" file="font-ini.mkvi"/>
+
+ <cd:command name="predefinefont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="predefinedfont" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfont" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbodyfontenvironment" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfont" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-font"/>
+ <cd:resolve name="keyword-number-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfontstyle" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="tf"/>
+ <cd:constant type="bf"/>
+ <cd:constant type="it"/>
+ <cd:constant type="sl"/>
+ <cd:constant type="bi"/>
+ <cd:constant type="bs"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="all"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showligature" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showligatures" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfontstrip" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showminimalbaseline" file="font-run.mkiv"/>
+
+ <cd:command name="showkerning" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showcharratio" file="font-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfontparameters" file="font-run.mkiv"/>
+
+ <cd:command name="setsmallcaps" file="font-pre.mkiv"/>
+
+ <cd:command name="setoldstyle" file="font-pre.mkiv"/>
+
+ <cd:command name="settabular" file="font-pre.mkiv"/>
+
+ <cd:command name="setsuperiors" file="font-pre.mkiv"/>
+
+ <cd:command name="tinyfont" file="font-pre.mkiv"/>
+
+ <cd:command name="infofont" file="font-pre.mkiv"/>
+
+ <cd:command name="infofontbold" file="font-pre.mkiv"/>
+
+ <cd:command name="smallbodyfont" file="font-pre.mkiv"/>
+
+ <cd:command name="bigbodyfont" file="font-pre.mkiv"/>
+
+ <cd:command name="smaller" file="font-pre.mkiv"/>
+
+ <cd:command name="bigger" file="font-pre.mkiv"/>
+
+ <cd:command name="normal" file="font-pre.mkiv"/>
+
+ <cd:command name="bold" file="font-pre.mkiv"/>
+
+ <cd:command name="mono" file="font-pre.mkiv"/>
+
+ <cd:command name="monobold" file="font-pre.mkiv"/>
+
+ <cd:command name="slanted" file="font-pre.mkiv"/>
+
+ <cd:command name="italic" file="font-pre.mkiv"/>
+
+ <cd:command name="boldslanted" file="font-pre.mkiv"/>
+
+ <cd:command name="slantedbold" file="font-pre.mkiv"/>
+
+ <cd:command name="bolditalic" file="font-pre.mkiv"/>
+
+ <cd:command name="italicbold" file="font-pre.mkiv"/>
+
+ <cd:command name="small" file="font-pre.mkiv"/>
+
+ <cd:command name="smallnormal" file="font-pre.mkiv"/>
+
+ <cd:command name="smallbold" file="font-pre.mkiv"/>
+
+ <cd:command name="smalltype" file="font-pre.mkiv"/>
+
+ <cd:command name="smallslanted" file="font-pre.mkiv"/>
+
+ <cd:command name="smallboldslanted" file="font-pre.mkiv"/>
+
+ <cd:command name="smallslantedbold" file="font-pre.mkiv"/>
+
+ <cd:command name="smallbolditalic" file="font-pre.mkiv"/>
+
+ <cd:command name="smallitalicbold" file="font-pre.mkiv"/>
+
+ <cd:command name="sans" file="font-pre.mkiv"/>
+
+ <cd:command name="sansserif" file="font-pre.mkiv"/>
+
+ <cd:command name="roman" file="font-pre.mkiv"/>
+
+ <cd:command name="serif" file="font-pre.mkiv"/>
+
+ <cd:command name="regular" file="font-pre.mkiv"/>
+
+ <cd:command name="handwritten" file="font-pre.mkiv"/>
+
+ <cd:command name="calligraphic" file="font-pre.mkiv"/>
+
+ <cd:command name="sansnormal" file="font-pre.mkiv"/>
+
+ <cd:command name="sansbold" file="font-pre.mkiv"/>
+
+ <cd:command name="serifnormal" file="font-pre.mkiv"/>
+
+ <cd:command name="serifbold" file="font-pre.mkiv"/>
+
+ <cd:command name="mononormal" file="font-pre.mkiv"/>
+
+ <cd:command name="monobold" file="font-pre.mkiv"/>
+
+ <cd:command name="definefontsolution" file="font-sol.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupfontsolution"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontsolution" file="font-sol.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="solution">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="less">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="more">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="preroll"/>
+ <cd:constant type="split"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="reverse"/>
+ <cd:constant type="random"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupfontsolutions" file="font-sol.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupfontsolution"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setfontsolution" file="font-sol.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetfontsolution" file="font-sol.mkvi"/>
+
+ <cd:command name="fontsolution" type="environment" file="font-sol.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definealternativestyle" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:resolve name="keyword-command"/>
+ <cd:resolve name="keyword-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applyalternativestyle" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dontconvertfont" file="font-sty.mkvi"/>
+
+ <cd:command name="redoconvertfont" file="font-sty.mkvi"/>
+
+ <cd:command name="definestyle" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupstyle"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstyle" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="style" type="environment" generated="yes" variant="generated" file="font-sty.mkvi">
+ <cd:sequence>
+ <cd:variable value="style"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="style" generated="yes" variant="generated" file="font-sty.mkvi">
+ <cd:sequence>
+ <cd:variable value="style"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="style" type="environment" variant="1" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="style" type="environment" variant="2" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupstyle"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="style" variant="1" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:font"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="style" variant="2" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupstyle"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definestyleinstance" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="tf"/>
+ <cd:constant type="bf"/>
+ <cd:constant type="it"/>
+ <cd:constant type="sl"/>
+ <cd:constant type="bi"/>
+ <cd:constant type="bs"/>
+ <cd:constant type="sc"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="styleinstance" file="font-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseitalic" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifitalicelse" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getprivateslot" file="font-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="glyphfontfile" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getnamedglyphstyled" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getnamedglyphdirect" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getglyphstyled" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:character"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getglyphdirect" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:character"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setfont" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefontchar" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffontcharelse" file="font-sym.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showchardata" file="font-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showfontdata" file="font-tra.mkiv"/>
+
+ <cd:command name="doifelsefontpresent" file="font-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffontpresentelse" file="font-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showotfcomposition" file="font-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="-1"/>
+ <cd:constant type="1"/>
+ <cd:constant type="+1"/>
+ <cd:constant type="l2r"/>
+ <cd:constant type="r2l"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fontclass" file="font-var.mkvi"/>
+
+ <cd:command name="fontbody" file="font-var.mkvi"/>
+
+ <cd:command name="fontstyle" file="font-var.mkvi"/>
+
+ <cd:command name="fontalternative" file="font-var.mkvi"/>
+
+ <cd:command name="fontsize" file="font-var.mkvi"/>
+
+ <cd:command name="fontface" file="font-var.mkvi"/>
+
+ <cd:command name="typescriptone" file="type-ini.mkvi"/>
+
+ <cd:command name="typescripttwo" file="type-ini.mkvi"/>
+
+ <cd:command name="typescriptthree" file="type-ini.mkvi"/>
+
+ <cd:command name="typescriptcollection" type="environment" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescriptfile" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usetypescript" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="serif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="math"/>
+ <cd:constant type="handwriting"/>
+ <cd:constant type="calligraphy"/>
+ <cd:constant type="casual"/>
+ <cd:constant type="all"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="fallback"/>
+ <cd:constant type="default"/>
+ <cd:constant type="dtp"/>
+ <cd:constant type="simple"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="size"/>
+ <cd:constant type="name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadtypescriptfile" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quittypescriptscanning" file="type-ini.mkvi"/>
+
+ <cd:command name="definetypescriptsynonym" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typescript" type="environment" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="serif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="math"/>
+ <cd:constant type="handwriting"/>
+ <cd:constant type="calligraphy"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="size"/>
+ <cd:constant type="name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypescriptprefix" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typescriptprefix" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypeface" file="type-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="rm"/>
+ <cd:constant type="ss"/>
+ <cd:constant type="tt"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="hw"/>
+ <cd:constant type="cg"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="serif"/>
+ <cd:constant type="sans"/>
+ <cd:constant type="mono"/>
+ <cd:constant type="math"/>
+ <cd:constant type="handwriting"/>
+ <cd:constant type="calligraphy"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="default" default="yes"/>
+ <cd:constant type="dtp"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="rscale">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="fallbacks">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="goodies">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="designsize">
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="both"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontexpansion" file="hand-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="vector">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="shrink">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfontprotrusion" file="hand-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="vector">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-form.xml b/tex/context/interface/mkiv/i-form.xml
new file mode 100644
index 000000000..0f02d0670
--- /dev/null
+++ b/tex/context/interface/mkiv/i-form.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupforms" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="XML" default="yes"/>
+ <cd:constant type="HTML"/>
+ <cd:constant type="PDF"/>
+ </cd:parameter>
+ <cd:parameter name="export">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-formula.xml b/tex/context/interface/mkiv/i-formula.xml
new file mode 100644
index 000000000..f288e4f8a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-formula.xml
@@ -0,0 +1,295 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineformula" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupformula"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupformula" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="center"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="spacebefore">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="spaceafter">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="numberstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="numbercolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:inherit name="snaptogrid"/>
+ </cd:parameter>
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupformulas" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupformula"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="definesubformula" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsubformula"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubformula" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupsubformulas" file="math-for.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupsubformula"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <!-- todo: make definition for keywords -->
+
+ <cd:command name="formula" type="environment" generated="yes" variant="generated" file="strc-mat.mkiv">
+ <cd:sequence>
+ <cd:variable value="formula"/>
+ <cd:string value="formula"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="spformula" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sdformula" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mpformula" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mdformula" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineformulaalternative" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-csname"/>
+ <cd:resolve name="keyword-csname"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formula" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-formula"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="displaymath" type="environment" file="strc-mat.mkiv"/>
+
+ <cd:command name="formulas" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subformulas" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedsubformulas" type="environment" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" type="environment" variant="1" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="suffix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeformula" type="environment" variant="2" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placenamedformula" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesubformula" file="strc-mat.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="formulanumber" file="strc-mat">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecurrentformulanumber" file="strc-mat"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-fraction.xml b/tex/context/interface/mkiv/i-fraction.xml
new file mode 100644
index 000000000..444784dfa
--- /dev/null
+++ b/tex/context/interface/mkiv/i-fraction.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathfraction" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathfraction"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathfraction" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="topdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="math"/>
+ <cd:constant type="tight"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="inner" default="yes"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="both"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mathstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="no"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupmathfractions" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupmathfraction"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="fraction" generated="yes" variant="generated" file="math-frc.mkiv">
+ <cd:sequence>
+ <cd:variable value="fraction"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="frac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xxfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="binom" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dbinom" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tbinom" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitdfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cfrac" file="math-frc.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="l"/>
+ <cd:constant type="c"/>
+ <cd:constant type="r"/>
+ <cd:constant type="ll"/>
+ <cd:constant type="lc"/>
+ <cd:constant type="lr"/>
+ <cd:constant type="cl"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="cr"/>
+ <cd:constant type="rl"/>
+ <cd:constant type="rc"/>
+ <cd:constant type="rr"/>
+ </cd:keywords>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-framed.xml b/tex/context/interface/mkiv/i-framed.xml
new file mode 100644
index 000000000..07bdd5de4
--- /dev/null
+++ b/tex/context/interface/mkiv/i-framed.xml
@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <?context-directive job ctxfile x-setups.ctx ?>
+
+ <cd:command name="defineframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="corner">
+ <cd:constant type="rectangular" default="yes"/>
+ <cd:constant type="round"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="framecorner">
+ <cd:constant type="rectangular" default="yes"/>
+ <cd:constant type="round"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcorner">
+ <cd:constant type="rectangular" default="yes"/>
+ <cd:constant type="round"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="radius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frameradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundradius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framedepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backgrounddepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="framecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="topframe">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="bottomframe">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="leftframe">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rightframe">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="region">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frameoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="foreground"/>
+ <cd:constant type="color"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundoffset">
+ <cd:constant type="frame"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="component">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="extras">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="foregroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="default"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="local"/>
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="none"/>
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="autostrut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="top"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="line"/>
+ <cd:constant type="lohi"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="keep"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="autowidth">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="force"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="fr!analyze">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="blank">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="profile">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="empty">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="loffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="roffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="toffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="boffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="orientation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="frameddimension" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedparameter" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" generated="yes" variant="generated" file="pack-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="framed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalframedwithsettings" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framed" type="environment" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastlocalframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directlocalframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localframedwithsettings" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathframed" generated="yes" variant="generated" file="pack-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="mathframed"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mcframed" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframedtext" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedtext" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="depthcorrection">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ <cd:inherit name="setupplacement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupframedtexts" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="framedtext" generated="yes" variant="generated" file="pack-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="framedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" generated="yes" variant="generated" file="pack-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="framedtext"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedtext" type="environment" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineframedcontent" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframedcontent"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupframedcontent" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffser">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="linecorrection">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="framedcontent" type="environment" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="off"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installleftframerenderer" file="pack-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installrightframerenderer" file="pack-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installtopframerenderer" file="pack-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installbottomframerenderer" file="pack-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-graphics.xml b/tex/context/interface/mkiv/i-graphics.xml
new file mode 100644
index 000000000..4e90a0c81
--- /dev/null
+++ b/tex/context/interface/mkiv/i-graphics.xml
@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineexternalfigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="defineexternalfigures" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setupexternalfigure" file="grph-inc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="object">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="pdf"/>
+ <cd:constant type="mps"/>
+ <cd:constant type="jpg"/>
+ <cd:constant type="png"/>
+ <cd:constant type="jp2"/>
+ <cd:constant type="jbig"/>
+ <cd:constant type="svg"/>
+ <cd:constant type="eps"/>
+ <cd:constant type="gif"/>
+ <cd:constant type="tif"/>
+ <cd:constant type="mov"/>
+ <cd:constant type="buffer"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="cld"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="controls">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="preview">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="mask">
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="resolution">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="wfactor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="equalwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="equalheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global" default="yes"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="directory">
+ <cd:constant type="cd:path"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="test"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="forgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="color"/>
+ <cd:constant type="foreground"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="xmax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ymax">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="frames">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="yes"/>
+ <cd:constant type="all"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="reference"/>
+ <cd:constant type="layer"/>
+ <cd:constant type="bookmark"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="comment">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="size">
+ <cd:constant type="none"/>
+ <cd:constant type="media"/>
+ <cd:constant type="crop"/>
+ <cd:constant type="trim"/>
+ <cd:constant type="art"/>
+ </cd:parameter>
+ <cd:parameter name="cache">
+ <cd:constant type="cd:path"/>
+ </cd:parameter>
+ <cd:parameter name="resources">
+ <cd:constant type="cd:path"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="cd:file"/> <!-- an alternative figure often low res .. old school pdf stuff -->
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:text"/> <!-- a extra (kind of) suffix that triggers conversion -->
+ </cd:parameter>
+ <cd:parameter name="order">
+ <cd:constant type="cd:list"/> <!-- a list of suffixes/types to check -->
+ </cd:parameter>
+ <cd:parameter name="crossreference">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <!-- only passed by the system: -->
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupexternalfigures" file="grph-inc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="useexternalfigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getfiguredimensions" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figurewidth" file="grph-inc.mkiv"/>
+
+ <cd:command name="figureheight" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurenaturalwidth" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurenaturalheight" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurefullname" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurefilename" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurefilepath" file="grph-inc.mkiv"/>
+
+ <cd:command name="figurefiletype" file="grph-inc.mkiv"/>
+
+ <cd:command name="noffigurepages" file="grph-inc.mkiv"/>
+
+ <cd:command name="definegraphictypesynonym" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffigureelse" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registerexternalfigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usefigurebase" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollection" type="environment" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollectionminwidth" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollectionmaxwidth" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollectionminheight" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollectionmaxheight" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="externalfigurecollectionparameter" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="efcminwidth" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="efcmaxwidth" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="efcminheight" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="efcmaxheight" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="efcparameter" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlayfigure" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bitmapimage" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="rgb"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="gray"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bitmapimage" type="environment" file="grph-inc.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="rgb"/>
+ <cd:constant type="cmyk"/>
+ <cd:constant type="gray"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typesetbuffer" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="*"/>
+ <cd:constant type="cd:buffer"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetypesetting" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typesetfile" file="grph-fig.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:file"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:file"/>
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="backgroundimage" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="backgroundimagefill" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-grid.xml b/tex/context/interface/mkiv/i-grid.xml
new file mode 100644
index 000000000..d98a1a544
--- /dev/null
+++ b/tex/context/interface/mkiv/i-grid.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="showgrid" file="page-grd.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="bottom" default="yes"/>
+ <cd:constant type="top"/>
+ <cd:constant type="none"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="lines"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="nonumber"/>
+ <cd:constant type="right" default="yes"/>
+ <cd:constant type="left"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="columns" default="yes"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definegridsnapping" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ <cd:constant type="noheight"/>
+ <cd:constant type="nodepth"/>
+ <cd:constant type="box"/>
+ <cd:constant type="max"/>
+ <cd:constant type="min"/>
+ <cd:constant type="none"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="minheight"/>
+ <cd:constant type="maxheight"/>
+ <cd:constant type="mindepth"/>
+ <cd:constant type="maxdepth"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="strut"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="minheight" method="range"/>
+ <cd:constant type="cd:number" prefix="maxheight" method="range"/>
+ <cd:constant type="cd:number" prefix="mindepth" method="range"/>
+ <cd:constant type="cd:number" prefix="maxdepth" method="range"/>
+ <cd:constant type="cd:number" prefix="box" method="range"/>
+ <cd:constant type="cd:number" prefix="top" method="range"/>
+ <cd:constant type="cd:number" prefix="bottom" method="range"/>
+ <cd:constant type="cd:number" prefix="offset" method="range"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="snaptogrid" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-grid"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="snaptogrid" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="definegridsnapping"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-grid"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeongrid" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="definegridsnapping"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gridsnapping" type="environment" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-grid"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gridsnapping" type="environment" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="definegridsnapping"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usegridparameter" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showgridsnapping" file="spac-ver.mkiv"/>
+
+ <cd:command name="basegrid" file="meta-grd.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="yoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="middle"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="cm" default="yes"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="in"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="bp"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grid" file="meta-grd.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="basegrid"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-help.xml b/tex/context/interface/mkiv/i-help.xml
new file mode 100644
index 000000000..db2128d53
--- /dev/null
+++ b/tex/context/interface/mkiv/i-help.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definehelp" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuphelp"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphelp" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="help" generated="yes" variant="generated" file="scrn-hlp.mkvi">
+ <cd:sequence>
+ <cd:variable value="help"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="help" type="environment" generated="yes" variant="generated" file="scrn-hlp.mkvi">
+ <cd:sequence>
+ <cd:variable value="help"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsehelp" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifhelpelse" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placehelp" file="scrn-hlp.mkvi"/>
+
+ <cd:command name="showhelp" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="helptext" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="helptext" type="environment" file="scrn-hlp.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-highlight.xml b/tex/context/interface/mkiv/i-highlight.xml
new file mode 100644
index 000000000..1cc4ed4ca
--- /dev/null
+++ b/tex/context/interface/mkiv/i-highlight.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definehighlight" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuphighlight"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphighlight" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="command">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="highlight" generated="yes" variant="generated" file="core-sys.mkiv">
+ <cd:sequence>
+ <cd:variable value="highlight"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="highlight" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="highlight" type="environment" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directhighlight" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-hspace.xml b/tex/context/interface/mkiv/i-hspace.xml
new file mode 100644
index 000000000..3c96fc247
--- /dev/null
+++ b/tex/context/interface/mkiv/i-hspace.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definehspace" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hspace" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="default" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type=".5"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <!--
+ <cd:constant type="vulgarfraction"/>
+ -->
+ <cd:constant type="speech"/>
+ <cd:constant type="quote"/>
+ <cd:constant type="interquotation"/>
+ <cd:constant type="quotation"/>
+ <cd:constant type="sentence"/>
+ <cd:constant type="intersentence"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hairspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="thinspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="medspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="thickspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="autoinsertnextspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="hglue" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="frenchspacing" file="spac-hor.mkiv"/>
+
+ <cd:command name="newfrenchspacing" file="spac-hor.mkiv"/>
+
+ <cd:command name="nonfrenchspacing" file="spac-hor.mkiv"/>
+
+ <cd:command name="setupspacing" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="fixed"/>
+ <cd:constant type="packed" default="yes"/>
+ <cd:constant type="broad"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="space" file="spac-hor.mkiv"/>
+
+ <cd:command name="removelastspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="nospace" file="spac-hor.mkiv"/>
+
+ <cd:command name="fixedspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="fixedspaces" file="spac-hor.mkiv"/>
+
+ <cd:command name="keepunwantedspaces" file="spac-hor.mkiv"/>
+
+ <cd:command name="removeunwantedspaces" file="spac-hor.mkiv"/>
+
+ <cd:command name="thinspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="negthinspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="enspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="enskip" file="spac-hor.mkiv"/>
+
+ <cd:command name="quad" file="spac-hor.mkiv"/>
+
+ <cd:command name="qquad" file="spac-hor.mkiv"/>
+
+ <cd:command name="emspace" file="spac-hor.mkiv"/>
+
+ <cd:command name="dotfskip" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftskipadaption" file="spac-hor.mkiv"/>
+
+ <cd:command name="rightskipadaption" file="spac-hor.mkiv"/>
+
+ <cd:command name="dosetleftskipadaption" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-leftskip"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosetrightskipadaption" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-rightskip"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doadaptleftskip" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-leftskip"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doadaptrightskip" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-rightskip"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="activatespacehandler" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="fixed"/>
+ <!--
+ <cd:constant type="cd:name"/>
+ -->
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-hyphenation.xml b/tex/context/interface/mkiv/i-hyphenation.xml
new file mode 100644
index 000000000..934751712
--- /dev/null
+++ b/tex/context/interface/mkiv/i-hyphenation.xml
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuphyphenation" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="original"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="default" default="yes"/>
+ <cd:constant type="hyphenate"/>
+ <cd:constant type="expanded"/>
+ <cd:constant type="traditional"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenation" type="environment" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="original"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="default" default="yes"/>
+ <cd:constant type="hyphenate"/>
+ <cd:constant type="expanded"/>
+ <cd:constant type="traditional"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definehypenationfeatures" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="characters">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="hyphens">
+ <cd:constant type="yes"/>
+ <cd:constant type="all"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="joiners">
+ <cd:constant type="yes"/>
+ <cd:constant type="all"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rightwords">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="hyphenmin">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenchar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenchar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="original"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="hyphenate" default="yes"/>
+ <cd:constant type="expanded"/>
+ <cd:constant type="traditional"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="rightedge">
+ <cd:constant type="tex"/>
+ </cd:parameter>
+ <cd:parameter name="rightchars">
+ <cd:constant type="word"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sethyphenationfeatures" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resethyphenationfeatures" file="lang-hyp.mkiv"/>
+
+ <cd:command name="registerhyphenationpattern" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unregisterhyphenationpattern" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showhyphenationtrace" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registerhyphenationexception" file="lang-hyp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphyphenmark" file="typo-del.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="sign">
+ <cd:constant type="normal"/>
+ <cd:constant type="wide" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebreakpoints" file="typo-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebreakpoint" file="typo-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="cd:character"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="type">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="5"/>
+ </cd:parameter>
+ <cd:parameter name="nleft">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nright">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:language"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setbreakpoints" file="typo-brk.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetbreakpoints" file="typo-brk.mkiv"/>
+
+ <cd:command name="showhyphens" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedword" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedpar" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedfile" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedcoloredword" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sethyphenatedurlbefore" file="lang-url.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sethyphenatedurlafter" file="lang-url.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sethyphenatedurlnormal" file="lang-url.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedurl" file="lang-url.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hyphenatedfilename" file="lang-url.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-imposition.xml b/tex/context/interface/mkiv/i-imposition.xml
new file mode 100644
index 000000000..b4bd4dee5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-imposition.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="installshipoutmethod" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="invokepageheandler" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="normal"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuparranging" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="disable"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="doublesided"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="background"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="2*16"/>
+ <cd:constant type="2*8"/>
+ <cd:constant type="2*4"/>
+ <cd:constant type="2*2"/>
+ <cd:constant type="2**2"/>
+ <cd:constant type="2SIDE"/>
+ <cd:constant type="2TOP"/>
+ <cd:constant type="2UP"/>
+ <cd:constant type="2DOWN"/>
+ <cd:constant type="2*4*2"/>
+ <cd:constant type="2*2*4"/>
+ <cd:constant type="2TOPSIDE"/>
+ <cd:constant type="2*8*Z"/>
+ <cd:constant type="2*6*Z"/>
+ <cd:constant type="1*8"/>
+ <cd:constant type="1*4"/>
+ <cd:constant type="3SIDE"/>
+ <cd:constant type="TRYPTICHON"/>
+ <cd:constant type="ZFLYER-8"/>
+ <cd:constant type="ZFLYER-10"/>
+ <cd:constant type="ZFLYER-12"/>
+ <cd:constant type="MAPFLYER-12"/>
+ <cd:constant type="DOUBLEWINDOW"/>
+ <cd:constant type="1*2-Conference"/>
+ <cd:constant type="1*4-Conference"/>
+ <cd:constant type="2*2*2"/>
+ <cd:constant type="2*2*3"/>
+ <cd:constant type="XY"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installpagearrangement" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="arrangedpages" type="environment" begin="push" end="pop" file="page-imp.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-indent.xml b/tex/context/interface/mkiv/i-indent.xml
new file mode 100644
index 000000000..666388b6a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-indent.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineindenting" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:constant type="small" prefix="cd:sign" method="none"/>
+ <cd:constant type="medium" prefix="cd:sign" method="none"/>
+ <cd:constant type="big" prefix="cd:sign" method="none"/>
+ <cd:constant type="none"/>
+ <cd:constant type="no"/>
+ <cd:constant type="not"/>
+ <cd:constant type="first"/>
+ <cd:constant type="next"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="always"/>
+ <cd:constant type="never"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="toggle"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindenting" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="small" prefix="cd:sign" method="none"/>
+ <cd:constant type="medium" prefix="cd:sign" method="none"/>
+ <cd:constant type="big" prefix="cd:sign" method="none"/>
+ <cd:constant type="none"/>
+ <cd:constant type="no"/>
+ <cd:constant type="not"/>
+ <cd:constant type="first"/>
+ <cd:constant type="next"/>
+ <cd:constant type="yes"/>
+ <cd:constant type="always"/>
+ <cd:constant type="never"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="toggle"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizeindenting" file="spac-hor.mkiv"/>
+
+ <cd:command name="useindentingparameter" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentation" file="spac-hor.mkiv"/>
+
+ <cd:command name="noindentation" file="spac-hor.mkiv"/>
+
+ <cd:command name="doindentation" file="spac-hor.mkiv"/>
+
+ <cd:command name="checknextindentation" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="auto"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useindentnextparameter" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dorechecknextindentation" file="spac-hor.mkiv"/>
+
+ <cd:command name="indentation" type="environment" begin="push" end="pop" file="spac-hor.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-indentedtext.xml b/tex/context/interface/mkiv/i-indentedtext.xml
new file mode 100644
index 000000000..c70fb5ba0
--- /dev/null
+++ b/tex/context/interface/mkiv/i-indentedtext.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineindentedtext" file="strc-ind.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupindentedtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindentedtext" file="strc-ind.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="indentedtext" type="environment" generated="yes" variant="generated" file="strc-ind.mkiv">
+ <cd:sequence>
+ <cd:variable value="indentedtext"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="indentedtext" type="environment" file="strc-ind.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-initial.xml b/tex/context/interface/mkiv/i-initial.xml
new file mode 100644
index 000000000..170a5e1ba
--- /dev/null
+++ b/tex/context/interface/mkiv/i-initial.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinitial" file="typo-drp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinitial"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinitial" file="typo-drp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="line" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="font">
+ <cd:constant type="cd:font"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="margin"/>
+ <cd:constant type="text" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="none" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeinitial" file="typo-drp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinitial" file="typo-drp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinitial"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-injector.xml b/tex/context/interface/mkiv/i-injector.xml
new file mode 100644
index 000000000..c13e544db
--- /dev/null
+++ b/tex/context/interface/mkiv/i-injector.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="resetinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="markinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkpreviousinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checknextinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-list"/>
+ <cd:resolve name="keyword-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="doinstallinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doactivateinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotestinjector" file="typo-inj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-insertion.xml b/tex/context/interface/mkiv/i-insertion.xml
new file mode 100644
index 000000000..9250c9ebf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-insertion.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinsertion" file="page-ins.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinsertion"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinsertion" file="page-ins.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="page" default="yes"/>
+ <cd:constant type="text"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseinsertion" file="page-ins.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinsertionelse" file="page-ins.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-interaction.xml b/tex/context/interface/mkiv/i-interaction.xml
new file mode 100644
index 000000000..06b104f4c
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interaction.xml
@@ -0,0 +1,160 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinteraction" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteraction"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" variant="1" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="subtitle">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="author">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="keyword">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="focus">
+ <cd:constant type="standard"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="width"/>
+ <cd:constant type="minwidth"/>
+ <cd:constant type="height"/>
+ <cd:constant type="minheight"/>
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="tight"/>
+ <!--
+ <cd:constant type="xyz"/>
+ <cd:constant type="fitr"/>
+ <cd:constant type="fith"/>
+ <cd:constant type="fitbh"/>
+ <cd:constant type="fitv"/>
+ <cd:constant type="fitbv"/>
+ <cd:constant type="fitb"/>
+ -->
+ </cd:parameter>
+ <cd:parameter name="menu">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="fieldlayer">
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="calculate">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="click">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="normal"/>
+ <cd:constant type="new"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="page"/>
+ <cd:constant type="name"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="openaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closeaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="openpageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closepageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="symbolset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="focusoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteraction" variant="2" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interaction" type="environment" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="hidden"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinteraction" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="hidden"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselocation" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflocationelse" file="scrn-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-interactionbar.xml b/tex/context/interface/mkiv/i-interactionbar.xml
new file mode 100644
index 000000000..67c31216a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interactionbar.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinteractionbar" file="scrn-bar.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionbar" file="scrn-bar.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:csname"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ <cd:constant type="broad"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbar" file="scrn-bar.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionbuttons" file="scrn-bar.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionbar"/>
+ </cd:assignments>
+ <cd:keywords list="yes">
+ <cd:constant type="page"/>
+ <cd:constant type="subpage"/>
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-interactionmenu.xml b/tex/context/interface/mkiv/i-interactionmenu.xml
new file mode 100644
index 000000000..6bf2f9674
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interactionmenu.xml
@@ -0,0 +1,276 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinteractionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionmenu"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinteractionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="vertical"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="hidden"/>
+ </cd:parameter>
+ <cd:parameter name="category">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="overlay"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="overlay"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="overlay"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="overlay"/>
+ <cd:constant type="frame"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="itemalign">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="low"/>
+ <cd:constant type="high"/>
+ <cd:constant type="lohi"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="local"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="overlay"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="samepage">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="contrastcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupinteractionmenus" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupinteractionmenu"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="interactionmenu" type="environment" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetinteractionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="raw" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="raw" type="environment" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but" type="environment" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="got" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="got" type="environment" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop" type="environment" variant="interactionmenu" file="scrn-but.mkvi"/>
+
+ <cd:command name="txt" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="txt" type="environment" variant="interactionmenu" file="scrn-but.mkvi"/>
+
+ <cd:command name="rul" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rul" type="environment" variant="interactionmenu" file="scrn-but.mkvi"/>
+
+ <cd:command name="com" variant="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="\"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="com" type="environment" variant="interactionmenu" file="scrn-but.mkvi"/>
+
+ <cd:command name="includemenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="interactionmenu" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionmenu"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="menubutton" variant="1" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinteractionmenu"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="menubutton" variant="2" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupbutton"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:reference"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registermenubuttons" file="scrn-but.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-interactionscreen.xml b/tex/context/interface/mkiv/i-interactionscreen.xml
new file mode 100644
index 000000000..6e337f6d6
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interactionscreen.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupinteractionscreen" file="scrn-pag.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ <cd:constant type="tight"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ <cd:constant type="tight"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option" list="yes">
+ <cd:constant type="fit"/>
+ <cd:constant type="max"/>
+ <cd:constant type="singlesided"/>
+ <cd:constant type="doublesided"/>
+ <cd:constant type="bookmark"/>
+ <cd:constant type="auto" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="portrait"/>
+ <cd:constant type="page"/>
+ <cd:constant type="paper"/>
+ </cd:parameter>
+ <cd:parameter name="copies">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="delay">
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="screen" file="scrn-pag.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="page"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-interface.xml b/tex/context/interface/mkiv/i-interface.xml
new file mode 100644
index 000000000..c8c93b72b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interface.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defaultinterface" file="mult-ini.mkiv"/>
+
+ <cd:command name="currentinterface" file="mult-ini.mkiv"/>
+
+ <cd:command name="currentresponses" file="mult-ini.mkiv"/>
+
+ <cd:command name="interface" type="environment" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="all"/>
+ <cd:constant type="cd:language"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinterfaceconstant" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinterfacevariable" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineinterfaceelement" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefileconstant" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesystemconstant" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemessageconstant" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesystemvariable" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinterfacemessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="title"/>
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmessagetext" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentmessagetext" file="mult-ini.mkiv"/>
+
+ <cd:command name="getmessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsemessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmessageelse" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writestatus" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="message" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinemessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="displaymessage" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showwarning" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinterfaceconstant" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinterfacevariable" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinterfaceelements" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinterfacecommand" file="mult-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-interlinespace.xml b/tex/context/interface/mkiv/i-interlinespace.xml
new file mode 100644
index 000000000..99f5e11af
--- /dev/null
+++ b/tex/context/interface/mkiv/i-interlinespace.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineinterlinespace" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupinterlinespace"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="line">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="minheight">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="mindepth">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="height"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="shrink">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupinterlinespace" variant="3" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplocalinterlinespace" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupinterlinespace"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplocalinterlinespace" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplocalinterlinespace" variant="3" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtointerlinespace" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupinterlinespace"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtointerlinespace" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="switchtointerlinespace" variant="3" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosetupcheckedinterlinespace" variant="1" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments delimiters="braces" list="yes">
+ <cd:inherit name="setupinterlinespace"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosetupcheckedinterlinespace" variant="2" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="reset"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosetupcheckedinterlinespace" variant="3" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useinterlinespaceparameter" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-italiccorrection.xml b/tex/context/interface/mkiv/i-italiccorrection.xml
new file mode 100644
index 000000000..f8d711ae8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-italiccorrection.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setitaliccorrection" file="typo-itc.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetitaliccorrection" file="typo-itc.mkvi"/>
+
+ <cd:command name="italiccorrection" file="typo-itc.mkvi"/>
+
+ <cd:command name="setupitaliccorrection" file="typo-itc.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="always"/>
+ <cd:constant type="global"/>
+ <cd:constant type="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-itemgroup.xml b/tex/context/interface/mkiv/i-itemgroup.xml
new file mode 100644
index 000000000..69e817efd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-itemgroup.xml
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineitemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" variant="1" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="each"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="intro"/>
+ <cd:constant type="random"/>
+ <cd:constant type="continue"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="text"/>
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="atmargin"/>
+ <cd:constant type="intext"/>
+ <cd:constant type="loose"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="nofit"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="unpacked"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="norepeat"/>
+ <cd:constant type="reverse"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="three"/>
+ <cd:constant type="four"/>
+ <cd:constant type="five"/>
+ <cd:constant type="six"/>
+ <cd:constant type="seven"/>
+ <cd:constant type="eight"/>
+ <cd:constant type="nine"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="broad" prefix="cd:number" method="factor"/>
+ <cd:constant type="serried" prefix="cd:number" method="factor"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="beforehead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afterhead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="lefttext">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="righttext">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:resolve name="value-rightskip"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symalign">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="center"/>
+ <cd:constant type="flushright"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:csname"/>
+ </cd:parameter>
+ <cd:parameter name="items">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="itemalign">
+ <cd:resolve name="value-alignsimple"/>
+ </cd:parameter>
+ <cd:parameter name="alignsymbol">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="space" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="placestopper">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="marstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="marcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="symstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="symcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitemgroup" variant="2" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number" prefix="cd:name" method="range"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="beforehead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="afterhead">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="lefttext">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="righttext">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="intro"/>
+ <cd:constant type="random"/>
+ <cd:constant type="continue"/>
+ <cd:constant type="packed"/>
+ <cd:constant type="autointro"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="text"/>
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="atmargin"/>
+ <cd:constant type="intext"/>
+ <cd:constant type="loose"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="nofit"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="joinedup"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="unpacked"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="norepeat"/>
+ <cd:constant type="reverse"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="three"/>
+ <cd:constant type="four"/>
+ <cd:constant type="five"/>
+ <cd:constant type="six"/>
+ <cd:constant type="seven"/>
+ <cd:constant type="eight"/>
+ <cd:constant type="nine"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="broad" prefix="cd:number" method="factor"/>
+ <cd:constant type="serried" prefix="cd:number" method="factor"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:resolve name="value-rightskip"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:resolve name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="symalign">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="center"/>
+ <cd:constant type="flushright"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:csname"/>
+ </cd:parameter>
+ <cd:parameter name="items">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="itemalign">
+ <cd:resolve name="value-alignsimple"/>
+ </cd:parameter>
+ <cd:parameter name="alignsymbol">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="space" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="placestopper">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="marstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="marcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="symstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="symcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" generated="yes" variant="generated" file="strc-itm.mkvi">
+ <cd:sequence>
+ <cd:variable value="itemgroup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemgroup" type="environment" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="item" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemtag" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itm" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="but" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nop" variant="itemgroup" file="strc-itm.mkvi"/>
+
+ <cd:command name="txt" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="par"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headsym" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sym" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ran" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mar" variant="itemgroup" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sub" variant="itemgroup" file="strc-itm.mkvi"/>
+
+ <cd:command name="its" variant="itemgroup" file="strc-itm.mkvi"/>
+
+ <cd:command name="item" type="environment" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="head" type="environment" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="specialitem" type="environment" variant="1" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="item" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="specialitem" type="environment" variant="2" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="sym"/>
+ <cd:constant type="ran"/>
+ <cd:constant type="mar"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="specialitem" type="environment" variant="3" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="sub"/>
+ <cd:constant type="its"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="itemize" type="environment" file="strc-itm.mkvi">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitemgroup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-items.xml b/tex/context/interface/mkiv/i-items.xml
new file mode 100644
index 000000000..d3f68132a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-items.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineitems" file="typo-itm.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitems"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupitems" file="typo-itm.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="inmargin"/>
+ </cd:parameter>
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="margin"/>
+ </cd:parameter>
+ <cd:parameter name="textalign">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="flushleft" default="yes"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="items" file="typo-itm.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupitems"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-javascript.xml b/tex/context/interface/mkiv/i-javascript.xml
new file mode 100644
index 000000000..790d13523
--- /dev/null
+++ b/tex/context/interface/mkiv/i-javascript.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="JScode" type="environment" file="java-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ <cd:keywords delimiters="none">
+ <cd:constant type="uses"/>
+ </cd:keywords>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="JSpreamble" type="environment" file="java-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ <cd:keywords delimiters="none">
+ <cd:constant type="used"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none">
+ <cd:constant type="now"/>
+ <cd:constant type="later"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setJSpreamble" file="java-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="addtoJSpreamble" file="java-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useJSscripts" file="java-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-kerning.xml b/tex/context/interface/mkiv/i-kerning.xml
new file mode 100644
index 000000000..167bfc4f8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-kerning.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definecharacterkerning" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupcharacterkerning"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcharacterkerning" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="factor">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setcharacterkerning" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetcharacterkerning" file="typo-krn.mkiv"/>
+
+ <cd:command name="characterkerning" generated="yes" variant="generated" file="typo-krn.mkiv">
+ <cd:sequence>
+ <cd:variable value="characterkerning"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="kerncharacters" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letterspacing" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stretched" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupstretched"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstretched" file="typo-krn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupcharacterkerning"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-label.xml b/tex/context/interface/mkiv/i-label.xml
new file mode 100644
index 000000000..320c105f9
--- /dev/null
+++ b/tex/context/interface/mkiv/i-label.xml
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelabel" file="strc-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplabel"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabel" file="strc-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titledistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titlestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="titlecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="titlecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="starter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="counter">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <!-- begin construction values -->
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="top"/>
+ <cd:constant type="command"/>
+ <cd:constant type="intext" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="headalign">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="none"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <!-- end construction values -->
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setuplabels" file="strc-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplabel"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="label" generated="yes" variant="generated" file="strc-lab.mkiv">
+ <cd:sequence>
+ <cd:variable value="label"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentlabel" generated="yes" variant="generated" file="strc-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="current"/>
+ <cd:variable value="label"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-labeltext.xml b/tex/context/interface/mkiv/i-labeltext.xml
new file mode 100644
index 000000000..247783762
--- /dev/null
+++ b/tex/context/interface/mkiv/i-labeltext.xml
@@ -0,0 +1,496 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelabelclass" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="setup"/>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetlabeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="preset"/>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copylabeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="copy"/>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" type="environment" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labellanguage" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:variable value="label"/>
+ <cd:string value="language"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="labeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltexts" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:variable value="label"/>
+ <cd:string value="texts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftlabeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="left"/>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightlabeltext" generated="yes" variant="generated" file="lang-lab.mkiv">
+ <cd:sequence>
+ <cd:string value="right"/>
+ <cd:variable value="label"/>
+ <cd:string value="text"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copylabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltext" type="environment" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labellanguage" file="lang-lab.mkiv"/>
+
+ <cd:command name="labeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="labeltexts" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetheadtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyheadtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtext" type="environment" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headlanguage" file="lang-lab.mkiv"/>
+
+ <cd:command name="headtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headtexts" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftheadtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightheadtext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetmathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copymathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathlabeltext" type="environment" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathlabellanguage" file="lang-lab.mkiv"/>
+
+ <cd:command name="mathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathlabeltexts" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="leftmathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightmathlabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptaglabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presettaglabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copytaglabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="taglabeltext" type="environment" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="taglabellanguage" file="lang-lab.mkiv"/>
+
+ <cd:command name="taglabeltext" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunittext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetunittext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyunittext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unittext" type="environment" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unitlanguage" file="phys-dim.mkiv"/>
+
+ <cd:command name="unittext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoperatortext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetoperatortext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyoperatortext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="operatortext" type="environment" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="operatorlanguage" file="phys-dim.mkiv"/>
+
+ <cd:command name="operatortext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprefixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetprefixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyprefixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prefixtext" type="environment" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prefixlanguage" file="phys-dim.mkiv"/>
+
+ <cd:command name="prefixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+<!--
+
+ <cd:command name="setupsuffixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetsuffixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copysuffixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="suffixtext" type="environment" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="suffixlanguage" file="phys-dim.mkiv"/>
+
+ <cd:command name="suffixtext" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+-->
+
+ <cd:command name="setupbtxlabeltext" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="presetbtxlabeltext" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copybtxlabeltext" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="assignment-labeldata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxlabeltext" type="environment" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language-optional"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxlabellanguage" file="publ-ini.mkiv"/>
+
+ <cd:command name="btxlabeltext" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-language.xml b/tex/context/interface/mkiv/i-language.xml
new file mode 100644
index 000000000..26bdbf060
--- /dev/null
+++ b/tex/context/interface/mkiv/i-language.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="installlanguage" variant="1" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplanguage"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installlanguage" variant="2" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-language"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplanguage" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:language"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="default">
+ <cd:constant type="cd:language"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="date">
+ <cd:inherit name="currentdate"/>
+ </cd:parameter>
+ <cd:parameter name="patterns">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenmin">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenmin">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lefthyphenchar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="righthyphenchar">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="spacing">
+ <cd:constant type="broad" default="yes"/>
+ <cd:constant type="packed"/>
+ </cd:parameter>
+ <cd:parameter name="font">
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="hyphen">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="compoundhyphen">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="leftcompoundhyphen">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="rightcompoundhyphen">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="leftquote">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightquote">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftquotation">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightquotation">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightspeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftsentence">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="middlespeech">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightsentence">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="midsentence">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftsubsentence">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rightsubsentence">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselanguage" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-language"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflanguageelse" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-language"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepatterns" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-language"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpatternselse" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-language"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="language" generated="yes" variant="generated" file="lang-ini.mkiv">
+ <cd:sequence>
+ <cd:variable value="language"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="language" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mainlanguage" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uselanguageparameter" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="exceptions" type="environment" file="lang-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-language"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentlanguage" file="lang-ini.mkiv"/>
+
+ <cd:command name="currentmainlanguage" file="lang-ini.mkiv"/>
+
+ <cd:command name="commalistsentence" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-layer.xml b/tex/context/interface/mkiv/i-layer.xml
new file mode 100644
index 000000000..6be7cccc9
--- /dev/null
+++ b/tex/context/interface/mkiv/i-layer.xml
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuplayeredtext" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="layeredtext" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayeredtext"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelayeredtext" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayeredtext"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setlayerframed" variant="1" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setlayerframed" variant="2" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setlayertext" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="continue"/>
+ <cd:constant type="next"/>
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="region">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="rotation">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="position">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="corner">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top" default="yes"/>
+ <cd:constant type="bottom"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="grid"/>
+ <cd:resolve name="value-aligned"/>
+ </cd:parameter>
+ <cd:parameter name="line">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="column">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:parameter name="doublesided">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="fit"/>
+ <cd:constant type="overlay" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="lefttop"/>
+ <cd:constant type="righttop"/>
+ <cd:constant type="leftbottom"/>
+ <cd:constant type="rightbottom"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="middletop"/>
+ <cd:constant type="middlebottom"/>
+ <cd:constant type="middleleft"/>
+ <cd:constant type="middleright"/>
+ <cd:constant type="lefttopleft"/>
+ <cd:constant type="lefttopright"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tightlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="composedlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="even"/>
+ <cd:constant type="odd"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelayerpreset" variant="1" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelayerpreset" variant="2" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselayerdata" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflayerdataelse" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="layerwidth" file="pack-lyr.mkiv"/>
+
+ <cd:command name="layerheight" file="pack-lyr.mkiv"/>
+
+ <cd:command name="setMPlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getMPlayer" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-layout.xml b/tex/context/interface/mkiv/i-layout.xml
new file mode 100644
index 000000000..984995f10
--- /dev/null
+++ b/tex/context/interface/mkiv/i-layout.xml
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelayout" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayout"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" variant="1" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="edge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="edgedistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftedgedistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightedgedistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="headerdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="footerdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftedge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightedge">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="footer">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="cutspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="bottomspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="horoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="veroffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="columns">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="default"/>
+ <cd:constant type="normal" default="name"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="singlesided"/>
+ <cd:constant type="doublesided"/>
+ </cd:parameter>
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="page"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="color"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="textdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="default"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="makeup"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="cropoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="trimoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bleedoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="artoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayout" variant="2" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselayoutdefined" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflayoutdefinedelse" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptlayout" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="layout" type="environment" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseoddpage" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifoddpageelse" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifbothsidesoverruled" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifbothsides" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rightorleftpageaction" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showprint" file="page-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayout"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showframe" file="page-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="leftedge"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="text"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="rightedge"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsetups" file="page-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="pt" default="yes"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="cm" default="yes"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="nd"/>
+ <cd:constant type="nc"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="in"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showlayout" file="page-run.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="pt" default="yes"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="cm" default="yes"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="nd"/>
+ <cd:constant type="nc"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="in"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmargins" file="page-run.mkiv"/>
+
+ <cd:command name="spread" type="environment" file="page-spr.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-linenumber.xml b/tex/context/interface/mkiv/i-linenumber.xml
new file mode 100644
index 000000000..623595140
--- /dev/null
+++ b/tex/context/interface/mkiv/i-linenumber.xml
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelinenumbering" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinenumbering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenumbering" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="page"/>
+ <cd:constant type="first" default="yes"/>
+ <cd:constant type="next"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="text"/>
+ <cd:constant type="begin"/>
+ <cd:constant type="end"/>
+ <cd:constant type="default" default="yes"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="inmargin"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="flushleft"/>
+ <cd:constant type="flushright"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="margin"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" variant="1" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinenumbering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenumbering" type="environment" variant="2" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="continue"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someline" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startline" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stopline" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesamelinereference" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsamelinereferenceelse" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inline" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinerange" file="page-lin.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-lines.xml b/tex/context/interface/mkiv/i-lines.xml
new file mode 100644
index 000000000..fc8032448
--- /dev/null
+++ b/tex/context/interface/mkiv/i-lines.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="noflines" file="supp-box.mkiv"/>
+
+ <cd:command name="getnoflines" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getroundednoflines" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrawnoflines" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinenoflines" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelines" file="spac-lin.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplines"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplines" file="spac-lin.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="packed"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="yes"/>
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="default" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment" generated="yes" variant="generated" file="spac-lin.mkiv">
+ <cd:sequence>
+ <cd:variable value="lines"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplines"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lines" type="environment" file="spac-lin.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplines"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="emptylines" file="spac-lin.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-linetable.xml b/tex/context/interface/mkiv/i-linetable.xml
new file mode 100644
index 000000000..a10479161
--- /dev/null
+++ b/tex/context/interface/mkiv/i-linetable.xml
@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuplinetable" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="r"/>
+ <cd:constant type="c"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="header"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <!-- begin root only -->
+ <cd:parameter name="lines">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="fit"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="nleft">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <!-- end root only -->
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit" default="yes"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="color"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="xheight">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xdepth">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linetablecell" type="environment" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinetable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linetable" type="environment" file="tabl-ltb.mkiv"/>
+
+ <cd:command name="linetablehead" type="environment" file="tabl-ltb.mkiv"/>
+
+ <cd:command name="linetablebody" type="environment" file="tabl-ltb.mkiv"/>
+
+ <cd:command name="processlinetablebuffer" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-buffer-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processlinetablefile" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="BC" scope="linetable" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinetable"/>
+ </cd:assignments>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="EC"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="BR" scope="linetable" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="ER"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="BH" scope="linetable" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="EH"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NC" scope="linetable" file="tabl-ltb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinetable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NR" scope="linetable" file="tabl-ltb.mkiv"/>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-linewidth.xml b/tex/context/interface/mkiv/i-linewidth.xml
new file mode 100644
index 000000000..65a967954
--- /dev/null
+++ b/tex/context/interface/mkiv/i-linewidth.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuplinewidth" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linewidth" file="pack-rul.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-list.xml b/tex/context/interface/mkiv/i-list.xml
new file mode 100644
index 000000000..38e534252
--- /dev/null
+++ b/tex/context/interface/mkiv/i-list.xml
@@ -0,0 +1,620 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-list-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="none"/>
+ <cd:constant type="here"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="simple"/>
+ <cd:constant type="command"/>
+ <cd:constant type="userdata"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="reference"/>
+ <cd:constant type="reference" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="all"/>
+ <cd:constant type="all" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="text"/>
+ <cd:constant type="text" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="current"/>
+ <cd:constant type="current" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="here"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="previous" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="component"/>
+ <cd:constant type="cd:section"/>
+ <cd:constant type="cd:section" prefix="cd:sectionblock" method="range"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad" default="yes"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ <cd:constant type="three"/>
+ <cd:constant type="none"/>
+ <cd:constant type="default" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="label">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="starter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threeargument"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="pagecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="always"/>
+ </cd:parameter>
+ <cd:parameter name="headnumber">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="always"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aligntitle">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="numberalign">
+ <cd:resolve name="value-alignsimple"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="number"/>
+ <cd:constant type="text"/>
+ <cd:constant type="title"/>
+ <cd:constant type="page"/>
+ <cd:constant type="sectionnumber"/>
+ <cd:constant type="pagenumber"/>
+ </cd:parameter>
+ <cd:parameter name="limittext">
+ <cd:resolve name="value-limittext"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="numberstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="numbercolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="pagestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="pagecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="extras">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="order">
+ <cd:constant type="command"/>
+ <cd:constant type="all"/>
+ <cd:constant type="title"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b" default="yes"/>
+ <cd:constant type="c"/>
+ <cd:constant type="d"/>
+ <cd:constant type="e"/>
+ <cd:constant type="f"/>
+ <cd:constant type="g"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="command"/>
+ <cd:constant type="none"/>
+ <cd:constant type="interactive"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconnector">
+ <cd:resolve name="value-connector"/>
+ </cd:parameter>
+ <cd:parameter name="pageconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagestarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="pagestopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="prefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefixseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="prefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconnector">
+ <cd:resolve name="value-connector"/>
+ </cd:parameter>
+ <cd:parameter name="numberseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="numberstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="numbersegments">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:parameter>
+ -->
+ <cd:inherit name="setupcounter"/>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setuplists" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="doifelselist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflistelse" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writebetweenlist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writedatatolist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="writetolist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placerawlist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecombinedlist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-list-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcombinedlist" generated="yes" variant="generated" file="strc-lst.mkvi">
+ <cd:sequence>
+ <cd:string value="setup"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecombinedlist" generated="yes" variant="generated" file="strc-lst.mkvi">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecombinedlist" generated="yes" variant="generated" file="strc-lst.mkvi">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="combinedlist"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupcontent" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecontent" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completecontent" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="structurelistuservariable" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawstructurelistuservariable" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsestructurelisthaspage" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifstructurelisthaspageelse" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsestructurelisthasnumber" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifstructurelisthasnumberelse" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelistextra" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplistextra"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistextra" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelistalternative" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplistalternative"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplistalternative" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="renderingsetup">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="stretch">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="filler">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determinelistcharacteristics" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-list-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentlistentrynumber" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentrytitle" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentrytitlerendered" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentrypagenumber" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistsymbol" file="strc-lst.mkvi"/>
+
+ <cd:command name="listlength" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentrywrapper" type="environment" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentryreferenceattribute" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="number"/>
+ <cd:constant type="text"/>
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="all"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentlistentrydestinationattribute" file="strc-lst.mkvi"/>
+
+ <cd:command name="currentlistentrylimitedtext" file="strc-lst.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-logo.xml b/tex/context/interface/mkiv/i-logo.xml
new file mode 100644
index 000000000..e3327400a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-logo.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="TeX" file="cont-log.mkiv"/>
+
+ <cd:command name="ConTeXt" file="cont-log.mkiv"/>
+
+ <cd:command name="PPCHTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="PRAGMA" file="cont-log.mkiv"/>
+
+ <cd:command name="LaTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="TaBlE" file="cont-log.mkiv"/>
+
+ <cd:command name="PiCTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="AmSTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="LamSTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="Context" file="cont-log.mkiv"/>
+
+ <cd:command name="MetaFont" file="cont-log.mkiv"/>
+
+ <cd:command name="MetaPost" file="cont-log.mkiv"/>
+
+ <cd:command name="MetaFun" file="cont-log.mkiv"/>
+
+ <cd:command name="eTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="pdfTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="pdfeTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="Lua" file="cont-log.mkiv"/>
+
+ <cd:command name="luaTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="luajitTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="metaTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="XeTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="LuaTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="LuajitTeX" file="cont-log.mkiv"/>
+
+ <cd:command name="MKII" file="cont-log.mkiv"/>
+
+ <cd:command name="MKIV" file="cont-log.mkiv"/>
+
+ <cd:command name="MKVI" file="cont-log.mkiv"/>
+
+ <cd:command name="MKIX" file="cont-log.mkiv"/>
+
+ <cd:command name="MKXI" file="cont-log.mkiv"/>
+
+ <cd:command name="MPII" file="cont-log.mkiv"/>
+
+ <cd:command name="MPIV" file="cont-log.mkiv"/>
+
+ <cd:command name="MPVI" file="cont-log.mkiv"/>
+
+ <cd:command name="METAFONT" file="cont-log.mkiv"/>
+
+ <cd:command name="METAPOST" file="cont-log.mkiv"/>
+
+ <cd:command name="PPCHTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="CONTEXT" file="cont-log.mkiv"/>
+
+ <cd:command name="METAFUN" file="cont-log.mkiv"/>
+
+ <cd:command name="TEX" file="cont-log.mkiv"/>
+
+ <cd:command name="LATEX" file="cont-log.mkiv"/>
+
+ <cd:command name="PICTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="TABLE" file="cont-log.mkiv"/>
+
+ <cd:command name="AMSTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="LAMSTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="INRSTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="ETEX" file="cont-log.mkiv"/>
+
+ <cd:command name="PDFTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="PDFETEX" file="cont-log.mkiv"/>
+
+ <cd:command name="LUATEX" file="cont-log.mkiv"/>
+
+ <cd:command name="LUAJITTEX" file="cont-log.mkiv"/>
+
+ <cd:command name="XETEX" file="cont-log.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-lohi.xml b/tex/context/interface/mkiv/i-lohi.xml
new file mode 100644
index 000000000..7cfd489eb
--- /dev/null
+++ b/tex/context/interface/mkiv/i-lohi.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definelow" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplow"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplow" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="down">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" generated="yes" variant="generated" file="typo-scr.mkiv">
+ <cd:sequence>
+ <cd:variable value="low"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="low" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definehigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuphigh"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="up">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" generated="yes" variant="generated" file="typo-scr.mkiv">
+ <cd:sequence>
+ <cd:variable value="high"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="high" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelowhigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplowhigh"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplowhigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="up">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="down">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lowhigh" generated="yes" variant="generated" file="typo-scr.mkiv">
+ <cd:sequence>
+ <cd:variable value="lowhigh"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:keywords>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lohi" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:keywords>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hilo" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:keywords>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelowmidhigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplowmidhigh"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplowmidhigh" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="up">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="down">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lowmidhigh" generated="yes" variant="generated" file="typo-scr.mkiv">
+ <cd:sequence>
+ <cd:variable value="lowmidhigh"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lomihi" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="himilo" file="typo-scr.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-lua.xml b/tex/context/interface/mkiv/i-lua.xml
new file mode 100644
index 000000000..525753723
--- /dev/null
+++ b/tex/context/interface/mkiv/i-lua.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="taggedctxcommand" file="back-exp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luafunction" file="cldf-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cldprocessfile" file="cldf-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cldloadfile" file="cldf-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cldcontext" file="cldf-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cldcommand" file="cldf-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxdirectlua" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxlatelua" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxsprint" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxcommand" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxdirectcommand" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxlatecommand" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxreport" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxlua" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luacode" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lateluacode" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directluacode" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luaversion" file="luat-cod.mkiv"/>
+
+ <cd:command name="registerctxluafile" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxloadluafile" file="luat-cod.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lua" type="environment" file="luat-ini.mkiv"/>
+
+ <cd:command name="luacode" type="environment" file="luat-ini.mkiv"/>
+
+ <cd:command name="luamajorversion" file="luat-ini.mkiv"/>
+
+ <cd:command name="luaminorversion" file="luat-ini.mkiv"/>
+
+ <cd:command name="luaexpanded" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luaparameterset" type="environment" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luaparameterset" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luaconditional" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxluacode" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxfunctiondefinition" type="environment" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxfunctiondefinition" generated="yes" variant="generated" file="luat-ini.mkiv">
+ <cd:sequence>
+ <cd:variable value="ctxfunctiondefinition"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="ctxfunction" type="environment" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxfunction" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ctxfunction" generated="yes" variant="generated" file="luat-ini.mkiv">
+ <cd:sequence>
+ <cd:variable value="ctxfunction"/>
+ </cd:sequence>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-makeup.xml b/tex/context/interface/mkiv/i-makeup.xml
new file mode 100644
index 000000000..2128464ef
--- /dev/null
+++ b/tex/context/interface/mkiv/i-makeup.xml
@@ -0,0 +1,180 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemakeup" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmakeup" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="top"/>
+ </cd:parameter>
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="headerstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ <cd:constant type="high"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="footerstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ <cd:constant type="high"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="topstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="high"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="bottomstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="high"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="textstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="high"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="doublesided">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="empty" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:inherit name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command file="page-mak.mkvi" name="makeup" type="environment">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command file="page-mak.mkvi" generated="yes" name="makeup" type="environment" variant="generated">
+ <cd:sequence>
+ <cd:variable value="makeup"/>
+ <cd:string value="makeup"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ <cd:instances>
+ <cd:constant value="standard"/>
+ <cd:constant value="page"/>
+ <cd:constant value="text"/>
+ <cd:constant value="middle"/>
+ </cd:instances>
+ </cd:command>
+
+
+ <!--
+
+ <cd:command name="standardmakeup" type="environment" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textmakeup" type="environment" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagemakeup" type="environment" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="middlemakeup" type="environment" file="page-mak.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmakeup"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-marginblock.xml b/tex/context/interface/mkiv/i-marginblock.xml
new file mode 100644
index 000000000..f40bf112a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-marginblock.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemarginblock" file="page-mbk.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginblock" file="page-mbk.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="inmargin" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupmarginblocks" file="page-mbk.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupmarginblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="marginblock" type="environment" file="page-mbk.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-margindata.xml b/tex/context/interface/mkiv/i-margindata.xml
new file mode 100644
index 000000000..5a2b014ea
--- /dev/null
+++ b/tex/context/interface/mkiv/i-margindata.xml
@@ -0,0 +1,469 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemargindata" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmargindata" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="strut">
+ <cd:resolve name="value-strut"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="anchor">
+ <cd:constant type="region"/>
+ <cd:constant type="text" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="top"/>
+ <cd:constant type="line"/>
+ <cd:constant type="first"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="height"/>
+ </cd:parameter>
+ <cd:parameter name="category">
+ <cd:constant type="default"/>
+ <cd:constant type="edge"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="name">
+ <cd:constant type="???"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="scope">
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="text"/>
+ <cd:constant type="paragraph"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="local"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="threshold">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="line">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stack">
+ <cd:constant type="yes"/>
+ <cd:constant type="continue"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="definemarginframed" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setupmarginframed" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="margindata" generated="yes" variant="generated" file="typo-mar.mkiv">
+ <cd:sequence>
+ <cd:variable value="margindata"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="margindata" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleftmargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inrightmargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inoutermargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininnermargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleftedge" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inrightedge" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininneredge" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouteredge" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atleftmargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atrightmargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inleft" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inright" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ininner" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inouter" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inmargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inother" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="margintext" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginword" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="margintitle" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="inothermargin" file="typo-mar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="reference">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupmargindata"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-marker.xml b/tex/context/interface/mkiv/i-marker.xml
new file mode 100644
index 000000000..103fc5e55
--- /dev/null
+++ b/tex/context/interface/mkiv/i-marker.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemarker" file="attr-mkr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmarker" file="attr-mkr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarker" file="attr-mkr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="boxmarker" file="attr-mkr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-marking.xml b/tex/context/interface/mkiv/i-marking.xml
new file mode 100644
index 000000000..a556f1007
--- /dev/null
+++ b/tex/context/interface/mkiv/i-marking.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-mark-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarking"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="filtercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="relatemarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:resolve name="keyword-mark"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizemarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="keep"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsemarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-mark"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmarkingelse" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-mark"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getmarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="page" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-markposition"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchonemark" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-markposition"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchtwomarks" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchallmarks" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchmark" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-markposition"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchmarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords>
+ <cd:constant type="page"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:resolve name="value-markposition"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchonemarking" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords>
+ <cd:constant type="page"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:resolve name="value-markposition"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchtwomarkings" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords>
+ <cd:constant type="page"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fetchallmarkings" file="strc-mar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-mark"/>
+ <cd:keywords>
+ <cd:constant type="page"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-math.xml b/tex/context/interface/mkiv/i-math.xml
new file mode 100644
index 000000000..3381a4273
--- /dev/null
+++ b/tex/context/interface/mkiv/i-math.xml
@@ -0,0 +1,462 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathematics" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathematics"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathematics" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="openup">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="symbolset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="functionstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="compact">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="l2r" default="yes"/>
+ <cd:constant type="r2l"/>
+ </cd:parameter>
+ <cd:parameter name="bidi">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="sygreek">
+ <cd:constant type="normal"/>
+ <cd:constant type="italic" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="lcgreek">
+ <cd:constant type="normal"/>
+ <cd:constant type="italic" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="ucgreek">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="italic"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="italics">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3" default="yes"/>
+ <cd:constant type="4"/>
+ <cd:constant type="none"/>
+ <cd:constant type="reset"/>
+ </cd:parameter>
+ <cd:parameter name="autopunctuation">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="domain">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="reset"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="functioncolor">
+ <cd:resolve name="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="integral">
+ <cd:constant type="limits"/>
+ <cd:constant type="nolimits"/>
+ <cd:constant type="autolimits" default="yes"/>
+ <cd:constant type="displaylimits"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="normal"/>
+ <cd:constant type="italic" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlineordisplaymath" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathematics" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="math" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="m" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathcommand" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="ord"/>
+ <cd:constant type="op"/>
+ <cd:constant type="bin"/>
+ <cd:constant type="rel"/>
+ <cd:constant type="open"/>
+ <cd:constant type="close"/>
+ <cd:constant type="punct"/>
+ <cd:constant type="alpha"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="nothing" default="yes"/>
+ <cd:constant type="limop"/>
+ <cd:constant type="nolop"/>
+ <cd:constant type="box"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="one"/>
+ <cd:constant type="two"/>
+ </cd:keywords>
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="cd:command"/>
+ <cd:constant type="cd:oneargument"/>
+ <cd:constant type="cd:twoarguments"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathcommand" generated="yes" variant="generated" file="math-ini.mkiv">
+ <cd:sequence>
+ <cd:variable value="mathcommand"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathcommand" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathop" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mbox" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mtext" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathfunction" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mfunction" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mfunctionlabeltext" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stackrel" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="apply" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathstyle" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-mathstyle"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathstyle" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-mathstyle"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmathstyle" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:resolve name="value-mathstyle"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathstyle" type="environment" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-mathstyle"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathstyle" type="environment" begin="push" end="pop" file="math-ini.mkiv"/>
+
+ <cd:command name="usemathstyleparameter" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usemathstyleparameter" type="environment" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtext" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtexttf" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtextit" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtextsl" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtextbf" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtextbi" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtextbs" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathword" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordtf" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordit" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordsl" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordbf" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordbi" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathwordbs" file="math-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathrm" file="math-ini.mkiv"/>
+
+ <cd:command name="mathss" file="math-ini.mkiv"/>
+
+ <cd:command name="mathtt" file="math-ini.mkiv"/>
+
+ <cd:command name="mathtf" file="math-ini.mkiv"/>
+
+ <cd:command name="mathsl" file="math-ini.mkiv"/>
+
+ <cd:command name="mathit" file="math-ini.mkiv"/>
+
+ <cd:command name="mathbf" file="math-ini.mkiv"/>
+
+ <cd:command name="mathbi" file="math-ini.mkiv"/>
+
+ <cd:command name="mathbs" file="math-ini.mkiv"/>
+
+ <cd:command name="mathitalic" file="math-ini.mkiv"/>
+
+ <cd:command name="mathupright" file="math-ini.mkiv"/>
+
+ <cd:command name="mathdefault" file="math-ini.mkiv"/>
+
+ <cd:command name="mathscript" file="math-ini.mkiv"/>
+
+ <cd:command name="mathfraktur" file="math-ini.mkiv"/>
+
+ <cd:command name="mathblackboard" file="math-ini.mkiv"/>
+
+ <cd:command name="displaymath" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinemath" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textmath" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="imath" type="environment" file="supp-mat.mkiv"/>
+
+ <cd:command name="dmath" type="environment" file="supp-mat.mkiv"/>
+
+ <cd:command name="mathmode" type="environment" file="supp-mat.mkiv"/>
+
+ <cd:command name="nonmathematics" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="displaymathematics" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inlinemathematics" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="automathematics" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cramped" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="crampedllap" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="crampedrlap" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="crampedclap" file="supp-mat.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-mathalignment.xml b/tex/context/interface/mkiv/i-mathalignment.xml
new file mode 100644
index 000000000..cc0ff6fa7
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathalignment.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathalignment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathalignment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathalignment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathalignment" type="environment" generated="yes" variant="generated" file="math-ali.mkiv">
+ <cd:sequence>
+ <cd:variable value="mathalignment"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathalignment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathalignment" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathalignment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="align" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathalignment"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-mathcases.xml b/tex/context/interface/mkiv/i-mathcases.xml
new file mode 100644
index 000000000..9744fa9e5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathcases.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathcases" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathcases"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathcases" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="numberdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathcases" type="environment" generated="yes" variant="generated" file="math-ali.mkiv">
+ <cd:sequence>
+ <cd:variable value="mathcases"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathcases"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathcases" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathcases"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cases" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathcases"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-mathfence.xml b/tex/context/interface/mkiv/i-mathfence.xml
new file mode 100644
index 000000000..b23f8558e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathfence.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathfence" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathfence"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathfence" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="command">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="mathstyle">
+ <cd:resolve name="value-mathstyle"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fence" generated="yes" variant="generated" file="math-fen.mkiv">
+ <cd:sequence>
+ <cd:variable value="fence"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fenced" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fence" file="math-fen.mkiv"/>
+
+ <cd:command name="left" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="middle" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="right" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="big" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Big" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bigg" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Bigg" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bigl" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bigm" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bigr" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Bigl" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Bigm" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Bigr" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="biggl" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="biggm" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="biggr" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Biggl" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Biggm" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Biggr" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lfence" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mfence" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rfence" file="math-fen.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkedfences" type="environment" file="math-fen.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-mathmatrix.xml b/tex/context/interface/mkiv/i-mathmatrix.xml
new file mode 100644
index 000000000..a934d2b31
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathmatrix.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathmatrix" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathmatrix"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathmatrix" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="lohi"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathmatrix" type="environment" generated="yes" variant="generated" file="math-ali.mkiv">
+ <cd:sequence>
+ <cd:variable value="mathmatrix"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathmatrix"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathmatrix" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathmatrix"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="matrix" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathmatrix"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="matrices" type="environment" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathmatrix"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="intertext" type="environment" file="math-ali.mkiv"/>
+
+ <cd:command name="intertext" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="substack" type="environment" file="math-ali.mkiv"/>
+
+ <cd:command name="overset" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underset" file="math-ali.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-mathornament.xml b/tex/context/interface/mkiv/i-mathornament.xml
new file mode 100644
index 000000000..6009b7921
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathornament.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathornament" file="math-rad.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathornament"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathornament" file="math-rad.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="mp"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="mpoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathornament" generated="yes" variant="generated" file="math-rad.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathornament"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-mathradical.xml b/tex/context/interface/mkiv/i-mathradical.xml
new file mode 100644
index 000000000..cedbb4200
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathradical.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathradical" file="math-rad.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathradical"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathradical" file="math-rad.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="default"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="mp"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="mpoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathradical" generated="yes" variant="generated" file="math-rad.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathradical"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sqrt" file="math-rad.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-text-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-mathstackers.xml b/tex/context/interface/mkiv/i-mathstackers.xml
new file mode 100644
index 000000000..37b5737ff
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mathstackers.xml
@@ -0,0 +1,1789 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemathstackers" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmathstackers"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmathstackers" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="topcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="bottomcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="middlecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="mpheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mpdepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mpoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="minheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mindepth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="mathclass">
+ <cd:constant type="rel" default="yes"/>
+ <cd:constant type="ord"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="min"/>
+ <cd:constant type="max"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="top" default="yes"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normal"/>
+ <cd:constant type="default"/>
+ <cd:constant type="mp"/>
+ </cd:parameter>
+ <cd:parameter name="minwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="moffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="order">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:parameter name="mathlimits">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathoverextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="vfenced"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathoverextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathoverextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathunderextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="bottom"/>
+ <cd:constant type="vfenced"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathunderextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathunderextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathdoubleextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="both"/>
+ <cd:constant type="vfenced"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathdoubleextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathdoubleextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathovertextextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="bothtext"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathovertextextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathovertextextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathundertextextensible" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="bothtext"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathundertextextensible" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathundertextextensible"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemathtriplet" file="math-sty.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtriplet" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathtriplet"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathtriplet" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xequal" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xleftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xLeftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xRightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xLeftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtwoheadleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtwoheadrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmapsto" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xhookleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xhookrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xleftharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xleftharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrightharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrightharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrightoverleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xleftrightharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrightleftharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtriplerel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mequal" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mleftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mLeftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mRightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mLeftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mtwoheadleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mtwoheadrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mmapsto" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mhookleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mhookrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mleftharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mleftharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrightharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrightharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrightoverleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mleftrightharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mrightleftharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mtriplerel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eleftarrowfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="erightarrowfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eleftrightarrowfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="etwoheadrightarrowfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eleftharpoondownfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eleftharpoonupfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="erightharpoondownfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="erightharpoonupfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eoverbarfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eunderbarfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eoverbracefill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eunderbracefill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eoverparentfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eunderparentfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eoverbracketfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="eunderbracketfill" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tequal" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tmapsto" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tleftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tLeftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tRightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tLeftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ttwoheadleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ttwoheadrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thookleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thookrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tleftharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tleftharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trightharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trightharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trightoverleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tleftrightharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="trightleftharpoons" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ttriplerel" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="crightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="crightoverleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <!--
+ <cd:keywords optional="yes">
+ <cd:constant type="reverse"/>
+ <cd:constant type="mathematics"/>
+ <cd:constant type="text"/>
+ <cd:constant type="chemistry"/>
+ </cd:keywords>
+ -->
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underleftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="undertwoheadleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="undertwoheadrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underleftharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underleftharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underrightharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underrightharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbar" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbrace" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underparent" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbracket" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overleftrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overtwoheadleftarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overtwoheadrightarrow" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overleftharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overleftharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overrightharpoondown" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overrightharpoonup" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbar" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbrace" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overparent" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbracket" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doublebar" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doublebrace" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doubleparent" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doublebracket" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbarunderbar" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbraceunderbrace" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overparentunderparent" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbracketunderbracket" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbartext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbracetext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overparenttext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overbrackettext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbartext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbracetext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underparenttext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="underbrackettext" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="singlebond" file="math-stc.mkvi"/>
+
+ <cd:command name="doublebond" file="math-stc.mkvi"/>
+
+ <cd:command name="triplebond" file="math-stc.mkvi"/>
+
+ <cd:command name="definemathunstacked" file="math-stc.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="wide"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mathunstacked" generated="yes" variant="generated" file="math-stc.mkvi">
+ <cd:sequence>
+ <cd:variable value="mathunstacked"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="And" file="math-stc.mkvi"/>
+
+ <cd:command name="impliedby" file="math-stc.mkvi"/>
+
+ <cd:command name="implies" file="math-stc.mkvi"/>
+
+ <cd:command name="iff" file="math-stc.mkvi"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-metapost.xml b/tex/context/interface/mkiv/i-metapost.xml
new file mode 100644
index 000000000..ca15ebb9d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-metapost.xml
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="MPdefinitions" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPextensions" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPinitializations" type="environment" file="meta-ini.mkiv"/>
+
+ <cd:command name="MPinclusions" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="+"/>
+ </cd:keywords>
+ <cd:resolve name="argument-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPinclusions" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="+"/>
+ </cd:keywords>
+ <cd:resolve name="argument-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineMPinstance" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupMPinstance"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupMPinstance" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="format">
+ <cd:constant type="metafun" default="yes"/>
+ <cd:constant type="mpost"/>
+ </cd:parameter>
+ <cd:parameter name="initializations">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="extensions">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="binary"/>
+ <cd:constant type="decimal"/>
+ <cd:constant type="double"/>
+ <cd:constant type="scaled"/>
+ <cd:constant type="default" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetMPinstance" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processMPfigurefile" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPdrawing" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="-"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetMPdrawing" file="meta-ini.mkiv"/>
+
+ <cd:command name="getMPdrawing" file="meta-ini.mkiv"/>
+
+ <cd:command name="MPdrawing" type="environment" begin="push" end="pop" file="meta-ini.mkiv"/>
+
+ <cd:command name="MPdrawing" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPclip" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPfontsizehskip" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupMPvariables" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setMPvariables" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setMPvariable" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-userdata"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPrawvar" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPvariable" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPvar" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useMPvariables" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-key-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uniqueMPgraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uniqueMPgraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useMPgraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useMPgraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usableMPgraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reuseMPgraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reusableMPgraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reusableMPgraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uniqueMPpagegraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uniqueMPpagegraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processMPbuffer" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="runMPbuffer" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPenvironment" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="global"/>
+ <cd:constant type="+"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetMPenvironment" file="meta-ini.mkiv"/>
+
+ <cd:command name="useMPenvironmentbuffer" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPcode" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPcode" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPrun" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useMPrun" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useMPlibrary" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setMPtext" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPtext" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPstring" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPbetex" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseMPgraphic" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifMPgraphicelse" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="staticMPfigure" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="staticMPgraphic" type="environment" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usestaticMPfigure" file="meta-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupscale"/>
+ </cd:assignments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupMPgraphics" file="meta-ini">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="color">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="mpy">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-mixedcolumns.xml b/tex/context/interface/mkiv/i-mixedcolumns.xml
new file mode 100644
index 000000000..09e0f3b34
--- /dev/null
+++ b/tex/context/interface/mkiv/i-mixedcolumns.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definemixedcolumns" file="page-mix.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmixedcolumns"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmixedcolumns" file="page-mix.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="grid">
+ <cd:inherit name="setupgrid"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="otr"/>
+ <cd:constant type="box"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="profile">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="splitmethod">
+ <cd:constant type="none"/>
+ <cd:constant type="fixed"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="internalgrid">
+ <cd:constant type="line" default="yes"/>
+ <cd:constant type="halfline"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="rule"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mixedcolumns" type="environment" file="page-mix.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmixedcolumns"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mixedcolumns" type="environment" generated="yes" variant="generated" file="page-mix.mkiv">
+ <cd:sequence>
+ <cd:variable value="mixedcolumns"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmixedcolumns"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="boxedcolumns" type="environment" file="page-mix.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmixedcolumns"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-modes.xml b/tex/context/interface/mkiv/i-modes.xml
new file mode 100644
index 000000000..8df4c27f6
--- /dev/null
+++ b/tex/context/interface/mkiv/i-modes.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="newmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="newsystemmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setsystemmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetsystemmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="preventmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enablemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disablemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalpreventmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalenablemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globaldisablemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="keep"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="booleanmodevalue" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsemode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmodeelse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mode" type="environment" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="notmode" type="environment" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseallmodes" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifallmodeselse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifallmodes" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotallmodes" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="allmodes" type="environment" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="notallmodes" type="environment" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="modeset" type="environment" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pushmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="popmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pushsystemmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="popsystemmode" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-modules.xml b/tex/context/interface/mkiv/i-modules.xml
new file mode 100644
index 000000000..9567cb9af
--- /dev/null
+++ b/tex/context/interface/mkiv/i-modules.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="usemodule" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="m"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="x"/>
+ <cd:constant type="t"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-file-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="usemodules" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="m"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="x"/>
+ <cd:constant type="t"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-file-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="usetexmodule" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="m"/>
+ <cd:constant type="p"/>
+ <cd:constant type="s"/>
+ <cd:constant type="x"/>
+ <cd:constant type="t"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-file-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="module" type="environment" variant="1" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="module" type="environment" variant="2" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmodule" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="test">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moduleparameter" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentmoduleparameter" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="moduletestsection" type="environment" file="file-mod.mkvi"/>
+
+ <cd:command name="fetchruntinecommand" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luaenvironment" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="string-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useluamodule" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-narrow.xml b/tex/context/interface/mkiv/i-narrow.xml
new file mode 100644
index 000000000..1fa8699e1
--- /dev/null
+++ b/tex/context/interface/mkiv/i-narrow.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definenarrower" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnarrower"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnarrower" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="left">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="middle">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="default">
+ <cd:constant type="left" prefix="cd:sign" method="none"/>
+ <cd:constant type="middle" prefix="cd:sign" method="none" default="yes"/>
+ <cd:constant type="right" prefix="cd:sign" method="none"/>
+ <cd:constant type="left" prefix="cd:number" method="factor"/>
+ <cd:constant type="middle" prefix="cd:number" method="factor"/>
+ <cd:constant type="right" prefix="cd:number" method="factor"/>
+ <cd:constant type="reset"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="left" prefix="cd:sign" method="none"/>
+ <cd:constant type="middle" prefix="cd:sign" method="none"/>
+ <cd:constant type="right" prefix="cd:sign" method="none"/>
+ <cd:constant type="left" prefix="cd:number" method="factor"/>
+ <cd:constant type="middle" prefix="cd:number" method="factor"/>
+ <cd:constant type="right" prefix="cd:number" method="factor"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="narrower" type="environment" generated="yes" variant="generated" file="spac-hor.mkiv">
+ <cd:sequence>
+ <cd:variable value="narrower"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="left" prefix="cd:sign" method="none"/>
+ <cd:constant type="middle" prefix="cd:sign" method="none"/>
+ <cd:constant type="right" prefix="cd:sign" method="none"/>
+ <cd:constant type="left" prefix="cd:number" method="factor"/>
+ <cd:constant type="middle" prefix="cd:number" method="factor"/>
+ <cd:constant type="right" prefix="cd:number" method="factor"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="narrow" type="environment" variant="1" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnarrower"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="narrow" type="environment" variant="2" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="left" prefix="cd:sign" method="none"/>
+ <cd:constant type="middle" prefix="cd:sign" method="none"/>
+ <cd:constant type="right" prefix="cd:sign" method="none"/>
+ <cd:constant type="left" prefix="cd:number" method="factor"/>
+ <cd:constant type="middle" prefix="cd:number" method="factor"/>
+ <cd:constant type="right" prefix="cd:number" method="factor"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="narrow" type="environment" variant="3" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnarrower"/>
+ </cd:assignments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="left" prefix="cd:sign" method="none"/>
+ <cd:constant type="middle" prefix="cd:sign" method="none"/>
+ <cd:constant type="right" prefix="cd:sign" method="none"/>
+ <cd:constant type="left" prefix="cd:number" method="factor"/>
+ <cd:constant type="middle" prefix="cd:number" method="factor"/>
+ <cd:constant type="right" prefix="cd:number" method="factor"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-naturaltable.xml b/tex/context/interface/mkiv/i-naturaltable.xml
new file mode 100644
index 000000000..d7ba1aac8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-naturaltable.xml
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupTABLE" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="r"/>
+ <cd:constant type="c"/>
+ <cd:constant type="x"/>
+ <cd:constant type="y"/>
+ <cd:constant type="row"/>
+ <cd:constant type="column"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="start"/>
+ <cd:constant type="header"/>
+ <cd:constant type="each"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="one"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="-" method="none"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="first"/>
+ <cd:constant type="least"/>
+ <cd:constant type="each"/>
+ <cd:constant type="two"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="even"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="-" method="none"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="extras">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="local" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="stretch"/>
+ <cd:constant type="tight"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="samepage">
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ <cd:constant type="both"/>
+ </cd:parameter>
+ <cd:parameter name="spaceinbetween">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="splitoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="aligncharacter">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="alignmentcharacter">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLE" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TD" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nc">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nr">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="action">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TR" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TC" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="bTD"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TX" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="bTD"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TY" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TH" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="bTD"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TN" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="bTD"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEhead" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEnext" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEbody" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEfoot" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineTABLEsetup" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TDs" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TRs" type="environment" begin="b" end="e" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLE" type="environment" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEhead" type="environment" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEnext" type="environment" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEbody" type="environment" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TABLEfoot" type="environment" file="tabl-ntb.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupTABLE"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-note.xml b/tex/context/interface/mkiv/i-note.xml
new file mode 100644
index 000000000..dacdfeb0b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-note.xml
@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!--
+
+ <cd:command name="definenotation" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnotation"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setupnotation" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="note"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titledistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="titlestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="titlecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="titlecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="titleleft">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="titleright">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="starter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="counter">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <!-- begin construction values -->
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="headcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="leftmargin"/>
+ <cd:constant type="rightmargin"/>
+ <cd:constant type="innermargin"/>
+ <cd:constant type="outermargin"/>
+ <cd:constant type="serried"/>
+ <cd:constant type="hanging"/>
+ <cd:constant type="top"/>
+ <cd:constant type="command"/>
+ <cd:constant type="note" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="headalign">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:inherit name="setupindenting"/>
+ </cd:parameter>
+ <cd:parameter name="display">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="none"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="closesymbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="closecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="sample">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="headstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="headcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <!-- end construction values -->
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupnotations" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupnotation"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="note" type="environment" generated="yes" variant="generated:1" file="strc-not.mkvi">
+ <cd:sequence>
+ <cd:variable value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" type="environment" generated="yes" variant="generated:2" file="strc-not.mkvi">
+ <cd:sequence>
+ <cd:variable value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" generated="yes" variant="generated:1" file="strc-not.mkvi">
+ <cd:sequence>
+ <cd:variable value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" generated="yes" variant="generated:2" file="strc-not.mkvi">
+ <cd:sequence>
+ <cd:variable value="note"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definenote" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupnote" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="interaction">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="number"/>
+ <cd:constant type="text"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="symbolcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="indicator">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="textseparator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecommand">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="command"/>
+ <cd:constant type="paragraph"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="tolerant" default="yes"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="verystrict"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="text"/>
+ <cd:constant type="page"/>
+ <cd:constant type="high"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="none"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="firstcolumn"/>
+ <cd:constant type="lastcolumn"/>
+ </cd:parameter>
+ <cd:parameter name="next">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paragraph">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd.command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="scope">
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="grid"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="columns"/>
+ <cd:constant type="note" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="page"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="anchor">
+ <cd:constant type="next"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupnotes" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setnote" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setnote" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setnotetext" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setnotetext" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placenotes" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localnotes" type="environment" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelocalnotes" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="postponenotes" file="strc-not.mkvi"/>
+
+ <cd:command name="flushnotes" file="strc-not.mkvi"/>
+
+ <cd:command name="doifelsenoteonsamepage" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnoteonsamepageelse" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotescollected" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="notesymbol" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="note" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" type="environment" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" type="environment" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnote" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="footnotetext" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placefootnotes" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localfootnotes" type="environment" file="strc-not.mkvi"/>
+
+ <cd:command name="placelocalfootnotes" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="endnote" type="environment" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="endnote" type="environment" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="endnote" variant="1" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="endnote" variant="2" file="strc-not.mkvi">
+ <cd:arguments>
+ <cd:resolve name="assignment-constructiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definelinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplinenote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="compress">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="compressmethod">
+ <cd:constant type="separator"/>
+ <cd:constant type="stopper"/>
+ <cd:constant type="space"/>
+ </cd:parameter>
+ <cd:parameter name="compressseparator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="compressdistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="setupnote"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenote" generated="yes" variant="generated" file="strc-lnt.mkvi">
+ <cd:sequence>
+ <cd:variable value="linenote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startlinenote" generated="yes" variant="generated" file="strc-lnt.mkvi">
+ <cd:sequence>
+ <cd:string value="start"/>
+ <cd:variable value="linenote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stoplinenote" generated="yes" variant="generated" file="strc-lnt.mkvi">
+ <cd:sequence>
+ <cd:string value="stop"/>
+ <cd:variable value="linenote"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fromlinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tolinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startlinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stoplinenote" file="strc-lnt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-object.xml b/tex/context/interface/mkiv/i-object.xml
new file mode 100644
index 000000000..804d17af8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-object.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="ifinobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-true"/>
+ <cd:delimiter name="else"/>
+ <cd:resolve name="string-false"/>
+ <cd:delimiter name="fi"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="objectmargin" file="pack-obj.mkiv"/>
+
+ <cd:command name="objectwidth" file="pack-obj.mkiv"/>
+
+ <cd:command name="objectheight" file="pack-obj.mkiv"/>
+
+ <cd:command name="objectdepth" file="pack-obj.mkiv"/>
+
+ <cd:command name="setreferencedobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settightreferencedobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setunreferencedobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settightunreferencedobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settightobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getobject" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getobjectdimensions" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defaultobjectreference" file="pack-obj.mkiv"/>
+
+ <cd:command name="defaultobjectpage" file="pack-obj.mkiv"/>
+
+ <cd:command name="doifelseobjectfound" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifobjectfoundelse" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseobjectreferencefound" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifobjectreferencefoundelse" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-offset.xml b/tex/context/interface/mkiv/i-offset.xml
new file mode 100644
index 000000000..8e68a3bef
--- /dev/null
+++ b/tex/context/interface/mkiv/i-offset.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupoffsetbox" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="x">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="fixed"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:resolve name="value-aligned"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoffset" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupoffsetbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="offsetbox" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupoffsetbox"/>
+ </cd:assignments>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="offset" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupoffset"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-opposite.xml b/tex/context/interface/mkiv/i-opposite.xml
new file mode 100644
index 000000000..497b6d502
--- /dev/null
+++ b/tex/context/interface/mkiv/i-opposite.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupoppositeplacing" file="page-fac.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="opposite" type="environment" file="page-fac.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-ornament.xml b/tex/context/interface/mkiv/i-ornament.xml
new file mode 100644
index 000000000..8ad0b7cfb
--- /dev/null
+++ b/tex/context/interface/mkiv/i-ornament.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="ornamenttext" variant="1" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ornamenttext" variant="2" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b" default="yes"/>
+ </cd:parameter>
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayeredtext"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ornamenttext" variant="3" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineornament" variant="1" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ </cd:parameter>
+ <cd:inherit name="setupcollector"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineornament" variant="2" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b" default="yes"/>
+ </cd:parameter>
+ <cd:inherit name="setuplayer"/>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayeredtext"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ornament" generated="yes" variant="generated" file="pack-box.mkiv">
+ <cd:sequence>
+ <cd:variable value="ornament"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-output.xml b/tex/context/interface/mkiv/i-output.xml
new file mode 100644
index 000000000..1f59284ff
--- /dev/null
+++ b/tex/context/interface/mkiv/i-output.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineoutputroutine" file="page-otr.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupoutputroutine"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutputroutine" variant="1" file="page-otr.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:csname"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupoutputroutine" variant="2" file="page-otr.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineoutputroutinecommand" file="page-otr.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-key-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="traceoutputroutines" file="page-otr.mkvi"/>
+
+ <cd:command name="installoutputroutine" file="page-otr.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-overlay.xml b/tex/context/interface/mkiv/i-overlay.xml
new file mode 100644
index 000000000..dd2d43363
--- /dev/null
+++ b/tex/context/interface/mkiv/i-overlay.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineoverlay" file="pack-lyr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="overlaycolor" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlaylinecolor" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlaywidth" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlayheight" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlaydepth" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlayoffset" file="pack-rul.mkiv"/>
+
+ <cd:command name="overlaylinewidth" file="pack-rul.mkiv"/>
+
+ <cd:command name="doifelseoverlay" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifoverlayelse" file="pack-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-pagebreak.xml b/tex/context/interface/mkiv/i-pagebreak.xml
new file mode 100644
index 000000000..abc586ea6
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagebreak.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepagebreak" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-pagebreak"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagebreak" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:resolve name="value-pagebreak"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="page" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="pagebreak"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecolumnbreak" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:resolve name="value-columnbreak"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="columnbreak" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:resolve name="value-columnbreak"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="column" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="columnbreak"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepagechecker" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagechecker"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagechecker" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="0"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkpage" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagechecker"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testpage" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testpageonly" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testpagesync" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testcolumn" file="page-brk.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-pagecomment.xml b/tex/context/interface/mkiv/i-pagecomment.xml
new file mode 100644
index 000000000..26678a4a0
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagecomment.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuppagecomment" file="page-com.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom" default="yes"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="none" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagecomment" type="environment" file="page-com.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pagefigure.xml b/tex/context/interface/mkiv/i-pagefigure.xml
new file mode 100644
index 000000000..5f776e835
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagefigure.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="pagefigure" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagefigure" type="environment" file="page-app.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pagegrid.xml b/tex/context/interface/mkiv/i-pagegrid.xml
new file mode 100644
index 000000000..29810d7db
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagegrid.xml
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepagegrid" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegrid"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegrid" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nleft">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nright">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="direction">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagegrid" type="environment" generated="yes" variant="generated" file="page-cst.mkiv">
+ <cd:sequence>
+ <cd:variable value="pagegrid"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegrid"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagegrid" type="environment" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegrid"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpagegrid" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="c">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="r">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="none" default="yes"/>
+ <!--
+ <cd:constant type="wide"/>
+ -->
+ </cd:parameter>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepagegridspan" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegridspan"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegridspan" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagegridspan" type="environment" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegridspan"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagegridspanwidth" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepagegridarea" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagegridarea"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegridarea" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="x">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="y">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="clipoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegridareatext" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegridlines" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagegridstart" file="page-cst.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-number"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-pageinjection.xml b/tex/context/interface/mkiv/i-pageinjection.xml
new file mode 100644
index 000000000..64becc385
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pageinjection.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepageinjection" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppageinjection"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppageinjection" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="previous"/>
+ <cd:constant type="next" default="yes"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="delay">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="figure" default="yes"/>
+ <cd:constant type="buffer"/>
+ <cd:constant type="setups"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pageinjection" variant="1" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pageinjection" variant="2" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppageinjection"/>
+ </cd:assignments>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepageinjectionalternative" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppageinjectionalternative"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppageinjectionalternative" file="page-inj.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="renderingsetup">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pagelayout.xml b/tex/context/interface/mkiv/i-pagelayout.xml
new file mode 100644
index 000000000..dd4bc27f5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagelayout.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="pagearea" file="page-plg.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="lefttext"/>
+ <cd:constant type="middletext" default="yes"/>
+ <cd:constant type="righttext"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagelayout" type="environment" file="page-plg.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="page"/>
+ <cd:constant type="leftpage"/>
+ <cd:constant type="rightpage"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pagenumber.xml b/tex/context/interface/mkiv/i-pagenumber.xml
new file mode 100644
index 000000000..d17df9425
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagenumber.xml
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuprealpagenumber" file="strc-pag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupuserpagenumber" file="strc-pag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="viewerprefix">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="none"/>
+ <cd:constant type="keep"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsubpagenumber" file="strc-pag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupcounter"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagenumber" file="strc-pag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupuserpagenumber"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="resetrealpagenumber" file="strc-pag.mkiv"/>
+
+ -->
+
+ <cd:command name="resetuserpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="resetsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="resetpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="setuppagenumbering" file="strc-pag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="singlesided" default="yes"/>
+ <cd:constant type="doublesided"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="header" default="yes"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="left"/>
+ <cd:constant type="middle" default="yes"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inleft"/>
+ <cd:constant type="inright"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="atmargin"/>
+ <cd:constant type="marginedge"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstrealpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="firstuserpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="firstsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastrealpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastuserpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevrealpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevuserpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextrealpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextuserpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="firstrealpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="firstuserpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="firstsubpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevrealpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevuserpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="prevsubpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextrealpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextuserpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="nextsubpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastrealpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastuserpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="lastsubpage" file="strc-pag.mkiv"/>
+
+ <cd:command name="realpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="userpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="subpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="pagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="prefixedpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="incrementpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="incrementsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="decrementpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="decrementsubpagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="completepagenumber" file="strc-pag.mkiv"/>
+
+ <cd:command name="placepagenumber" file="strc-pag.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pageselection.xml b/tex/context/interface/mkiv/i-pageselection.xml
new file mode 100644
index 000000000..45c433269
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pageselection.xml
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="insertpages" file="page-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filterpages" file="page-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:keywords list="yes">
+ <cd:constant type="even"/>
+ <cd:constant type="odd"/>
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="cd:number" method="range"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copypages" file="page-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="marking">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupexternalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="combinepages" file="page-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="a" default="yes"/>
+ <cd:constant type="b"/>
+ <cd:constant type="c"/>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="foreground"/>
+ <cd:constant type="color"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="slicepages" file="page-sel.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="hoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pageshift.xml b/tex/context/interface/mkiv/i-pageshift.xml
new file mode 100644
index 000000000..630a5af6c
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pageshift.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepageshift" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-dimension-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppageshift" file="page-imp.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="page" default="yes"/>
+ <cd:constant type="paper"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pagestate.xml b/tex/context/interface/mkiv/i-pagestate.xml
new file mode 100644
index 000000000..0d6a94811
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pagestate.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepagestate" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppagestate"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppagestate" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional-list"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="delay">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpagestate" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagestaterealpage" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpagestaterealpageno" file="core-dat.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pairedbox.xml b/tex/context/interface/mkiv/i-pairedbox.xml
new file mode 100644
index 000000000..fbf190257
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pairedbox.xml
@@ -0,0 +1,171 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepairedbox" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppairedbox" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="top"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="high"/>
+ <cd:constant type="low"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placepairedbox" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ <cd:content/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placepairedbox" type="environment" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppairedbox" generated="yes" variant="generated" file="pack-com.mkiv">
+ <cd:sequence>
+ <cd:string value="setup"/>
+ <cd:variable value="pairedbox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placepairedbox" generated="yes" variant="generated" file="pack-com.mkiv">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="pairedbox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ <cd:content/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placepairedbox" type="environment" generated="yes" variant="generated" file="pack-com.mkiv">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="pairedbox"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplegend" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ <cd:content/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelegend" type="environment" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppairedbox"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeontopofeachother" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placesidebyside" file="pack-com.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-papersize.xml b/tex/context/interface/mkiv/i-papersize.xml
new file mode 100644
index 000000000..99d6b9d9d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-papersize.xml
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!--
+
+ <cd:command name="definelayouttarget" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayouttarget"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayouttarget" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paper">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="fit"/>
+ <cd:constant type="max" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="definepapersize" variant="1" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:inherit name="setuppapersize"/>
+ </cd:parameter>
+ <cd:parameter name="paper">
+ <cd:inherit name="setuppapersize"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepapersize" variant="2" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppapersize" variant="1" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setuppapersize" variant="2" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayouttarget"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayouttarget"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setuppapersize" variant="2" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dx">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="topspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="backspace">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="paper">
+ <cd:constant type="reset"/>
+ <cd:constant type="landscape"/>
+ <cd:constant type="mirrored"/>
+ <cd:constant type="negative"/>
+ <cd:constant type="rotated"/>
+ <cd:constant type="90"/>
+ <cd:constant type="180"/>
+ <cd:constant type="270"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="fit"/>
+ <cd:constant type="max" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppaper" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="adaptpapersize" file="page-lay.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="setuppapersize"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-paragraph.xml b/tex/context/interface/mkiv/i-paragraph.xml
new file mode 100644
index 000000000..63ddab64f
--- /dev/null
+++ b/tex/context/interface/mkiv/i-paragraph.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineparagraph" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupparagraph"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupparagraph" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraph" type="environment" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupparagraph"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="par" type="environment" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupparagraph"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="par" type="environment" begin="b" end ="e" file="strc-tag.mkiv"/>
+
+ <cd:command name="setupparagraphintro" file="spac-par.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="reset"/>
+ <cd:constant type="each"/>
+ <cd:constant type="first"/>
+ <cd:constant type="next"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-paragraphnumber.xml b/tex/context/interface/mkiv/i-paragraphnumber.xml
new file mode 100644
index 000000000..f3588f87c
--- /dev/null
+++ b/tex/context/interface/mkiv/i-paragraphnumber.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupparagraphnumbering" file="page-par.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ <cd:constant type="line"/>
+ <cd:constant type="reset"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-paragraphs.xml b/tex/context/interface/mkiv/i-paragraphs.xml
new file mode 100644
index 000000000..6c1dae0db
--- /dev/null
+++ b/tex/context/interface/mkiv/i-paragraphs.xml
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineparagraphs" file="tabl-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupparagraphs"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" variant="1" file="tabl-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="each"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupparagraphs" variant="2" file="tabl-mis.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:number" prefix="cd:name" method="range"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="top">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bottom">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="paragraphs" type="environment" file="tabl-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nextparagraphs" file="tabl-mis.mkiv"/>
+
+ <cd:command name="paragraphs" type="environment" generated="yes" variant="generated" file="tabl-mis.mkiv">
+ <cd:sequence>
+ <cd:variable value="paragraphs"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraphs" generated="yes" variant="generated" file="tabl-mis.mkiv">
+ <cd:sequence>
+ <cd:variable value="paragraphs"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="nextparagraphs" generated="yes" variant="generated" file="tabl-mis.mkiv">
+ <cd:sequence>
+ <cd:string value="next"/>
+ <cd:variable value="paragraphs"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="paragraphscell" type="environment" file="tabl-mis.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-parallel.xml b/tex/context/interface/mkiv/i-parallel.xml
new file mode 100644
index 000000000..ef2c55f3f
--- /dev/null
+++ b/tex/context/interface/mkiv/i-parallel.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineparallel" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupparallel" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeparallel" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupparallel"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseparallel" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="all" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifparallelelse" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="all" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetparallel" file="buff-par.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="all" default="yes"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="parallel" type="environment" generated="yes" variant="generated" file="buff-par.mkvi">
+ <cd:sequence>
+ <cd:variable value="parallel"/>
+ </cd:sequence>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-parbuilder.xml b/tex/context/interface/mkiv/i-parbuilder.xml
new file mode 100644
index 000000000..b7bf37417
--- /dev/null
+++ b/tex/context/interface/mkiv/i-parbuilder.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineparbuilder" file="typo-bld.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="parbuilder" type="environment" file="typo-bld.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="default"/>
+ <cd:constant type="oneline"/>
+ <cd:constant type="basic"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmainparbuilder" file="typo-bld.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="default"/>
+ <cd:constant type="oneline"/>
+ <cd:constant type="basic"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-pdf.xml b/tex/context/interface/mkiv/i-pdf.xml
new file mode 100644
index 000000000..9d75ddfd3
--- /dev/null
+++ b/tex/context/interface/mkiv/i-pdf.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="pdfbackendsetcatalog" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetinfo" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetname" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetpageattribute" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetpagesattribute" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetpageresource" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetextgstate" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetcolorspace" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetpattern" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendsetshade" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendcurrentresources" file="back-pdf.mkiv"/>
+
+ <cd:command name="pdfcolor" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PDFcolor" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TransparencyHack" file="back-pdf.mkiv"/>
+
+ <cd:command name="lastpredefinedsymbol" file="pack-obj.mkiv"/>
+
+ <cd:command name="predefinesymbol" file="pack-obj.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfbackendactualtext" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pdfactualtext" file="back-pdf.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="negative" type="environment" file="attr-neg.mkiv"/>
+
+ <cd:command name="positive" type="environment" file="attr-neg.mkiv"/>
+
+ <cd:command name="setuppagetransitions" file="scrn-pag.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset" default="yes"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="start"/>
+ <cd:constant type="random"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-penalty.xml b/tex/context/interface/mkiv/i-penalty.xml
new file mode 100644
index 000000000..8cadf672b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-penalty.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="resetpenalties" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpenalties" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="keeplinestogether" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdefaultpenalties" file="spac-ver.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-periods.xml b/tex/context/interface/mkiv/i-periods.xml
new file mode 100644
index 000000000..e72152c38
--- /dev/null
+++ b/tex/context/interface/mkiv/i-periods.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupperiods" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="fit"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" variant="1" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="periods" variant="2" file="enco-ini.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupperiods"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unknown" file="enco-ini.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-phantom.xml b/tex/context/interface/mkiv/i-phantom.xml
new file mode 100644
index 000000000..e3f92b810
--- /dev/null
+++ b/tex/context/interface/mkiv/i-phantom.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="phantom" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hphantom" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vphantom" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="phantombox" file="pack-box.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-placement.xml b/tex/context/interface/mkiv/i-placement.xml
new file mode 100644
index 000000000..4db307957
--- /dev/null
+++ b/tex/context/interface/mkiv/i-placement.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineplacement" file="pack-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupplacement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupplacement" file="pack-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:inherit name="snaptogrid"/>
+ </cd:parameter>
+ <cd:parameter name="linecorrection">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="depthcorrection">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="standard" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placement" file="pack-mis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupplacement"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placement" generated="yes" variant="generated" file="pack-mis.mkiv">
+ <cd:sequence>
+ <cd:variable value="placement"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupplacement"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-position.xml b/tex/context/interface/mkiv/i-position.xml
new file mode 100644
index 000000000..54bc952dc
--- /dev/null
+++ b/tex/context/interface/mkiv/i-position.xml
@@ -0,0 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="doifpositionaction" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepositionaction" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositionactionelse" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dopositionaction" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positionoverlay" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPoverlayanchor" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positionregionoverlay" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positionoverlay" type="environment" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpositiongraphic" type="environment" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpositiongraphic" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpositionmethod" type="environment" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setMPpositiongraphic" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setMPpositiongraphicrange" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:assignments delimiters="braces" list="yes" optional="yes">
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPgetposboxes" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPgetmultipars" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPgetmultishape" file="anch-pgr.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPp" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPr" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPc" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPn" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPx" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPy" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPw" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPh" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPd" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPxy" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPll" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPlr" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPur" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPul" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPls" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPrs" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpardata" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPxywhd" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPposset" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPpage" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPregion" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPcolumn" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPanchor" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPleftskip" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPrightskip" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPplus" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPv" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPrest" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MPvv" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositiononly" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setposition" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositiondata" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositionbox" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositionstrut" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositiondataplus" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpositionplus" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyposition" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifposition" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseposition" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositionelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepositiononpage" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositiononpageelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xypos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hpos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vpos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bpos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="epos" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+
+ <cd:command name="tracepositions" file="anch-pos.mkiv"/>
+
+ <cd:command name="enableparpositions" file="anch-pos.mkiv"/>
+
+ <cd:command name="disableparpositions" file="anch-pos.mkiv"/>
+
+ <cd:command name="doifelseoverlapping" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifoverlappingelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepositionsonsamepage" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositionsonsamepageelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepositionsonthispage" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositionsonthispageelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsepositionsused" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifpositionsusedelse" file="anch-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-positionbar.xml b/tex/context/interface/mkiv/i-positionbar.xml
new file mode 100644
index 000000000..e6dadf8c5
--- /dev/null
+++ b/tex/context/interface/mkiv/i-positionbar.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuppositionbar" file="pack-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="min">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="max">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="horizontalpositionbar" file="pack-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppositionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="verticalpositionbar" file="pack-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppositionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="horizontalgrowingbar" file="pack-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppositionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="verticalgrowingbar" file="pack-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuppositionbar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-positioning.xml b/tex/context/interface/mkiv/i-positioning.xml
new file mode 100644
index 000000000..98898c7cc
--- /dev/null
+++ b/tex/context/interface/mkiv/i-positioning.xml
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definepositioning" file="pack-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppositioning"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuppositioning" file="pack-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="offset">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="ex"/>
+ <cd:constant type="em"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="in"/>
+ <cd:constant type="cm" default="yes"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="nc"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="overlay"/>
+ </cd:parameter>
+ <cd:parameter name="xoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="yoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="xstep">
+ <cd:constant type="absolute" default="yes"/>
+ <cd:constant type="relative"/>
+ </cd:parameter>
+ <cd:parameter name="ystep">
+ <cd:constant type="absolute" default="yes"/>
+ <cd:constant type="relative"/>
+ </cd:parameter>
+ <cd:parameter name="xscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xfactor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yfactor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="positioning" type="environment" file="pack-pos.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppositioning"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="position" file="pack-pos.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuppositioning"/>
+ </cd:assignments>
+ <cd:position list="yes"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-postponing.xml b/tex/context/interface/mkiv/i-postponing.xml
new file mode 100644
index 000000000..619a77552
--- /dev/null
+++ b/tex/context/interface/mkiv/i-postponing.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="postponing" type="environment" file="page-pst.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:number" prefix="cd:sign" method="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-processor.xml b/tex/context/interface/mkiv/i-processor.xml
new file mode 100644
index 000000000..a43037754
--- /dev/null
+++ b/tex/context/interface/mkiv/i-processor.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineprocessor" file="typo-prc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupprocessor"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprocessor" file="typo-prc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="applyprocessor" file="typo-prc.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-profile.xml b/tex/context/interface/mkiv/i-profile.xml
new file mode 100644
index 000000000..2df175cdf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-profile.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineprofile" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupprofile"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprofile" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="strict" default="yes"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setprofile" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="none"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="halffixed"/>
+ <cd:constant type="quarterfixed"/>
+ <cd:constant type="eightsfixed"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetprofile" file="spac-prf.mkvi"/>
+
+ <cd:command name="useprofileparameter" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profiledbox" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="none"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="halffixed"/>
+ <cd:constant type="quarterfixed"/>
+ <cd:constant type="eightsfixed"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupprofile"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="profilegivenbox" file="spac-prf.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces" optional="yes">
+ <cd:constant type="none"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="halffixed"/>
+ <cd:constant type="quarterfixed"/>
+ <cd:constant type="eightsfixed"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-publication.xml b/tex/context/interface/mkiv/i-publication.xml
new file mode 100644
index 000000000..4d3583e7e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-publication.xml
@@ -0,0 +1,1124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="btxrenderingdefinitions" type="environment" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadbtxdefinitionfile" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadbtxreplacementfile" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebtx" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtx"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtx" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="specification">
+ <cd:constant type="default"/>
+ <cd:constant type="apa"/>
+ <cd:constant type="aps"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="default"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="authorconversion">
+ <cd:constant type="normal"/>
+ <cd:constant type="normalshort"/>
+ <cd:constant type="normalinverted"/>
+ <cd:constant type="invertedshort"/>
+ <cd:constant type="short"/>
+ </cd:parameter>
+ <cd:parameter name="etallimit">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="etaldisplay">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="etaloption">
+ <cd:constant type="last"/>
+ </cd:parameter>
+ <cd:parameter name="stopper">
+ <cd:constant type="initials"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:resolve name="value-btxalternative"/>
+ </cd:parameter>
+ <cd:parameter name="sorttype">
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="reverse"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="author">
+ <cd:constant type="???"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="default">
+ <cd:constant type="default"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ -->
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtx" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usingbtxspecification" type="environment" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebtxdataset" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxdataset"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtxdataset" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="language">
+ <cd:constant type="cd:language"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebtxregister" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtxregister" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="field">
+ <cd:constant type="keyword"/>
+ <cd:constant type="range"/>
+ <cd:constant type="pagenumber"/>
+ <cd:constant type="author"/>
+ </cd:parameter>
+ <cd:parameter name="register">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="once"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="normalshort"/>
+ <cd:constant type="invertedshort"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definebtxrendering" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxrendering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtxrendering" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="textstate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="pagestate">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="previous"/>
+ <cd:constant type="cite"/>
+ <cd:constant type="here"/>
+ <cd:constant type="all"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="reference">
+ <cd:constant type="???"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="method">
+ <cd:constant type="dataset"/>
+ <cd:constant type="force"/>
+ <cd:constant type="local"/>
+ <cd:constant type="global"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="keyword">
+ <cd:constant type="???"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="sorttype">
+ <cd:constant type="short"/>
+ <cd:constant type="dataset"/>
+ <cd:constant type="list"/>
+ <cd:constant type="reference"/>
+ <cd:constant type="used"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cite"/>
+ <cd:constant type="index"/>
+ </cd:parameter>
+ <cd:parameter name="repeat">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="ignore">
+ <cd:constant type="???"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="group">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="num"/>
+ <cd:constant type="index"/>
+ <cd:constant type="tag"/>
+ <cd:constant type="short"/>
+ <cd:constant type="page"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usebtxdataset" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="publication" type="environment" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="tag">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="category">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="k">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="t">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbtxlist" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplist"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completebtxrendering" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxrendering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placebtxrendering" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxrendering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofpublications" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxrendering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofpublications" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupbtxrendering"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxhybridcite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxhybridcite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxhybridcite" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxhybridcite" variant="4" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxlistcitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxlistcitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxlistcitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxtextcitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxtextcitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxtextcitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxalwayscitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxalwayscitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxalwayscitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bthiddencitation" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="listcite" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textcite" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscitation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="alwayscite" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiddencitation" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hiddencite" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="citation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="citation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="citation" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="citation" variant="4" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-citedata-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cite" variant="3" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-btxalternative-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="cite" variant="4" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocitation" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocitation" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocite" variant="1" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="nocite" variant="2" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savebtxdataset" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-file-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:constant type="bib"/>
+ <cd:constant type="lua"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="file">
+ <cd:constant type="cd:file"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="all"/>
+ <cd:constant type="text"/>
+ <cd:constant type="intro"/>
+ <cd:constant type="reference"/>
+ <cd:constant type="current"/>
+ <cd:constant type="here"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="local"/>
+ <cd:constant type="component"/>
+ <cd:constant type="all" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="reference" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="current" prefix="cd:sectionblock" method="range"/>
+ <cd:constant type="previous" prefix="cd:sectionblock" method="range"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placecitation" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usebtxdefinitions" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfield" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdetail" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflush" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdirect" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfieldname" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfieldtype" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfoundname" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfoundtype" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxauthorfield" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="initials"/>
+ <cd:constant type="firstnames"/>
+ <cd:constant type="vons"/>
+ <cd:constant type="surnames"/>
+ <cd:constant type="juniors"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifelse" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoif" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifnot" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxsetup" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifelsesameaspreviouschecked" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="always"/>
+ <cd:constant type="doublesided"/>
+ </cd:keywords>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifelsesameasprevious" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifelsecombiinlist" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifsameaspreviouscheckedelse" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="always"/>
+ <cd:constant type="doublesided"/>
+ </cd:keywords>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifsameaspreviouselse" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxfield"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifcombiinlistelse" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentbtxuservariable" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifelseuservariable" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxdoifuservariableelse" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxremapauthor" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushauthor" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="num"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="normalshort"/>
+ <cd:constant type="inverted"/>
+ <cd:constant type="invertedshort"/>
+ </cd:keywords>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushsuffix" file="publ-ini.mkiv"/>
+
+ <cd:command name="btxflushauthorname" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushauthornormal" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushauthornormalshort" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushauthorinverted" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxflushauthorinvertedshort" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-btxauthor"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxsingularplural" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="editor"/>
+ <cd:constant type="producer"/>
+ <cd:constant type="director"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxsingularorplural" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="editor"/>
+ <cd:constant type="producer"/>
+ <cd:constant type="director"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxoneorrange" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="volume"/>
+ <cd:constant type="pages"/>
+ </cd:keywords>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxfirstofrange" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="volume"/>
+ <cd:constant type="pages"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxloadjournalist" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxsavejournalist" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxaddjournal" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxexpandedjournal" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="btxabbreviatedjournal" file="publ-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetfields" variant="1" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="field">
+ <cd:resolve name="value-btxfield"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetfields" variant="2" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetcompleteness" variant="1" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="field">
+ <cd:resolve name="value-btxfield"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetcompleteness" variant="2" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetauthors" variant="1" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="dataset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="field">
+ <cd:resolve name="value-btxfield"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxdatasetauthors" variant="2" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxhashedauthors" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxfields" variant="1" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="rotation">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="specification">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxfields" variant="2" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showbtxtables" file="publ-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-random.xml b/tex/context/interface/mkiv/i-random.xml
new file mode 100644
index 000000000..969cef05f
--- /dev/null
+++ b/tex/context/interface/mkiv/i-random.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="getrandomcount" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrandomdimen" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrandomnumber" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrandomfloat" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setrandomseed" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrandomseed" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="randomseed" type="environment" begin="push" end="pop" file="supp-ran.mkiv"/>
+
+ <cd:command name="reuserandomseed" file="supp-ran.mkiv"/>
+
+ <cd:command name="randomnumber" file="supp-ran.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mprandomnumber" file="supp-ran.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-readme.pdf b/tex/context/interface/mkiv/i-readme.pdf
index 3b9d5b706..e64c98b10 100644
--- a/tex/context/interface/mkiv/i-readme.pdf
+++ b/tex/context/interface/mkiv/i-readme.pdf
Binary files differ
diff --git a/tex/context/interface/mkiv/i-references.xml b/tex/context/interface/mkiv/i-references.xml
new file mode 100644
index 000000000..7b117e4f7
--- /dev/null
+++ b/tex/context/interface/mkiv/i-references.xml
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupreferencing" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="autofile">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="export">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="doublesided">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="label"/>
+ <cd:constant type="text"/>
+ <cd:constant type="symbol"/>
+ <cd:constant type="all" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="prefix">
+ <cd:resolve name="value-referenceprefix"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pagereference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="reference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usereferenceparameter" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="boxreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hboxreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vboxreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="contentreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpagereference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-reference-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsereferencefound" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifreferencefoundelse" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferenceprefix" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:resolve name="value-referenceprefix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupglobalreferenceprefix" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:resolve name="value-referenceprefix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referenceprefix" type="environment" begin="push" end="pop" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-referenceprefix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referenceprefix" type="environment" begin="globalpush" end="globalpop" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-referenceprefix"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referenceprefix" file="strc-ref.mkvi"/>
+
+ <cd:command name="in" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="at" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="about" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="from" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="over" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filterreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-referencetype"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getreferenceentry" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-referencetype"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:resolve name="value-referencetype"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ref" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:resolve name="value-referencetype"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somewhere" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="docheckedpagestate" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-reference"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someplace" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="atpage" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolreference" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definereferenceformat" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupreferenceformat"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferenceformat" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="label">
+ <cd:constant type="*"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="type">
+ <cd:resolve name="value-referencetype"/>
+ </cd:parameter>
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="autocase">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="referenceformat" generated="yes" variant="generated" file="strc-ref.mkvi">
+ <cd:sequence>
+ <cd:variable value="referenceformat"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="argument-text-optional"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="goto" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="goto" type="environment" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotobox" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useurl" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-url"/>
+ <cd:resolve name="keyword-file-optional"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useURL" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-url"/>
+ <cd:resolve name="keyword-file-optional"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usefile" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternaldocument" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseurldefined" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifurldefinedelse" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefiledefined" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffiledefinedelse" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupurl" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="url" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineprogram" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupprograms" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="program" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definepage" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gotopage" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="keyword-reference"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupreferencestructureprefix" file="strc-ref.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:name"/>
+ <cd:constant type="cd:section"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="default"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="prefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="prefixseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="prefixstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="prefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="numberstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="numberstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="numbersegments">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:parameter>
+ <cd:parameter name="numberseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="prefixconnector">
+ <cd:resolve name="value-connector"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-regime.xml b/tex/context/interface/mkiv/i-regime.xml
new file mode 100644
index 000000000..6c9e5b356
--- /dev/null
+++ b/tex/context/interface/mkiv/i-regime.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="currentregime" file="regi-ini.mkiv"/>
+
+ <cd:command name="disableregime" file="regi-ini.mkiv"/>
+
+ <cd:command name="enableregime" file="regi-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cp1250"/>
+ <cd:constant type="cp1251"/>
+ <cd:constant type="cp1252"/>
+ <cd:constant type="cp1253"/>
+ <cd:constant type="cp1254"/>
+ <cd:constant type="cp1255"/>
+ <cd:constant type="cp1256"/>
+ <cd:constant type="cp1257"/>
+ <cd:constant type="cp1258"/>
+ <cd:constant type="8859-1"/>
+ <cd:constant type="8859-2"/>
+ <cd:constant type="8859-3"/>
+ <cd:constant type="8859-4"/>
+ <cd:constant type="8859-9"/>
+ <cd:constant type="8859-10"/>
+ <cd:constant type="8859-13"/>
+ <cd:constant type="8859-14"/>
+ <cd:constant type="8859-15"/>
+ <cd:constant type="8859-16"/>
+ <cd:constant type="utf"/>
+ <cd:constant type="windows-1250"/>
+ <cd:constant type="windows-1251"/>
+ <cd:constant type="windows-1252"/>
+ <cd:constant type="windows-1253"/>
+ <cd:constant type="windows-1254"/>
+ <cd:constant type="windows-1255"/>
+ <cd:constant type="windows-1256"/>
+ <cd:constant type="windows-1257"/>
+ <cd:constant type="windows-1258"/>
+ <cd:constant type="il1"/>
+ <cd:constant type="il2"/>
+ <cd:constant type="il3"/>
+ <cd:constant type="il4"/>
+ <cd:constant type="il5"/>
+ <cd:constant type="il6"/>
+ <cd:constant type="il7"/>
+ <cd:constant type="il8"/>
+ <cd:constant type="il9"/>
+ <cd:constant type="il10"/>
+ <cd:constant type="iso-8859-1"/>
+ <cd:constant type="iso-8859-2"/>
+ <cd:constant type="iso-8859-3"/>
+ <cd:constant type="iso-8859-4"/>
+ <cd:constant type="iso-8859-9"/>
+ <cd:constant type="iso-8859-10"/>
+ <cd:constant type="iso-8859-13"/>
+ <cd:constant type="iso-8859-14"/>
+ <cd:constant type="iso-8859-15"/>
+ <cd:constant type="iso-8859-16"/>
+ <cd:constant type="latin1"/>
+ <cd:constant type="latin2"/>
+ <cd:constant type="latin3"/>
+ <cd:constant type="latin4"/>
+ <cd:constant type="latin5"/>
+ <cd:constant type="latin6"/>
+ <cd:constant type="latin7"/>
+ <cd:constant type="latin8"/>
+ <cd:constant type="latin9"/>
+ <cd:constant type="latin10"/>
+ <cd:constant type="utf-8"/>
+ <cd:constant type="utf8"/>
+ <cd:constant type="windows"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="regime" type="environment" file="regi-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:inherit name="enableregime"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-register.xml b/tex/context/interface/mkiv/i-register.xml
new file mode 100644
index 000000000..561912f6a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-register.xml
@@ -0,0 +1,646 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" variant="1" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="referencemethod">
+ <cd:constant type="forward"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="xmlsetup">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:resolve name="value-sortmethod"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="local"/>
+ <cd:constant type="text"/>
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixseparatorset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconnector">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pageseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagestarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="pagestopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="pagesegments">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indicator">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="pagecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="text"/>
+ <cd:constant type="pagenumber" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="a"/>
+ <cd:constant type="n" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:resolve name="value-sortorder"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="pagestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="pagecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="numberorder">
+ <cd:constant type="numbers" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" variant="2" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:number" prefix="cd:name" method="range"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="referencemethod">
+ <cd:constant type="forward"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="xmlsetup">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b"/>
+ <cd:constant type="A"/>
+ <cd:constant type="B"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:resolve name="value-sortmethod"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="local"/>
+ <cd:constant type="text"/>
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixseparatorset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefixconnector">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="pageprefix">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="pageseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pageconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="pagestarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="pagestopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="pagesegments">
+ <cd:resolve name="value-numbersegments"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indicator">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="pagecommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="text"/>
+ <cd:constant type="pagenumber" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="pagenumber">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="symbol">
+ <cd:constant type="a"/>
+ <cd:constant type="n" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:resolve name="value-sortorder"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="pagestyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="pagecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="balance">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="numberorder">
+ <cd:constant type="numbers" default="yes"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupregisters" variant="1" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregisters" variant="2" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:number" prefix="cd:name" method="range"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="register" generated="yes" variant="generated:1" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:index list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="register" generated="yes" variant="generated:2" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ <cd:index list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeregister" generated="yes" variant="generated" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:string value="see"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:index list="yes"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeregister" generated="yes" variant="generated" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:string value="place"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" generated="yes" variant="generated" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:string value="complete"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupregister" generated="yes" variant="generated" file="strc-reg.mkiv">
+ <cd:sequence>
+ <cd:string value="setup"/>
+ <cd:variable value="register"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="index" variant="1" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:index list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="index" variant="2" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ <cd:index list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="seeindex" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:index list="yes"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeindex" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeindex" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupindex" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:keywords>
+ <cd:index list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stopregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setregisterentry" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-registerdata-list"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="finishregisterentry" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="label">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="keys">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="entries">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setstructurepageregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-registerdata-list"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startstructurepageregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="assignment-registerdata-list"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stopstructurepageregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineregistercharacteristics" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="language">
+ <cd:resolve name="value-sortorder"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:resolve name="value-sortmethod"/>
+ </cd:parameter>
+ <cd:parameter name="numberorder">
+ <cd:constant type="numbers" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="all"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="local"/>
+ <cd:constant type="text"/>
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="utilityregisterlength" file="strc-reg.mkiv"/>
+
+ <cd:command name="placeregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completeregister" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupregister"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentregisterpageuserdata" file="strc-reg.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-renderingwindow.xml b/tex/context/interface/mkiv/i-renderingwindow.xml
new file mode 100644
index 000000000..219fda285
--- /dev/null
+++ b/tex/context/interface/mkiv/i-renderingwindow.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="useexternalrendering" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ <cd:keywords>
+ <cd:constant type="auto"/>
+ <cd:constant type="embed"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setinternalrendering" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="auto"/>
+ <cd:constant type="embed"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definerenderingwindow" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuprenderingwindow"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprenderingwindow" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="openpageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:parameter name="closepageaction">
+ <cd:constant type="cd:reference"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placerenderingwindow" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-replacement.xml b/tex/context/interface/mkiv/i-replacement.xml
new file mode 100644
index 000000000..95b6272e7
--- /dev/null
+++ b/tex/context/interface/mkiv/i-replacement.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="replaceword" file="lang-rep.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setreplacement" file="lang-rep.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="reset"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetreplacement" file="lang-rep.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-rotatation.xml b/tex/context/interface/mkiv/i-rotatation.xml
new file mode 100644
index 000000000..95a5815e9
--- /dev/null
+++ b/tex/context/interface/mkiv/i-rotatation.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="mirror" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuprotate" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="high"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="default"/>
+ <cd:constant type="normal"/>
+ </cd:parameter>
+ <cd:parameter name="rotation">
+ <cd:constant type="left"/>
+ <cd:constant type="right"/>
+ <cd:constant type="inner"/>
+ <cd:constant type="outer"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rotate" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuprotate"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dorotatebox" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-scale.xml b/tex/context/interface/mkiv/i-scale.xml
new file mode 100644
index 000000000..135d6fba8
--- /dev/null
+++ b/tex/context/interface/mkiv/i-scale.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definescale" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupscale"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscale" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="scale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="xscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="yscale">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="factor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="hfactor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="wfactor">
+ <cd:constant type="fit"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="max"/>
+ <cd:constant type="auto"/>
+ <cd:constant type="default"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="s">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="sy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="equalwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="equalheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:constant type="yes"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="halfline"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="scale" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupscale"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastscale" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastsxsy" file="grph-trf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-script.xml b/tex/context/interface/mkiv/i-script.xml
new file mode 100644
index 000000000..f1aee232a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-script.xml
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definescript" file="scrp-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupscript"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupscript" file="scrp-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="hangul"/>
+ <cd:constant type="hanzi"/>
+ <cd:constant type="nihongo"/>
+ <cd:constant type="ethiopic"/>
+ <cd:constant type="thai"/>
+ <cd:constant type="test"/>
+ </cd:parameter>
+ <cd:parameter name="preset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="features">
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupscripts" file="scrp-ini.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupscript"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setscript" file="scrp-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="hangul"/>
+ <cd:constant type="hanzi"/>
+ <cd:constant type="nihongo"/>
+ <cd:constant type="ethiopic"/>
+ <cd:constant type="thai"/>
+ <cd:constant type="test"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetscript" file="scrp-ini.mkvi"/>
+
+ <cd:command name="script" type="environment" file="scrp-ini.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="hangul"/>
+ <cd:constant type="hanzi"/>
+ <cd:constant type="nihongo"/>
+ <cd:constant type="ethiopic"/>
+ <cd:constant type="thai"/>
+ <cd:constant type="test"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="script" generated="yes" varianet="generated" file="scrp-ini.mkvi">
+ <cd:sequence>
+ <cd:variable value="script"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="hangul" file="scrp-ini.mkvi"/>
+
+ <cd:command name="hanzi" file="scrp-ini.mkvi"/>
+
+ <cd:command name="nihongo" file="scrp-ini.mkvi"/>
+
+ <cd:command name="ethiopic" file="scrp-ini.mkvi"/>
+
+ <cd:command name="thai" file="scrp-ini.mkvi"/>
+
+ <cd:command name="latin" file="scrp-ini.mkvi"/>
+
+ <!--
+
+ <cd:command name="test" file="scrp-ini.mkvi"/>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-section.xml b/tex/context/interface/mkiv/i-section.xml
new file mode 100644
index 000000000..32b79323d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-section.xml
@@ -0,0 +1,679 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definehead" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-section-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuphead"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuphead" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="frontpartlabel">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="bodypartlabel">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="appendixlabel">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="backpartlabel">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="catcodes">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sectionresetset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sectionseparatorset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sectionconversionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="conversion">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sectionstarter">
+ <cd:resolve name="value-starter"/>
+ </cd:parameter>
+ <cd:parameter name="sectionstopper">
+ <cd:resolve name="value-stopper"/>
+ </cd:parameter>
+ <cd:parameter name="sectionset">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="sectionsegments">
+ <cd:resolve name="value-prefixsegments"/>
+ </cd:parameter>
+ <cd:parameter name="referenceprefix">
+ <cd:constant type="+"/>
+ <cd:constant type="-"/>
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="numberstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="numbercolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="coupling">
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ <cd:parameter name="ownnumber">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="beforesection">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="aftersection">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="insidesection">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="incrementnumber">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="list"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="placehead">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="hidden"/>
+ <cd:constant type="empty"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:parameter name="marking">
+ <cd:constant type="page"/>
+ <cd:constant type="reset"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type=""/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:resolve name="value-textstate"/>
+ </cd:parameter>
+ <cd:parameter name="text">
+ <cd:resolve name="value-textstate"/>
+ </cd:parameter>
+ <cd:parameter name="footer">
+ <cd:resolve name="value-textstate"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="aligntitle">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="float"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="interaction">
+ <cd:constant type="list"/>
+ <cd:constant type="reference"/>
+ </cd:parameter>
+ <cd:parameter name="internalgrid">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="grid">
+ <cd:resolve name="value-grid"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="tolerance">
+ <cd:inherit name="setuptolerance"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="hang">
+ <cd:constant type="line"/>
+ <cd:constant type="broad"/>
+ <cd:constant type="fit"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="text"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="inmargin"/>
+ <cd:constant type="top"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="bottom"/>
+ <cd:constant type="reverse"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="numberwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="commandbefore">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="commandafter">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:twoarguments"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deeptextcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="numbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="deepnumbercommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupheads" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuphead"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="section" generated="yes" variant="generated:1" file="strc-sec.mkiv">
+ <cd:sequence>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" generated="yes" variant="generated:2" file="strc-sec.mkiv">
+ <cd:sequence>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" generated="yes" variant="generated:3" file="strc-sec.mkiv">
+ <cd:sequence>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" type="environment" generated="yes" variant="generated" file="strc-sec.mkiv">
+ <cd:sequence>
+ <cd:variable value="section"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="part" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsection" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubsection" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubject" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubsubject" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-reference-list-optional"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="part" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="chapter" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="section" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsection" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsection" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsection" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubsection" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="title" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subject" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubject" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubject" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubject" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subsubsubsubsubject" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedsection" type="environment" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesection" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeheadtext" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placeheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ <cd:keywords>
+ <cd:constant type="cd:number" prefix="cd:sign" method="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="determineheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentheadnumber" file="strc-sec.mkiv"/>
+
+ <cd:command name="namedheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-section"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="somenamedheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-section"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="previous"/>
+ <cd:constant type="current"/>
+ <cd:constant type="next"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="previous"/>
+ <cd:constant type="current" default="yes"/>
+ <cd:constant type="next"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="someheadnumber" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-section"/>
+ <cd:keywords>
+ <cd:constant type="previous"/>
+ <cd:constant type="current"/>
+ <cd:constant type="next"/>
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedstructureheadlocation" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-section"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="structurenumber" file="strc-sec.mkiv"/>
+
+ <cd:command name="structuretitle" file="strc-sec.mkiv"/>
+
+ <cd:command name="structurevariable" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="structureuservariable" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedstructurevariable" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-section"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedstructureuservariable" file="strc-sec.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-section"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesectionlevels" file="strc-lev.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-section-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sectionlevel" type="environment" file="strc-lev.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="subjectlevel" type="environment" file="strc-lev.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="assignment-sectiondata-list-optional"/>
+ <cd:resolve name="assignment-userdata-list-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineheadalternative" file="strc-ren.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupheadalternative"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadalternative" file="strc-ren.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="alternative">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="renderingsetup">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localheadsetup" type="environment" file="strc-ren.mkiv"/>
+
+ <cd:command name="headhbox" file="strc-ren.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headvbox" file="strc-ren.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="headreferenceattributes" file="strc-ren.mkiv"/>
+
+ <cd:command name="headnumbercontent" file="strc-ren.mkiv"/>
+
+ <cd:command name="headtextcontent" file="strc-ren.mkiv"/>
+
+ <cd:command name="headwidth" file="strc-ren.mkiv"/>
+
+ <cd:command name="headtextwidth" file="strc-ren.mkiv"/>
+
+ <cd:command name="headnumberwidth" file="strc-ren.mkiv"/>
+
+ <cd:command name="headnumberdistance" file="strc-ren.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-sectionblock.xml b/tex/context/interface/mkiv/i-sectionblock.xml
new file mode 100644
index 000000000..fc6d87cff
--- /dev/null
+++ b/tex/context/interface/mkiv/i-sectionblock.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definesectionblock" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsectionblock" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="page">
+ <cd:inherit name="page"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="number">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setsectionblock" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sectionblock" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sectionblock" type="environment" generated="yes" variant="generated" file="strc-sbe.mkiv">
+ <cd:sequence>
+ <cd:variable value="sectionblock"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sectionblockenvironment" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="frontmatter" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="bodymatter" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendices" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="backmatter" type="environment" file="strc-sbe.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="bookmark">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:inherit name="setupsectionblock"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-selector.xml b/tex/context/interface/mkiv/i-selector.xml
new file mode 100644
index 000000000..e593e9117
--- /dev/null
+++ b/tex/context/interface/mkiv/i-selector.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineselector" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupselector"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupselector" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="m">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="select" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directselect" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ <cd:content optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-setups.xml b/tex/context/interface/mkiv/i-setups.xml
new file mode 100644
index 000000000..fec773f2e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-setups.xml
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setups" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setups" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setup" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setup" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directsetup" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastsetup" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="texsetup" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luasetup" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="systemsetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetsetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsetupsdefinition" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwithargument" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastsetupwithargument" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupwithargumentswapped" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastsetupwithargumentswapped" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="usesetupsparameter" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="autosetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doprocesslocalsetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsetupselse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotsetups" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luasetups" type="environment" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="grid"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="luasetups" type="environment" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsetups" type="environment" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="grid"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsetups" type="environment" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawsetups" type="environment" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="grid"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawsetups" type="environment" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localsetups" type="environment" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="grid"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localsetups" type="environment" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setups" type="environment" variant="1" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="grid"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setups" type="environment" variant="2" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-shift.xml b/tex/context/interface/mkiv/i-shift.xml
new file mode 100644
index 000000000..d9b8bf7e4
--- /dev/null
+++ b/tex/context/interface/mkiv/i-shift.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineshift" file="node.rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupshift"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupshift" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="ex" default="yes"/>
+ <cd:constant type="em"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="in"/>
+ <cd:constant type="cm"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="nc"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="dy">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shift" generated="yes" variant="generated" file="node-rul.mkiv">
+ <cd:sequence>
+ <cd:variable value="shift"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shift" type="environment" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shiftup" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="shiftdown" file="node-rul.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-sidebar.xml b/tex/context/interface/mkiv/i-sidebar.xml
new file mode 100644
index 000000000..8c00ce1ff
--- /dev/null
+++ b/tex/context/interface/mkiv/i-sidebar.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definesidebar" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsidebar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsidebar" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="setupsidebars" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupsidebar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="sidebar" type="environment" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsidebar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrule" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupsidebar"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupmarginrules" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setupmarginrule"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" variant="1" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="marginrule" type="environment" variant="2" file="anch-bar.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupmarginrule"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-smash.xml b/tex/context/interface/mkiv/i-smash.xml
new file mode 100644
index 000000000..16c1046bd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-smash.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="smashbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smashboxed" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hsmashbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vsmashbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-box"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hsmash" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vsmash" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hsmashed" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vsmashed" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smashedhbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smashedvbox" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smash" file="supp-box.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="w"/>
+ <cd:constant type="h" default="yes"/>
+ <cd:constant type="d" default="yes"/>
+ <cd:constant type="t"/>
+ <cd:constant type="b"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-sort.xml b/tex/context/interface/mkiv/i-sort.xml
new file mode 100644
index 000000000..5ecc83f18
--- /dev/null
+++ b/tex/context/interface/mkiv/i-sort.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definesorting" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-plural"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="none"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsorting" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="next">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="synonymcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:resolve name="value-sortorder"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:resolve name="value-sortmethod"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="local"/>
+ <cd:constant type="text"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="synonymstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="synonymcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sorting" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:variable value="sorting"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesort" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="sorts"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecurrentsortingused" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetusedsortings" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registersort" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofsorts" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsorts" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="logo" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistoflogos" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistoflogos" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsorting"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-soundtrack.xml b/tex/context/interface/mkiv/i-soundtrack.xml
new file mode 100644
index 000000000..b0f460352
--- /dev/null
+++ b/tex/context/interface/mkiv/i-soundtrack.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupexternalsoundtracks" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useexternalsoundtrack" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checksoundtrack" file="scrn-wid.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-spellchecking.xml b/tex/context/interface/mkiv/i-spellchecking.xml
new file mode 100644
index 000000000..615ba390b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-spellchecking.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupspellchecking" file="lang-wrd.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" defult="yes"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ </cd:parameter>
+ <cd:parameter name="list">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="loadspellchecklist" file="lang-wrd.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-startstop.xml b/tex/context/interface/mkiv/i-startstop.xml
new file mode 100644
index 000000000..e23485fd6
--- /dev/null
+++ b/tex/context/interface/mkiv/i-startstop.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definestartstop" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupstartstop"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupstartstop" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <!--
+ <cd:parameter name="commands">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ -->
+ <cd:parameter name="setups">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startstop" type="environment" generated="yes" variant="generated" file="core-sys.mkiv">
+ <cd:sequence>
+ <cd:variable value="startstop"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="startstop" type="environment" file="core-sys.mkiv">
+ <cd:sequence>
+ <cd:string value="​"/><!-- value="zero width space -->
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="startstop" generated="yes" variant="generated" file="core-sys.mkiv">
+ <cd:sequence>
+ <cd:variable value="startstop"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-stream.xml b/tex/context/interface/mkiv/i-stream.xml
new file mode 100644
index 000000000..40ddc89de
--- /dev/null
+++ b/tex/context/interface/mkiv/i-stream.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="currentoutputstream" file="page-str.mkiv"/>
+
+ <cd:command name="ifinoutputstream" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-true"/>
+ <cd:delimiter name="else"/>
+ <cd:resolve name="string-false"/>
+ <cd:delimiter name="fi"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enableoutputstream" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableoutputstream" file="page-str.mkiv"/>
+
+ <cd:command name="outputstream" type="environment" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushoutputstream" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="outputstreambox" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="outputstreamcopy" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="outputstreamunvbox" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="outputstreamunvcopy" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizeoutputstreams" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pushoutputstream" file="page-str.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-string.xml b/tex/context/interface/mkiv/i-string.xml
new file mode 100644
index 000000000..b3efe552b
--- /dev/null
+++ b/tex/context/interface/mkiv/i-string.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="wdofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="htofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dpofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hdofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="htdpofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="widthofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="heightofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="depthofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="heightanddepthofstring" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setwidthof" file="blob-ini.mkiv">
+ <cd:arguments>
+ <cd:text/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-strut.xml b/tex/context/interface/mkiv/i-strut.xml
new file mode 100644
index 000000000..1fd12a3bb
--- /dev/null
+++ b/tex/context/interface/mkiv/i-strut.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="strutdp" file="supp-box.mkiv"/>
+
+ <cd:command name="strutht" file="supp-box.mkiv"/>
+
+ <cd:command name="strutwd" file="supp-box.mkiv"/>
+
+ <cd:command name="struthtdp" file="supp-box.mkiv"/>
+
+ <cd:command name="setupstruts" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:resolve name="value-strut"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizestrut" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:resolve name="value-strut"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="strut" file="spac-ver.mkiv"/>
+
+ <cd:command name="setstrut" file="spac-ver.mkiv"/>
+
+ <cd:command name="setcharstrut" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setfontstrut" file="spac-ver.mkiv"/>
+
+ <cd:command name="setcapstrut" file="spac-ver.mkiv"/>
+
+ <cd:command name="setnostrut" file="spac-ver.mkiv"/>
+
+ <cd:command name="showstruts" file="spac-ver.mkiv"/>
+
+ <cd:command name="showcolorstruts" file="spac-ver.mkiv"/>
+
+ <cd:command name="strut" type="environment" begin="beg" end="end" file="spac-ver.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-symbol.xml b/tex/context/interface/mkiv/i-symbol.xml
new file mode 100644
index 000000000..33d5b4707
--- /dev/null
+++ b/tex/context/interface/mkiv/i-symbol.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definesymbol" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseinsymbolset" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinsymbolsetelse" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinsymbolset" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesymbolset" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsymbolsetelse" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" variant="1" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbol" variant="2" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directsymbol" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definefiguresymbol" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="externalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="figuresymbol" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:file"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="externalfigure"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesymboldefined" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsymboldefinedelse" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="symbolset" type="environment" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsymbolset" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetsymbolset" file="symb-ini.mkiv"/>
+
+ <cd:command name="usesymbols" file="symb-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showsymbolset" file="symb-run.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-synonym.xml b/tex/context/interface/mkiv/i-synonym.xml
new file mode 100644
index 000000000..c64c1c759
--- /dev/null
+++ b/tex/context/interface/mkiv/i-synonym.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definesynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-plural"/>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupsynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="expansion">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="xml"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="first"/>
+ <cd:constant type="last"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="next">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:threearguments"/>
+ </cd:parameter>
+ <cd:parameter name="textcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="synonymcommand">
+ <cd:constant type="cd:oneargument"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:resolve name="value-sortorder"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:resolve name="value-sortmethod"/>
+ </cd:parameter>
+ <cd:parameter name="criterium">
+ <cd:constant type="current"/>
+ <cd:constant type="previous"/>
+ <cd:constant type="local"/>
+ <cd:constant type="text"/>
+ <cd:constant type="all" default="yes"/>
+ <cd:constant type="cd:section"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="textstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="textcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="synonymstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="synonymcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synonym" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:variable value="synonym"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definesynonym" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:string value="placelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" generated="yes" variant="generated" file="strc-syn.mkiv">
+ <cd:sequence>
+ <cd:string value="completelistof"/>
+ <cd:variable value="synonyms"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registersynonym" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecurrentsynonymused" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecurrentsynonymshown" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetusedsynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetshownsynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofsynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofsynonyms" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-singular"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="abbreviation" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="argument-text"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="infull" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="placelistofabbreviations" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="completelistofabbreviations" file="strc-syn.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupsynonyms"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-system.xml b/tex/context/interface/mkiv/i-system.xml
new file mode 100644
index 000000000..e1404754e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-system.xml
@@ -0,0 +1,3534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="expanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="expanded" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="gobbleoneargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbletwoarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblethreearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblefourarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblefivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblesixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblesevenarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbleeightarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbleninearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbletenarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbleoneoptional" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbletwooptionals" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblethreeoptionals" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblefouroptionals" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblefiveoptionals" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="donothing" file="syst-aux.mkiv"/>
+
+ <cd:command name="doifelsenextchar" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextcharelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenextoptional" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextoptionalelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenextoptionalcs" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextoptionalcselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenextbgroup" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextbgroupelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenextbgroupcs" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextbgroupcselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenextparenthesis" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnextparenthesiselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefastoptionalcheck" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffastoptionalcheckelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefastoptionalcheckcs" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffastoptionalcheckcselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assumelongusagecs" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setgvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setevalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setxvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letgvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="undefinevalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ignorevalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuevalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setugvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuxvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getuvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseundefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifundefinedelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdefinedelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifundefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letbeundefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localundefine" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalundefine" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsealldefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifalldefinedelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doif" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnot" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptyelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinsetelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsecommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcommonelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifcommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotcommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="quitcommalist" file="syst-aux.mkiv"/>
+
+ <cd:command name="quitprevcommalist" file="syst-aux.mkiv"/>
+
+ <cd:command name="processcommacommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcommalistwithparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcommalist" type="environment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcommacommand" type="environment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentcommalistitem" file="syst-aux.mkiv"/>
+
+ <cd:command name="processaction" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command"/>
+ <cd:apply list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processfirstactioninset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command"/>
+ <cd:apply list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processallactionsinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command"/>
+ <cd:apply list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="commalistelement" file="syst-aux.mkiv"/>
+
+ <cd:command name="firstcharacter" file="syst-aux.mkiv"/>
+
+ <cd:command name="remainingcharacters" file="syst-aux.mkiv"/>
+
+ <cd:command name="getfirstcharacter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsefirstchar" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiffirstcharelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thefirstcharacter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="theremainingcharacters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseinstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinstringelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotinstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseincsname" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-csname"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifincsnameelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-csname"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenumber" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnumberelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnumber" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotnumber" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="percentdimen" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="%" prefix="cd:number" method="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setpercentdimen" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="%" prefix="cd:number" method="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="makerawcommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawprocesscommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawprocesscommacommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawdoifelseinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawdoifinsetelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawdoifinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawprocessaction" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command"/>
+ <cd:apply list="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentvalue" file="syst-aux.mkiv"/>
+
+ <cd:command name="getparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="geteparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getgparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getxparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forgetparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getexpandedparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doassign" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doeassign" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="undoassign" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doassignempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processassignmentlist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processassignmentcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processassignmentlist" type="environment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processassignmentcommand" type="environment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentassignmentlistkey" file="syst-aux.mkiv"/>
+
+ <cd:command name="currentassignmentlistvalue" file="syst-aux.mkiv"/>
+
+ <cd:command name="getemptyparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="copyparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-key-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ifparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-true"/>
+ <cd:delimiter name="else"/>
+ <cd:resolve name="string-false"/>
+ <cd:delimiter name="fi"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="commalistsize" file="syst-aux.mkiv"/>
+
+ <cd:command name="getcommalistsize" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getcommacommandsize" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getfromcommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getfromcommacommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ <cd:resolve name="keyword-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dogetcommacommandelement" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number"/>
+ <cd:delimiter name="from"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosingleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dodoubleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotripleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquadrupleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquintupleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosixtupleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doseventupleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosingleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dodoubleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotripleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquadrupleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquintupleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dosixtupleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doseventupleargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="strippedcsname" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="strippedcsname" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:text"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="complexorsimple" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="complexorsimple" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="complexorsimpleempty" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="complexorsimpleempty" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecomplexorsimple" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecomplexorsimple" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecomplexorsimpleempty" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definecomplexorsimpleempty" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:csname"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="permitspacesbetweengroups" file="syst-aux.mkiv"/>
+
+ <cd:command name="dontpermitspacesbetweengroups" file="syst-aux.mkiv"/>
+
+ <cd:command name="dosinglegroupempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dodoublegroupempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotriplegroupempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquadruplegroupempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doquintuplegroupempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ <cd:resolve name="argument-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstofoneargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstoftwoarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondoftwoarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstofthreearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondofthreearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thirdofthreearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstoffourarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondoffourarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thirdoffourarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fourthoffourarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstoffivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondoffivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thirdoffivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fourthoffivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fifthoffivearguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thirdofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fourthofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fifthofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="sixthofsixarguments" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstofoneunexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstoftwounexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondoftwounexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="firstofthreeunexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="secondofthreeunexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thirdofthreeunexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ <cd:resolve name="argument-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalletempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letvalueempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letgvalueempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letvaluerelax" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letgvalurelax" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="relaxvalueifundefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="rawgetparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="texdefinition" type="environment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="spaces"/>
+ <cd:constant type="nospaces"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="global"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="unexpanded"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="expanded"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none">
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ <cd:keywords delimiters="none" optional="yes">
+ <cd:constant type="cd:template"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="texdefinition" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="texcode" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="newcounter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastincrement" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fastdecrement" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="increment" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="increment" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" list="yes">
+ <cd:constant type="cd:csname"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="increment" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="increment" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" list="yes">
+ <cd:constant type="cd:csname"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decrement" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decrement" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" list="yes">
+ <cd:constant type="cd:csname"/>
+ <cd:constant type="cd:number"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="incrementvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="decrementvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="newsignal" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkedstrippedcsname" variant="1" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checkedstrippedcsname" variant="2" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savenormalmeaning" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="recursedepth" file="syst-aux.mkiv"/>
+
+ <cd:command name="recurselevel" file="syst-aux.mkiv"/>
+
+ <cd:command name="dostepwiserecurse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:number" prefix="cd:sign" method="none"/>
+ </cd:keywords>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dorecurse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doexpandedrecurse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowith" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command-list"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doloop" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="exitloop" file="syst-aux.mkiv"/>
+
+ <cd:command name="exitloopnow" file="syst-aux.mkiv"/>
+
+ <cd:command name="dorecurse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doloopoverlist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text-list"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="recursestring" file="syst-aux.mkiv"/>
+
+ <cd:command name="newevery" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="EveryPar" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="EveryLine" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="forgeteverypar" file="syst-aux.mkiv"/>
+
+ <cd:command name="convertvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-name"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defconvertedvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseassignment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifassignmentelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="docheckassignment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ifassignment" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-true"/>
+ <cd:delimiter name="else"/>
+ <cd:resolve name="string-false"/>
+ <cd:delimiter name="fi"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="convertcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defconvertedargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defconvertedcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="edefconvertedargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gdefconvertedargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gdefconvertedcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xdefconvertedargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsemeaning" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifmeaningelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesamestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsamestringelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsamestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotsamestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ConvertToConstant" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ConvertConstantAfter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assignifempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="grabuntil" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processbetween" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbleuntil" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbleuntilrelax" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="relax"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processuntil" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="groupedcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="simplegroupedcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pickupgroupedcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="BeforePar" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="AfterPar" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="GetPar" file="syst-aux.mkiv"/>
+
+ <cd:command name="GotoPar" file="syst-aux.mkiv"/>
+
+ <cd:command name="dowithpargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowithwargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dorepeatwithcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:number" method="factor"/>
+ </cd:keywords>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsestringinstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifstringinstringelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendtoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependtoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendtoksonce" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependtoksonce" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseintoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifintokselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="collecting" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="collect" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="expandedcollect" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="collect" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="collectexpanded" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removetoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="from"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendetoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependetoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-command"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushtoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="beforesplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="aftersplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ <cd:delimiter name="and"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="greedysplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ <cd:delimiter name="and"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="beforetestandsplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="aftertestandsplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testandsplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="at"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ <cd:delimiter name="and"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removesubstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="from"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendtocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependtocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="addtocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pretocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="robustdoifelseinset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="robustdoifinsetelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="robustaddtocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="robustpretocommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xsplitstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="removefromcommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="substituteincommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="replaceincommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalprocesscommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="withoutpt" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PtToCm" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dimensiontocount" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="numberofpoints" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="swapdimens" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="swapcounts" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="swapmacros" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalswapdimens" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalswapcounts" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalswapmacros" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalpushmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localpushmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="globalpopmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localpopmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="pushmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="popmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="localhsize" file="syst-aux.mkiv"/>
+
+ <cd:command name="setlocalhsize" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="cd:dimension" prefix="cd:sign" method="none"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="availablehsize" file="syst-aux.mkiv"/>
+
+ <cd:command name="distributedhsize" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="hsizefraction" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsevalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvalueelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnothing" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsomething" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenothing" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnothingelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesomething" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsomethingelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvaluenothing" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvaluesomething" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsevaluenothing" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvaluenothingelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseemptyvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptyvalueelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptyvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotemptyvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseallcommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifallcommonelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifallcommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotallcommon" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-content-list"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dodoubleemptywithset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-list-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotripleemptywithset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-list-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dodoubleargumentwithset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-list"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dotripleargumentwithset" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="keyword-dummy-list"/>
+ <cd:resolve name="keyword-dummy"/>
+ <cd:resolve name="keyword-dummy"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stripcharacter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-character"/>
+ <cd:delimiter name="from"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="stripspaces" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:delimiter name="from"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unspacestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="executeifdefined" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesomespace" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsomespaceelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processseparatedlist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:csname"/>
+ <cd:constant type="cd:command"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processlist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-character"/>
+ <cd:resolve name="argument-text"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processassignlist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text-list"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="untexargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="untexcommand" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-csname"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PointsToBigPoints" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PointsToWholeBigPoints" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ScaledPointsToBigPoints" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ScaledPointsToWholeBigPoints" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PointsToReal" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dontleavehmode" file="syst-aux.mkiv"/>
+
+ <cd:command name="utfupper" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="utflower" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="uppercasestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lowercasestring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="counttoken" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="in"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="counttokens" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="splitofftokens" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="from"/>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="handletokens" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="with"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settrialtypesetting" file="syst-aux.mkiv"/>
+
+ <cd:command name="resettrialtypesetting" file="syst-aux.mkiv"/>
+
+ <cd:command name="iftrialtypesetting" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-true"/>
+ <cd:delimiter name="else"/>
+ <cd:resolve name="string-false"/>
+ <cd:delimiter name="fi"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="integerrounding" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="onedigitrounding" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="twodigitrounding" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="threedigitrounding" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processcontent" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dogobblesingleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dogobbledoubleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblesingleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobbledoubleempty" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dummy-optional"/>
+ <cd:resolve name="keyword-dummy-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsesometoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsometokselse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifsometoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptytoks" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="strictinspectnextcharacter" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="strictdoifelsenextoptional" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="strictdoifnextoptionalelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gobblespacetokens" file="syst-aux.mkiv"/>
+
+ <cd:command name="verbatimstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lastdigit" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lasttwodigits" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="serializedcommalist" file="syst-aux.mkiv"/>
+
+ <cd:command name="serializecommalist" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-command-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="purenumber" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filterfromvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filterfromnext" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-content-optional"/>
+ <cd:resolve name="argument-content-optional"/>
+ <cd:resolve name="argument-content-optional"/>
+ <cd:resolve name="argument-content-optional"/>
+ <cd:resolve name="argument-content-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definemeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="freezemeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setmeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setgmeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setemeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setxmeasure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="measure" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="measured" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dividedsize" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedimension" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdimensionelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedimenstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdimenstringelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="compresult" file="syst-aux.mkiv"/>
+
+ <cd:command name="comparedimension" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="comparedimensioneps" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letcscsname" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:delimiter name="csname"/>
+ <cd:resolve name="string-name"/>
+ <cd:delimiter name="endcsname"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letcsnamecs" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:delimiter name="csname"/>
+ <cd:resolve name="string-name"/>
+ <cd:delimiter name="endcsname"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="letcsnamecsname" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:delimiter name="csname"/>
+ <cd:resolve name="string-name"/>
+ <cd:delimiter name="endcsname"/>
+ <cd:delimiter name="csname"/>
+ <cd:resolve name="string-name"/>
+ <cd:delimiter name="endcsname"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="addvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unspaced" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unspaceargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-text"/>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unspaceafter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsehasspace" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifhasspaceelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setflag" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetflag" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flag" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseflagged" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifflaggedelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotflagged" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inheritparameter" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="keyword-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsenonzeropositive" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnonzeropositiveelse" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrawparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getraweparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrawgparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getrawxparameters" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-text"/>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unprotected" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-content"/>
+ <cd:delimiter name="par"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettimer" file="syst-aux.mkiv"/>
+
+ <cd:command name="elapsedtime" file="syst-aux.mkiv"/>
+
+ <cd:command name="elapsedseconds" file="syst-aux.mkiv"/>
+
+ <cd:command name="currentfeaturetest" file="syst-aux.mkiv"/>
+
+ <cd:command name="testfeature" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-content"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showtimer" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testfeatureonce" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-content"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="freezedimenmacro" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="negated" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assigndimen" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="appendgvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="prependgvalue" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processranges" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="cd:number" method="range"/>
+ </cd:keywords>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dowithrange" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:number" prefix="cd:number" method="range"/>
+ </cd:keywords>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ignoreimplicitspaces" file="syst-aux.mkiv"/>
+
+ <cd:command name="nointerference" type="environment" file="syst-aux.mkiv"/>
+
+ <cd:command name="expandcheckedcsname" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="docheckedpair" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="constantnumber" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="constantnumberargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="constantdimen" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="constantdimenargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="constantemptyargument" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getsubstring" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="converteddimen" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="ex"/>
+ <cd:constant type="em"/>
+ <cd:constant type="pt"/>
+ <cd:constant type="in"/>
+ <cd:constant type="cm"/>
+ <cd:constant type="mm"/>
+ <cd:constant type="sp"/>
+ <cd:constant type="bp"/>
+ <cd:constant type="pc"/>
+ <cd:constant type="dd"/>
+ <cd:constant type="cc"/>
+ <cd:constant type="nc"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ntimes" file="syst-aux.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-systemlog.xml b/tex/context/interface/mkiv/i-systemlog.xml
new file mode 100644
index 000000000..3f2967912
--- /dev/null
+++ b/tex/context/interface/mkiv/i-systemlog.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="systemlog" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="systemlogfirst" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="systemloglast" file="core-sys.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-table.xml b/tex/context/interface/mkiv/i-table.xml
new file mode 100644
index 000000000..649b198ae
--- /dev/null
+++ b/tex/context/interface/mkiv/i-table.xml
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="table" type="environment" variant="1" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:template/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptables"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="table" type="environment" variant="2" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptables"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabletemplate" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:template/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment" variant="1" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:template/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tables" type="environment" variant="2" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tablehead" type="environment" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabletail" type="environment" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptables" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="text">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="max"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="NL">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="VL">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="HL">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="commands">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="strut"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="strut"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="ReFormat" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-template"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enlarge" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Enlarge" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="use" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Use" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="keyword-template"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="JustLeft" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="JustCenter" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="JustRight" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="Smash" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Raise" variant="1" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Raise" variant="2" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Lower" variant="1" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Lower" variant="2" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number-optional"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="BackSpace" variant="1" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="BackSpace" variant="2" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Vspace" variant="1" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="parentheses" optional="yes">
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="Vspace" variant="2" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="OpenUp" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TableLeft" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TableCenter" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TableRight" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="SR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="FR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="MR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="LR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="AR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="VL" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VC" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="HL" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="HC" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VS" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VD" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VT" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="VN" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TB" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NL" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="NC" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="FC" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="MC" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="LC" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="DL" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="DC" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="DV" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="DR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="TWO" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="THREE" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="FOUR" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="FIVE" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="SIX" scope="table" file="tabl-tab.mkiv"/>
+
+ <cd:command name="SPAN" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="REF" scope="table" file="tabl-tab.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-template"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-tabulation.xml b/tex/context/interface/mkiv/i-tabulation.xml
new file mode 100644
index 000000000..1e6dfc1fc
--- /dev/null
+++ b/tex/context/interface/mkiv/i-tabulation.xml
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definetabulation" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulation"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulation" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="format">
+ <cd:constant type="cd:template"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="small"/>
+ <cd:constant type="medium" default="yes"/>
+ <cd:constant type="big"/>
+ <cd:constant type="none"/>
+ <cd:constant type="blank"/>
+ <cd:constant type="depth" default="yes"/>
+ <cd:constant type="grid"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ <cd:constant type="dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rule">
+ <cd:constant type="line"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="indenting">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="unit">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="inner">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="EQ">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="text"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulation" type="environment" generated="yes" variant="generated" file="tabl-tbl.mkiv">
+ <cd:sequence>
+ <cd:variable value="tabulation"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulation"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:template optional="yes"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuptabulation"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:template optional="yes"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulate"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulate" type="environment" generated="yes" variant="generated" file="tabl-tbl.mkiv">
+ <cd:sequence>
+ <cd:variable value="tabulate"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulate"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulatehead" type="environment" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulatetail" type="environment" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tabulaterule" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="tabulateline" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="tabulateautorule" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="tabulateautoline" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="legend" type="environment" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulate"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="fact" type="environment" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptabulate"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="VL" scope="tabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:color"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NC" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="RC" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="HC" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="EQ" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="RQ" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="HQ" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="NG" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="NN" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="ND" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="NR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="NB" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="CC" scope="tabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CL" scope="tabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CM" scope="tabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="CR" scope="tabulate" file="tabl-tbl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-color-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="SR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="FR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="MR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="LR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="AR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="FL" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="ML" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="LL" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="TL" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="BL" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="HL" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ <cd:command name="HR" scope="tabulate" file="tabl-tbl.mkiv"/>
+
+ -->
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-tagging.xml b/tex/context/interface/mkiv/i-tagging.xml
new file mode 100644
index 000000000..14f413ce3
--- /dev/null
+++ b/tex/context/interface/mkiv/i-tagging.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuptagging" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="auto"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tagged" type="environment" begin="dostart" end="dostop" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseinelement" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifinelementelse" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="taggedlabeltexts" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="namedtaggedlabeltexts" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settaggedmetadata" file="strc-tag.mkiv">
+ <cd:arguments>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-textbackground.xml b/tex/context/interface/mkiv/i-textbackground.xml
new file mode 100644
index 000000000..3b17e0efd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-textbackground.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definetextbackground" file="anch-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptextbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextbackground" file="anch-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="paragraph"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="mp">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="color"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="corner">
+ <cd:constant type="rectangular" default="yes"/>
+ <cd:constant type="round"/>
+ </cd:parameter>
+ <cd:parameter name="level">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="dash">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="radius">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="framecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="voffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="frameoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftoffset">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="rightoffset">
+ <cd:resolve name="value-rightskip"/>
+ </cd:parameter>
+ <cd:parameter name="topoffset">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="bottomoffset">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="line"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textbackground" type="environment" file="anch-bck.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptextbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textbackground" type="environment" generated="yes" variant="generated" file="anch-bck.mkiv">
+ <cd:sequence>
+ <cd:variable value="textbackground"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptextbackground"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textbackground" generated="yes" variant="generated" file="anch-bck.mkiv">
+ <cd:sequence>
+ <cd:variable value="textbackground"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textbackgroundmanual" type="environment" file="anch-bck.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-textflow.xml b/tex/context/interface/mkiv/i-textflow.xml
new file mode 100644
index 000000000..edcf03492
--- /dev/null
+++ b/tex/context/interface/mkiv/i-textflow.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definetextflow" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptextflow"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptextflow" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textflowcollector" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsetextflowcollector" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiftextflowcollectorelse" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsetextflow" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiftextflowelse" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textflow" type="environment" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushtextflow" file="page-flw.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-textrule.xml b/tex/context/interface/mkiv/i-textrule.xml
new file mode 100644
index 000000000..a849f44e1
--- /dev/null
+++ b/tex/context/interface/mkiv/i-textrule.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuptextrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="location">
+ <cd:constant type="left" default="yes"/>
+ <cd:constant type="inmargin"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rulecolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depthcorrection">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="top"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="bottom" default="yes"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="textrule" type="environment" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-texts.xml b/tex/context/interface/mkiv/i-texts.xml
new file mode 100644
index 000000000..009949d35
--- /dev/null
+++ b/tex/context/interface/mkiv/i-texts.xml
@@ -0,0 +1,385 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <!--
+
+ <cd:command name="definelayoutelement" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayoutelement" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="nomarking"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="rightstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="leftcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rightcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuplayouttext" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="setuplayouttext" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:parameter name="state">
+ <cd:constant type="start"/>
+ <cd:constant type="stop"/>
+ <cd:constant type="empty"/>
+ <cd:constant type="high"/>
+ <cd:constant type="none"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="nomarking"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="leftstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="rightstyle">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="leftcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="rightcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptop" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheader" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptext" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfooter" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottom" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:assignments list="yes">
+ <cd:inherit name="setuplayoutelement"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselayouttextline" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflayouttextlineelse" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelselayoutsomeline" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiflayoutsomelineelse" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="noheaderandfooterlines" file="page-txt.mkvi"/>
+
+ <cd:command name="notopandbottomlines" file="page-txt.mkvi"/>
+
+ <cd:command name="setuptoptexts" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupheadertexts" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptexttexts" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupfootertexts" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupbottomtexts" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="text" default="yes"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="settextcontent" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords>
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="middle" default="yes"/>
+ <cd:constant type="right"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetext" file="page-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:constant type="top"/>
+ <cd:constant type="header"/>
+ <cd:constant type="text"/>
+ <cd:constant type="footer"/>
+ <cd:constant type="bottom"/>
+ </cd:keywords>
+ <cd:keywords optional="yes">
+ <cd:constant type="text"/>
+ <cd:constant type="margin"/>
+ <cd:constant type="edge"/>
+ </cd:keywords>
+ <cd:resolve name="keyword-layoutelement"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ <cd:resolve name="keyword-layoutelement-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-thinrule.xml b/tex/context/interface/mkiv/i-thinrule.xml
new file mode 100644
index 000000000..b74286e5e
--- /dev/null
+++ b/tex/context/interface/mkiv/i-thinrule.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupthinrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="height">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="depth">
+ <cd:constant type="max"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="background">
+ <cd:constant type="color"/>
+ </cd:parameter>
+ <cd:parameter name="frame">
+ <cd:constant type="on" default="yes"/>
+ <cd:constant type="off"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="a"/>
+ <cd:constant type="b" default="yes"/>
+ <cd:constant type="c"/>
+ <cd:constant type="none"/>
+ </cd:parameter>
+ <cd:parameter name="backgroundcolor">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="interlinespace">
+ <cd:constant type="small" default="yes"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="inbetween">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="n">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="thinrule" file="pack-mrl.mkiv"/>
+
+ <cd:command name="hairline" file="pack-mrl.mkiv"/>
+
+ <cd:command name="thinrules" file="pack-mrl.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupthinrules"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-token.xml b/tex/context/interface/mkiv/i-token.xml
new file mode 100644
index 000000000..2cc0f4674
--- /dev/null
+++ b/tex/context/interface/mkiv/i-token.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="tokens" type="environment" file="toks-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="flushtokens" file="toks-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showtokens" file="toks-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="testtokens" file="toks-tra.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-tolerance.xml b/tex/context/interface/mkiv/i-tolerance.xml
new file mode 100644
index 000000000..26b554132
--- /dev/null
+++ b/tex/context/interface/mkiv/i-tolerance.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setuptolerance" file="spac-hor.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes">
+ <cd:constant type="horizontal"/>
+ <cd:constant type="vertical"/>
+ <cd:constant type="verystrict"/>
+ <cd:constant type="strict"/>
+ <cd:constant type="tolerant"/>
+ <cd:constant type="verytolerant"/>
+ <cd:constant type="space"/>
+ <cd:constant type="stretch"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-tooltip.xml b/tex/context/interface/mkiv/i-tooltip.xml
new file mode 100644
index 000000000..775d0abcf
--- /dev/null
+++ b/tex/context/interface/mkiv/i-tooltip.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definetooltip" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptooltip"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptooltip" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="location">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right" default="yes"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" generated="yes" variant="generated:1" file="scrn-fld.mkvi">
+ <cd:sequence>
+ <cd:variable value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptooltip"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" generated="yes" variant="generated:2" file="scrn-fld.mkvi">
+ <cd:sequence>
+ <cd:variable value="tooltip"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" variant="1" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptooltip"/>
+ </cd:assignments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tooltip" variant="2" file="scrn-fld.mkvi">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="left"/>
+ <cd:constant type="middle"/>
+ <cd:constant type="right"/>
+ </cd:keywords>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-tracker.xml b/tex/context/interface/mkiv/i-tracker.xml
new file mode 100644
index 000000000..e2b48ade2
--- /dev/null
+++ b/tex/context/interface/mkiv/i-tracker.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="installtextracker" file="trac-ctx.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installtexdirective" file="trac-ctx.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="enabletrackers" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disabletrackers" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resettrackers" file="trac-deb.mkiv"/>
+
+ <cd:command name="showtrackers" file="trac-deb.mkiv"/>
+
+ <cd:command name="enabledirectives" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disabledirectives" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showdirectives" file="trac-deb.mkiv"/>
+
+ <cd:command name="enableexperiments" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="disableexperiments" file="trac-deb.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showexperiments" file="trac-deb.mkiv"/>
+
+ <cd:command name="showedebuginfo" file="trac-deb.mkiv"/>
+
+ <cd:command name="overloaderror" file="trac-deb.mkiv"/>
+
+ <cd:command name="showlogcategories" file="trac-deb.mkiv"/>
+
+ <cd:command name="showjustification" file="trac-jus.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-translation.xml b/tex/context/interface/mkiv/i-translation.xml
new file mode 100644
index 000000000..f4f77c526
--- /dev/null
+++ b/tex/context/interface/mkiv/i-translation.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="translate" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="cd:language">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="assigntranslation" file="lang-lab.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="cd:language">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ </cd:assignments>
+ <cd:delimiter name="to"/>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-twopassdata.xml b/tex/context/interface/mkiv/i-twopassdata.xml
new file mode 100644
index 000000000..f30b8bb23
--- /dev/null
+++ b/tex/context/interface/mkiv/i-twopassdata.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="immediatesavetwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savetwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lazysavetwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="savetaggedtwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="lazysavetaggedtwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetwopasslist" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gettwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="checktwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="findtwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getfirsttwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getlasttwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getnamedtwopassdatalist" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="gettwopassdatalist" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseintwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifintwopassdataelse" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getfromtwopassdata" file="core-two.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-typography.xml b/tex/context/interface/mkiv/i-typography.xml
new file mode 100644
index 000000000..ffb80c211
--- /dev/null
+++ b/tex/context/interface/mkiv/i-typography.xml
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="normalizetextwidth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizetextheight" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizetextdepth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizetextline" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizefontwidth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizefontheight" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizefontdepth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizefontline" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="widthspanningtext" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="heightspanningtext" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="depthspanningtext" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="linespanningtext" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="normalizedfontsize" file="typo-txt.mkvi"/>
+
+ <cd:command name="NormalizeTextWidth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NormalizeTextHeight" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-font"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NormalizeFontWidth" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="NormalizeFontHeight" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:csname/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="WidthSpanningText" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-dimension"/>
+ <cd:resolve name="argument-font"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TheNormalizedFontSize" file="typo-txt.mkvi"/>
+
+ <cd:command name="nicelyfilledbox" type="environment" file="typo-txt.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="width">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="height">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="offset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="strut">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-unit.xml b/tex/context/interface/mkiv/i-unit.xml
new file mode 100644
index 000000000..3502b544a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-unit.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="digits" variant="1" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="digits" variant="2" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="defineunit" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupunit"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupunit" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="method">
+ <cd:constant type="1"/>
+ <cd:constant type="2"/>
+ <cd:constant type="3"/>
+ <cd:constant type="4"/>
+ <cd:constant type="5"/>
+ <cd:constant type="6"/>
+ </cd:parameter>
+ <cd:parameter name="language">
+ <cd:constant type="cd:language"/>
+ </cd:parameter>
+ <cd:parameter name="alternative">
+ <cd:constant type="text"/>
+ <cd:constant type="mathematics"/>
+ </cd:parameter>
+ <cd:parameter name="order">
+ <cd:constant type="reverse"/>
+ <cd:constant type="normal" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="separator">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="normal" default="yes"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unit" generated="yes" variant="generated" file="phys-dim.mkiv">
+ <cd:sequence>
+ <cd:variable value="unit"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unit" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installunitsseparator" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installunitsspace" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="registerunit" file="phys-dim.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="prefix"/>
+ <cd:constant type="unit" default="yes"/>
+ <cd:constant type="operator"/>
+ <cd:constant type="suffixe"/>
+ <cd:constant type="symbol"/>
+ <cd:constant type="packaged"/>
+ </cd:keywords>
+ <cd:resolve name="assignment-userdata-list"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-variables.xml b/tex/context/interface/mkiv/i-variables.xml
new file mode 100644
index 000000000..28aaa6df4
--- /dev/null
+++ b/tex/context/interface/mkiv/i-variables.xml
@@ -0,0 +1,356 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setvariables" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="set">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setevariables" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="set">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setgvariables" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="set">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setxvariables" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="set">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-value"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setevariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-value"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setgvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-value"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setxvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-value"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsevariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvariableelse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseemptyvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptyvariableelse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifemptyvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotemptyvariable" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getvariabledefault" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupenv" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="set">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="reset">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="cd:key">
+ <cd:constant type="cd:value"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseenv" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifenvelse" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifenv" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotenv" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="env" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="envvar" file="core-env.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-key"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdocumentfilename" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdocumentargument" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setdocumentargumentdefault" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdocumentfilename" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdocumentargument" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="getdocumentargumentdefault" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedocumentargument" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdocumentargumentelse" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdocumentargument" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotdocumentargument" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsedocumentfilename" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdocumentfilenameelse" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifdocumentfilename" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifnotdocumentfilename" file="luat-ini.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-verbatim.xml b/tex/context/interface/mkiv/i-verbatim.xml
new file mode 100644
index 000000000..7026d2b10
--- /dev/null
+++ b/tex/context/interface/mkiv/i-verbatim.xml
@@ -0,0 +1,449 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definetype" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptype" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="option">
+ <cd:constant type="mp"/>
+ <cd:constant type="lua"/>
+ <cd:constant type="xml"/>
+ <cd:constant type="parsed-xml"/>
+ <cd:constant type="nested"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="context"/>
+ <cd:constant type="none"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="command">
+ <cd:constant type="cd:csname"/>
+ </cd:parameter>
+ <cd:parameter name="left">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="right">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="compact">
+ <cd:constant type="absolute"/>
+ <cd:constant type="last"/>
+ <cd:constant type="all" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="hyphenated"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:angles/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typ" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:angles/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" generated="yes" variant="generated:1" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:variable value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="type" generated="yes" variant="generated:2" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:variable value="type"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptype"/>
+ </cd:assignments>
+ <cd:angles/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definetyping" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setuptyping" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional-list"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="oddmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="evenmargin">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="margin">
+ <cd:resolve name="value-leftskip"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="mp"/>
+ <cd:constant type="lua"/>
+ <cd:constant type="xml"/>
+ <cd:constant type="parsed-xml"/>
+ <cd:constant type="nested"/>
+ <cd:constant type="tex"/>
+ <cd:constant type="context"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="style">
+ <cd:resolve name="value-style"/>
+ </cd:parameter>
+ <cd:parameter name="color">
+ <cd:constant type="cd:color"/>
+ </cd:parameter>
+ <cd:parameter name="align">
+ <cd:inherit name="setupalign"/>
+ </cd:parameter>
+ <cd:parameter name="lines">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="hyphenated"/>
+ </cd:parameter>
+ <cd:parameter name="space">
+ <cd:constant type="on"/>
+ <cd:constant type="off" default="yes"/>
+ <cd:constant type="normal"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="stretch"/>
+ </cd:parameter>
+ <cd:parameter name="keeptogether">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="before">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="after">
+ <cd:constant type="cd:command"/>
+ </cd:parameter>
+ <cd:parameter name="strip">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="range">
+ <cd:constant type="cd:number"/>
+ <cd:constant type="cd:name"/>
+ </cd:parameter>
+ <cd:parameter name="tab">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="escape">
+ <cd:constant type="yes"/>
+ <cd:constant type="no" default="yes"/>
+ <cd:constant type="cd:text"/>
+ <cd:constant type="cd:text" prefix="cd:processor" method="apply"/>
+ </cd:parameter>
+ <cd:parameter name="indentnext">
+ <cd:resolve name="value-indentnext"/>
+ </cd:parameter>
+ <cd:parameter name="continue">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="start">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="stop">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="step">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="numbering">
+ <cd:constant type="file"/>
+ <cd:constant type="line"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="blank">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" variant="generated:1" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typing" type="environment" generated="yes" variant="generated:2" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:variable value="typing"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="tex" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="arg" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="mat" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="dis" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="astype" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="asciistr" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="verbatim" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filename" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="typefile" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelsetypingfile" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doiftypingfileelse" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="LUA" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="LUA" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:sequence>
+ <cd:variable value="lua"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MP" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="MP" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="XML" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="XML" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PARSEDXML" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="PARSEDXML" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TEX" type="environment" variant="1" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setuptyping"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="TEX" type="environment" variant="2" file="buff-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="continue"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-version.xml b/tex/context/interface/mkiv/i-version.xml
new file mode 100644
index 000000000..d01659815
--- /dev/null
+++ b/tex/context/interface/mkiv/i-version.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupversion" file="page-inf.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="concept"/>
+ <cd:constant type="file"/>
+ <cd:constant type="temporary"/>
+ <cd:constant type="final"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="version" file="page-inf.mkiv">
+ <cd:arguments>
+ <cd:keywords>
+ <cd:constant type="concept"/>
+ <cd:constant type="file"/>
+ <cd:constant type="temporary"/>
+ <cd:constant type="final"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="installversioninfo" file="page-inf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-command"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="includeversioninfo" file="page-inf.mkiv">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseolderversion" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifolderversionelse" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifelseoldercontext" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="doifoldercontextelse" file="file-mod.mkvi">
+ <cd:arguments>
+ <cd:resolve name="argument-number"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-viewerlayer.xml b/tex/context/interface/mkiv/i-viewerlayer.xml
new file mode 100644
index 000000000..3de29b1fd
--- /dev/null
+++ b/tex/context/interface/mkiv/i-viewerlayer.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="defineviewerlayer" file="attr-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupviewerlayer"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupviewerlayer" file="attr-lay.mkiv">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="title">
+ <cd:constant type="cd:text"/>
+ </cd:parameter>
+ <cd:parameter name="state">
+ <cd:constant type="start" default="yes"/>
+ <cd:constant type="stop"/>
+ </cd:parameter>
+ <cd:parameter name="export">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="printable">
+ <cd:constant type="yes" default="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ <cd:parameter name="scope">
+ <cd:constant type="local" default="yes"/>
+ <cd:constant type="global"/>
+ </cd:parameter>
+ <cd:parameter name="method">
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="command"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="viewerlayer" type="environment" file="attr-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="viewerlayer" type="environment" generated="yes" variant="generated" file="attr-lay.mkiv">
+ <cd:sequence>
+ <cd:variable value="viewerlayer"/>
+ </cd:sequence>
+ </cd:command>
+
+ <cd:command name="viewerlayer" file="attr-lay.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showlayoutcomponents" file="attr-lay.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-visualizer.xml b/tex/context/interface/mkiv/i-visualizer.xml
new file mode 100644
index 000000000..fd7198f9d
--- /dev/null
+++ b/tex/context/interface/mkiv/i-visualizer.xml
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="ruledhbox" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledvbox" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledvtop" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledtopv" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledhpack" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledvpack" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledtpack" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="ruledmbox" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxr" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxg" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxb" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxc" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxm" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxy" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="filledhboxk" file="trac-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-boxoptions"/>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showmakeup" file="trc-vis.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="makeup" default="yes"/>
+ <cd:constant type="all"/>
+ <cd:constant type="boxes"/>
+ <cd:constant type="glyph"/>
+ <cd:constant type="fontkern"/>
+ <cd:constant type="hbox"/>
+ <cd:constant type="vbox"/>
+ <cd:constant type="vtop"/>
+ <cd:constant type="kern"/>
+ <cd:constant type="glue"/>
+ <cd:constant type="penalty"/>
+ <cd:constant type="strut"/>
+ <cd:constant type="whatsit"/>
+ <cd:constant type="simple"/>
+ <cd:constant type="simplehbox"/>
+ <cd:constant type="simplevbox"/>
+ <cd:constant type="simplevtop"/>
+ <cd:constant type="user"/>
+ <cd:constant type="math"/>
+ <cd:constant type="italic"/>
+ <cd:constant type="origin"/>
+ <cd:constant type="reset"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="showallmakeup" file="trc-vis.mkiv"/>
+
+ <cd:command name="showboxes" file="trc-vis.mkiv"/>
+
+ <cd:command name="showglyphs" file="trc-vis.mkiv"/>
+
+ <cd:command name="showfontkerns" file="trc-vis.mkiv"/>
+
+ <cd:command name="setvisualizerfont" file="trc-vis.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-font-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="resetvisualizers" file="trc-vis.mkiv"/>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-vspace.xml b/tex/context/interface/mkiv/i-vspace.xml
new file mode 100644
index 000000000..4618fc00a
--- /dev/null
+++ b/tex/context/interface/mkiv/i-vspace.xml
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definevspacingamount" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ <cd:resolve name="keyword-dimension-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="definevspacing" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:keywords>
+ <cd:inherit name="vspacing"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vspacing" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="preference"/>
+ <cd:constant type="samepage"/>
+ <cd:constant type="max"/>
+ <cd:constant type="force"/>
+ <cd:constant type="enable"/>
+ <cd:constant type="disable"/>
+ <cd:constant type="nowhite"/>
+ <cd:constant type="back"/>
+ <cd:constant type="overlay"/>
+ <cd:constant type="always"/>
+ <cd:constant type="weak"/>
+ <cd:constant type="strong"/>
+ <cd:constant type="default"/>
+ <cd:constant type="before"/>
+ <cd:constant type="inbetween"/>
+ <cd:constant type="after"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="none"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="quarterline"/>
+ <cd:constant type="formula"/>
+ <cd:constant type="white"/>
+ <cd:constant type="height"/>
+ <cd:constant type="depth"/>
+ <cd:constant type="standard"/>
+ <cd:constant type="small" prefix="cd:number" method="factor"/>
+ <cd:constant type="medium" prefix="cd:number" method="factor"/>
+ <cd:constant type="big" prefix="cd:number" method="factor"/>
+ <cd:constant type="line" prefix="cd:number" method="factor"/>
+ <cd:constant type="halfline" prefix="cd:number" method="factor"/>
+ <cd:constant type="quarterline" prefix="cd:number" method="factor"/>
+ <cd:constant type="formula" prefix="cd:number" method="factor"/>
+ <cd:constant type="white" prefix="cd:number" method="factor"/>
+ <cd:constant type="height" prefix="cd:number" method="factor"/>
+ <cd:constant type="depth" prefix="cd:number" method="factor"/>
+ <cd:constant type="cd:number" prefix="category" method="range"/>
+ <cd:constant type="cd:number" prefix="order" method="range"/>
+ <cd:constant type="cd:number" prefix="penalty" method="range"/>
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="cd:name"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="directvspacing" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords delimiters="braces" list="yes">
+ <cd:inherit name="vspacing"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupvspacing" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="vspacing"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupblank" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="vspacing"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="blank" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:inherit name="vspacing"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="useblankparameter" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:csname/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="inhibitblank" file="spac-ver.mkiv"/>
+
+ <cd:command name="synchronizeblank" file="spac-ver.mkiv"/>
+
+ <cd:command name="definevspace" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vspace" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="godown" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="keyword-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="vglue" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:resolve name="string-dimension"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="smallskip" file="spac-ver.mkiv"/>
+
+ <cd:command name="medskip" file="spac-ver.mkiv"/>
+
+ <cd:command name="bigskip" file="spac-ver.mkiv"/>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-whitespace.xml b/tex/context/interface/mkiv/i-whitespace.xml
new file mode 100644
index 000000000..8f9fa0823
--- /dev/null
+++ b/tex/context/interface/mkiv/i-whitespace.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="setupwhitespace" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="fix"/>
+ <cd:constant type="fixed"/>
+ <cd:constant type="flexible"/>
+ <cd:constant type="line"/>
+ <cd:constant type="halfline"/>
+ <cd:constant type="quarterline"/>
+ <cd:constant type="none" default="yes"/>
+ <cd:constant type="small"/>
+ <cd:constant type="medium"/>
+ <cd:constant type="big"/>
+ <cd:constant type="default"/>
+ <cd:constant type="cd:dimension"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="synchronizewhitespace" file="spac-ver.mkiv"/>
+
+ <cd:command name="correctwhitespace" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:content/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="packed" type="environment" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords optional="yes">
+ <cd:constant type="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="unpacked" type="environment" file="spac-ver.mkiv"/>
+
+ <cd:command name="linecorrection" type="environment" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="blank"/>
+ <cd:inherit name="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="locallinecorrection" type="environment" file="spac-ver.mkiv">
+ <cd:arguments>
+ <cd:keywords list="yes" optional="yes">
+ <cd:constant type="blank"/>
+ <cd:inherit name="blank"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface> \ No newline at end of file
diff --git a/tex/context/interface/mkiv/i-xml.xml b/tex/context/interface/mkiv/i-xml.xml
new file mode 100644
index 000000000..c13196383
--- /dev/null
+++ b/tex/context/interface/mkiv/i-xml.xml
@@ -0,0 +1,827 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands" file="lxml-ini.mkiv">
+
+ <!-- the definitions themselves -->
+
+ <cd:command name="xmlmain">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflush">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlpure">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushtext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushpure">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlnonspace">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushspacewise">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushlinewise">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlall">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmllastmatch"/>
+
+ <cd:command name="xmlfirst">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmllast">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlcontext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushcontext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlshow">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinfo">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlfilter">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlstrip">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlstripped">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlstripnolines">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlstrippednolines">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlposition">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlelement">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlpos">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsnippet">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-number"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlconcat">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlconcatrange">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-first"/>
+ <cd:resolve name="argument-last"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlcommand">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinlineverbatim">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinlineverbatim" type="environment">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldisplayverbatim">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldisplayverbatim" type="environment">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlverbatim">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprettyprint">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlloadfile">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlloadbuffer">
+ <cd:arguments>
+ <cd:resolve name="argument-buffer"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlloaddata">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlloadonly">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprocessfile">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-file"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprocessbuffer">
+ <cd:arguments>
+ <cd:resolve name="argument-buffer"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprocessdata">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ <cd:resolve name="argument-xmlsetup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinclude">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlname">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlpath">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlnamespace">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltag">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlcount">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlatt">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlattdef">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlrefatt">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmllastatt"/>
+
+ <cd:command name="xmlattribute">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlattributedef">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlchainatt">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlchainattdef">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldirectives">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldirectivesbefore">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldirectivesafter">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinstalldirective">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-csname"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsetsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlremovesetup">
+ <cd:arguments>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlremovedocumentsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlflushdocumentsetups">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlresetsetups">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlresetdocumentsetups">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprependsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlappendsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlbeforesetup">
+ <cd:arguments>
+ <cd:resolve name="argument-setup"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlaftersetup">
+ <cd:arguments>
+ <cd:resolve name="argument-setup"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlprependdocumentsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlappenddocumentsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlbeforedocumentsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlafterdocumentsetup">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlregisteredsetups">
+ </cd:command>
+
+ <cd:command name="xmlregistereddocumentsetups">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-setup"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsetfunction">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:luafunction"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoif">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifnot">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifelse">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoiftext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifnottext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifelsetext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifselfempty">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifnotselfempty">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-true"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifelseselfempty">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifelseempty">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlregisterns">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:keywords delimiters="braces">
+ <cd:constant type="cd:url"/>
+ </cd:keywords>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlregisterns">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlremapname">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlremapnamespace">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlchecknamespace">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlmapvalue">
+ <cd:arguments>
+ <cd:resolve name="argument-category"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlvalue">
+ <cd:arguments>
+ <cd:resolve name="argument-category"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldoifelsevalue">
+ <cd:arguments>
+ <cd:resolve name="argument-category"/>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-true"/>
+ <cd:resolve name="argument-false"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlloaddirectives">
+ <cd:arguments>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlsave">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltofile">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-file"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltobuffer">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-buffer"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltobufferverbose">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-buffer"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!--
+
+ <cd:command name="xmltoparameters">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ <cd:resolve name="argument-lpath"/>
+ <cd:resolve name="argument-buffer"/>
+ </cd:arguments>
+ </cd:command>
+
+ -->
+
+ <cd:command name="xmladdindex">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinclusion">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinclusions">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlbadinclusions">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlraw">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlraw" type="environment"/>
+
+ <!-- injectors -->
+
+ <cd:command name="xmlresetinjectors"/>
+
+ <cd:command name="xmlsetinjectors">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlinjector">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmlapplyselectors">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- entities -->
+
+ <cd:command name="xmlsetentity">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmltexentity">
+ <cd:arguments>
+ <cd:resolve name="argument-name"/>
+ <cd:resolve name="argument-text"/>
+ </cd:arguments>
+ </cd:command>
+
+ <!-- general setup -->
+
+ <cd:command name="setupxml">
+ <cd:arguments>
+ <cd:assignments list="yes">
+ <cd:parameter name="default">
+ <cd:constant type="hidden"/>
+ <cd:constant type="none"/>
+ <cd:constant type="text"/>
+ </cd:parameter>
+ <cd:parameter name="compress">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ </cd:parameter>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xmldefaulttotext">
+ <cd:arguments>
+ <cd:resolve name="argument-node"/>
+ </cd:arguments>
+ </cd:command>
+
+</cd:interface>
diff --git a/tex/context/interface/mkiv/i-xtable.xml b/tex/context/interface/mkiv/i-xtable.xml
new file mode 100644
index 000000000..31b4a6842
--- /dev/null
+++ b/tex/context/interface/mkiv/i-xtable.xml
@@ -0,0 +1,247 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?context-directive job ctxfile x-setups.ctx ?>
+
+<cd:interface xmlns:cd="http://www.pragma-ade.com/commands">
+
+ <cd:command name="definextable" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name"/>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="setupxtable" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-list-optional"/>
+ <cd:assignments list="yes">
+ <cd:parameter name="textwidth">
+ <cd:constant type="cd:dimension"/>
+ <cd:constant type="local" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="bodyfont">
+ <cd:inherit name="setupbodyfont"/>
+ </cd:parameter>
+ <cd:parameter name="spaceinbetween">
+ <cd:inherit name="blank"/>
+ </cd:parameter>
+ <cd:parameter name="option">
+ <cd:constant type="tight"/>
+ <cd:constant type="max"/>
+ <cd:constant type="stretch"/>
+ <cd:constant type="width"/>
+ <cd:constant type="height"/>
+ <cd:constant type="fixed"/>
+ </cd:parameter>
+ <cd:parameter name="textheight">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="maxwidth">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="columndistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="leftmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="rightmargindistance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="header">
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="footer">
+ <cd:constant type="repeat"/>
+ </cd:parameter>
+ <cd:parameter name="rulethickness">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="split">
+ <cd:constant type="yes"/>
+ <cd:constant type="no"/>
+ <cd:constant type="repeat"/>
+ <cd:constant type="auto" default="yes"/>
+ </cd:parameter>
+ <cd:parameter name="splitoffset">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:parameter name="samepage">
+ <cd:constant type="before"/>
+ <cd:constant type="after"/>
+ <cd:constant type="both"/>
+ </cd:parameter>
+ <cd:parameter name="distance">
+ <cd:constant type="cd:dimension"/>
+ </cd:parameter>
+ <cd:inherit name="setupframed"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtable" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtable" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="embeddedxtable" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="embeddedxtable" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtable" type="environment" generated="yes" variant="generated" file="tabl-xtb.mkvi">
+ <cd:sequence>
+ <cd:variable value="xtable"/>
+ </cd:sequence>
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="processxtablebuffer" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrow" type="environment" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xcell" type="environment" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:parameter name="nx">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="ny">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nc">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:parameter name="nr">
+ <cd:constant type="cd:number"/>
+ </cd:parameter>
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablehead" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablehead" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablefoot" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablefoot" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablenext" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablenext" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablebody" type="environment" variant="1" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xtablebody" type="environment" variant="2" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xgroup" type="environment" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xrowgroup" type="environment" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="xcellgroup" type="environment" file="tabl-xtb.mkvi">
+ <cd:arguments>
+ <cd:resolve name="keyword-name-optional"/>
+ <cd:assignments list="yes" optional="yes">
+ <cd:inherit name="setupxtable"/>
+ </cd:assignments>
+ </cd:arguments>
+ </cd:command>
+
+ <cd:command name="currentxtablerow" file="tabl-xtb.mkvi"/>
+
+ <cd:command name="currentxtablecolumn" file="tabl-xtb.mkvi"/>
+
+</cd:interface>
diff --git a/tex/context/modules/mkiv/s-math-repertoire.mkiv b/tex/context/modules/mkiv/s-math-repertoire.mkiv
index 230eb513e..5faf54b99 100644
--- a/tex/context/modules/mkiv/s-math-repertoire.mkiv
+++ b/tex/context/modules/mkiv/s-math-repertoire.mkiv
@@ -473,7 +473,8 @@
% \setupbodyfont[pagella, 12pt]
% \setupbodyfont[bonum, 12pt]
% \setupbodyfont[schola, 12pt]
- \setupbodyfont[dejavu, 12pt]
+ % \setupbodyfont[dejavu, 12pt]
+ \setupbodyfont[lucidaot, 12pt]
} {
diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua
index eacdb1b4e..178757a7d 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 : 07/07/16 23:58:34
+-- merge date : 07/08/16 17:19:16
do -- begin closure to overcome local limits and interference
diff --git a/tex/generic/context/luatex/luatex-mplib.lua b/tex/generic/context/luatex/luatex-mplib.lua
index fd6eb975c..976bb59f9 100644
--- a/tex/generic/context/luatex/luatex-mplib.lua
+++ b/tex/generic/context/luatex/luatex-mplib.lua
@@ -352,7 +352,7 @@ else
return not (sx==1 and rx==0 and ry==0 and sy==1 and tx==0 and ty==0), t.width
end
- local function concat(px, py) -- no tx, ty here
+ local function concatinated(px, py) -- no tx, ty here
return (sy*px-ry*py)/divider,(sx*py-rx*px)/divider
end
@@ -401,29 +401,29 @@ else
for i=1,#path do
pth = path[i]
if not ith then
- pdf_literalcode("%f %f m",concat(pth.x_coord,pth.y_coord))
+ pdf_literalcode("%f %f m",concatinated(pth.x_coord,pth.y_coord))
elseif curved(ith,pth) then
- local a, b = concat(ith.right_x,ith.right_y)
- local c, d = concat(pth.left_x,pth.left_y)
- pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(pth.x_coord, pth.y_coord))
+ local a, b = concatinated(ith.right_x,ith.right_y)
+ local c, d = concatinated(pth.left_x,pth.left_y)
+ pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concatinated(pth.x_coord, pth.y_coord))
else
- pdf_literalcode("%f %f l",concat(pth.x_coord, pth.y_coord))
+ pdf_literalcode("%f %f l",concatinated(pth.x_coord, pth.y_coord))
end
ith = pth
end
if not open then
local one = path[1]
if curved(pth,one) then
- local a, b = concat(pth.right_x,pth.right_y)
- local c, d = concat(one.left_x,one.left_y)
- pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concat(one.x_coord, one.y_coord))
+ local a, b = concatinated(pth.right_x,pth.right_y)
+ local c, d = concatinated(one.left_x,one.left_y)
+ pdf_literalcode("%f %f %f %f %f %f c",a,b,c,d,concatinated(one.x_coord, one.y_coord))
else
- pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord))
+ pdf_literalcode("%f %f l",concatinated(one.x_coord,one.y_coord))
end
elseif #path == 1 then
-- special case .. draw point
local one = path[1]
- pdf_literalcode("%f %f l",concat(one.x_coord,one.y_coord))
+ pdf_literalcode("%f %f l",concatinated(one.x_coord,one.y_coord))
end
return t
end