[NTG-context] (MkVI) Regression in named parameters, TL2013 to current

Rik Kabel context at rik.users.panix.com
Sat Mar 1 00:45:17 CET 2014

% macros=mkvi






\subject{Regression between TL2013 and current beta}

There does appear to have been some change or regression in the
definition of allowed characters in parameter names between the
versions of TL2013 ({\tt ConTeXt ver: 2013.05.28 00:36 MKIV current
fmt: 2013.12.11}) and the current standalone beta ({\tt ConTeXt ver:
2014.02.14 17:07 MKIV beta fmt:2014.2.14})

The definition
BAR, U00A6) is processed without error and gives an acceptable
result under TL2013. Under the current beta it fails.

When warnings are skipped in the current beta, the generated PDF
shows that the trailing BROKEN BAR appears to be treated as a part
of the parameter name: \Named[value].

With numbered parameters (\type{\def\Numbered[#1]{¦#1¦}}), all is
well in both versions: \Numbered[value].

This issue makes it difficult to convert macros that use delimiters
(for example, \type{\def\ABC#1×#2¦{#1\ #2}}) to Mark VI syntax, and
difficult to create such macros under Mark VI.

\subject{What is allowed \ä<^>?z}

What characters are acceptable in Mark VI parameter names?

What characters are acceptable in Mark IV and Mark VI macro names?

The wiki states: \quotation{Mark VI is identical to Mark IV in
every respect, except that when you define a new macro you can give
parameters names instead of numbers.} Other than that, there is no

Experimentation shows that many more characters are allowed in
\CONTEXT{} identifiers than are generally allowed with other \TeX{}
engines. The definition providing the last part of the subject of
this section, \type{\def\ä<^>?z{Ä<^>?}}, presents no problems.
(That definition fails in Lua\TeX, \pdfTeX, and \XeTeX. I have never
used Mark II, and do not have Ruby installed to enable a test.)

Rik Kabel


More information about the ntg-context mailing list