From 0d0874ba797ee44f9fa53ed0fe95d7a863bf2f1b Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 6 Feb 2023 19:14:14 +0100 Subject: 2023-02-06 17:57:00 --- .../manuals/luametatex/luametatex-building.tex | 28 ++++++++++++++++++++-- .../manuals/luametatex/luametatex-enhancements.tex | 25 +++++++++++++++++-- .../general/manuals/luametatex/luametatex-math.tex | 7 +++--- .../general/manuals/luametatex/luametatex-tex.tex | 4 ++-- 4 files changed, 55 insertions(+), 9 deletions(-) (limited to 'doc') diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-building.tex b/doc/context/sources/general/manuals/luametatex/luametatex-building.tex index 4941a5929..ca09c53f9 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-building.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-building.tex @@ -368,7 +368,8 @@ the acceptable range is from 0 to 65535. \stopsubsection -\startsubsection[title={\prm {hrule}, \prm {vrule}, \prm {srule}, \prm {nohrule} and \prm {novrule}}] +\startsubsection[title={\prm {hrule}, \prm {vrule}, \prm {srule}, \prm {nohrule}, \prm {novrule}, +\prm {virtualhrule} and \prm {virtualvrule}}] \topicindex {rules} @@ -473,7 +474,22 @@ combination. This is especially important in math mode where then can adapt to \stoplines Because this kind of rules has a dedicated subtype you can intercept it in the backend -if needed. +if needed. The two virtual variants are special in the way that they are like normal +rules but take no space. Can you figure out how to get this? + +\startlinecorrection[blank] +\dontleavehmode \hbox{% + \hbox{\green before}% + {\darkblue \virtualvrule width 40pt height -2pt depth 4pt xoffset -20pt\relax}% + \hbox{\red after}% +} +\stoplinecorrection + +% \vskip5pt + +% \ruledvbox{\ruledhbox to 10pt{\green x} +% \virtualhrule width 10pt height 2pt depth 2pt yoffset -2pt \relax +% \ruledhbox to 10pt{\red x}} \stopsubsection @@ -604,6 +620,14 @@ Adapting will recalculate the dimensions with a scale factor for the glue: \stopsubsection +\startsubsection[title={\prm {boxvadjust}}] + +This primitive binds a \prm {vadjust} to a box and therefore also accepts the +\type {pre} and \type {post} keywords which means that you can prepend and append +as the box itself gets flushed. + +\stopsubsection + \startsubsection[title={Overshooting dimensions}] \topicindex {boxes+overfull} diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex index b64bcd4bc..13bc3a3e3 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-enhancements.tex @@ -969,8 +969,8 @@ An \prm {expandedafter} primitive is also provided as an variant on \prm \stopsubsection -\startsubsection[title={\prm {semiprotected}, \prm {semiexpanded}, \prm {expand} and -\prm {semiexpand}}] +\startsubsection[title={\prm {semiprotected}, \prm {semiexpanded}, \prm {expand}, +\prm {semiexpand} and \prm {expandactive}}] These primitives can best be explained with a few examples. The semi boils down to a bit more controlled usage of \prm {protected} macros. @@ -1013,6 +1013,23 @@ I admit that is not yet applied much in \CONTEXT\ as we have no real need for it and I implemented it more out for nostalgic reasons: the kind of selective protect mechanism we have in \MKII. +Assuming that \type {~} is made active: + +\starttyping +\protected\def~{!} + +\edef\xxxx{~} +\edef\xxxx{\expandactive~} +\stoptyping + +In both cases the meaning will show \type {~} so it's kind of subtle because in reality +they have the following internal representation: + +\starttyping +active char 126 +protected call ~ +\stoptyping + \stopsubsection \startsubsection[title={Going ahead with \prm {expandafterpars} and \prm {expandafterspaces}}] @@ -1926,6 +1943,10 @@ This is slightly more efficient than constructing the string twice (deep down in \LUATEX\ this also involves some \UTF8 juggling), but probably more relevant is that it saves a few tokens and can make code a bit more readable. +Active characters are stored in the hash with a special prefix sequence prepended +to the character: \prm {csactive} or the never used \UTF\ representation of \type +{U+FFFF}. + \stopsubsection \startsubsection[title={\prm {futuredef} and \prm {futurecsname}}] diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex index 1da49b455..61ec42ec3 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-math.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-math.tex @@ -1562,9 +1562,10 @@ details can be found in the manuals that come with \CONTEXT\ for which all this was implemented. In addition to \prm {mathordinary} (aka \prm {mathord}), \prm {mathoperator} (aka \prm {mathop}), \prm {mathbinary} (aka \prm {mathbin}), \prm {mathrelation} (aka \prm {mathrel}), \prm {mathopen}, \prm {mathclose}, \prm -{mathpunct} and \prm {mathinner} we have \prm {mathfraction}, \prm {mathradical}, -\prm {mathmiddle}, \prm {mathaccent}, \prm {mathfenced}. \prm {mathghost} and the -existing \prm {underline} and \prm {overline} class driven atoms. +{mathpunctuation} (aka {mathpunct}) and \prm {mathinner} we have \prm +{mathfraction}, \prm {mathradical}, \prm {mathmiddle}, \prm {mathaccent}, \prm +{mathfenced}, \prm {mathghost} and the existing \prm {mathunderline} (aka \prm +{underline}) and \prm {mathoverline} (aka \prm {overline}) class driven atoms. The \prm {mathatom} primitive is the generic one and it accepts a couple of keywords: diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex index 837cc6e01..67661fe76 100644 --- a/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex +++ b/doc/context/sources/general/manuals/luametatex/luametatex-tex.tex @@ -1179,8 +1179,8 @@ tex.print(tex.romannumeral(123)) The first one returns the name only, the second one reports the size too. \startfunctioncall -tex.print(tex.fontname(tex.fontname)) -tex.print(tex.fontname(tex.fontidentidier)) +tex.print(tex.fontname(1)) +tex.print(tex.fontidentifier(1)) \stopfunctioncall \subsubsection{\type {sp}} -- cgit v1.2.3