summaryrefslogtreecommitdiff
path: root/doc/context
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2022-12-21 18:00:37 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2022-12-21 18:00:37 +0100
commit36355f3d0c23357fccf2c76b3e9605a41cae519d (patch)
tree7b2bfa701a21ed8b075deba24112583461706770 /doc/context
parent8f472c629a996f1c08281198210354a253d7f56b (diff)
downloadcontext-36355f3d0c23357fccf2c76b3e9605a41cae519d.tar.gz
2022-12-21 17:12:00
Diffstat (limited to 'doc/context')
-rw-r--r--doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex32
-rw-r--r--doc/context/sources/general/manuals/lowlevel/lowlevel-registers.tex35
-rw-r--r--doc/context/sources/general/manuals/luametatex/luametatex.tex4
3 files changed, 66 insertions, 5 deletions
diff --git a/doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex b/doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex
index d5105fc8c..dd6c2f2d4 100644
--- a/doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex
+++ b/doc/context/sources/general/manuals/lowlevel/lowlevel-boxes.tex
@@ -689,6 +689,38 @@ test\quad
\ruledhbox{\getbuffer}
\stoplinecorrection
+Where a \type {\vtop} has the baseline at the top, a \type {\vbox} has it at the
+bottom. In \LUAMETATEX\ we also have a \type {\dbox}, which is a \type {\vbox} with
+that behaves like a \type {\vtop} when it's appended to a vertical list: the height of
+the first box or rule determines the (base)line correction that gets applied. The following
+example demonstrates this:
+
+\startlinecorrection
+\startcombination [nx=3,ny=1,location=top]
+ {\vbox \bgroup \hsize .3\textwidth
+ \small\small \setupalign[tolerant,stretch] \dontcomplain
+ xxxxxxxxxxxxxxxx\par
+ \ruledvbox{\samplefile{tufte}}\par
+ xxxxxxxxxxxxxxxx\par
+ \egroup} {\type {\vbox}}
+ {\vbox \bgroup \hsize .3\textwidth
+ \small\small \setupalign[tolerant,stretch] \dontcomplain
+ xxxxxxxxxxxxxxxx\par
+ \ruledvtop{\samplefile{tufte}}\par
+ xxxxxxxxxxxxxxxx\par
+ \egroup} {\type {\vtop}}
+ {\vbox \bgroup \hsize .3\textwidth
+ \small\small \setupalign[tolerant,stretch] \dontcomplain
+ xxxxxxxxxxxxxxxx\par
+ \ruleddbox{\samplefile{tufte} }\par
+ xxxxxxxxxxxxxxxx\par
+ \egroup} {\type {\dbox}}
+\stopcombination
+\stoplinecorrection
+
+The \type {d} stands for \quote {dual} because we (sort of) have two baselines. The
+regular height and depth are those of a \type {\vbox}.
+
\stopsectionlevel
\stopdocument
diff --git a/doc/context/sources/general/manuals/lowlevel/lowlevel-registers.tex b/doc/context/sources/general/manuals/lowlevel/lowlevel-registers.tex
index 4dbee67cd..233a8c178 100644
--- a/doc/context/sources/general/manuals/lowlevel/lowlevel-registers.tex
+++ b/doc/context/sources/general/manuals/lowlevel/lowlevel-registers.tex
@@ -245,7 +245,40 @@ better use the proper more high level definers (not discussed here).
\startsectionlevel[title={\LUAMETATEX\ primitives}]
-{\em todo}
+The fact that scanning stops at a non-number or \type {\relax} can be sort of
+unpredictable which is why in \LUAMETATEX\ we also support the following variant:
+
+\starttyping[option=TEX]
+\scratchdimen\dimexpr 10pt + 3pt \relax
+\scratchdimen\dimexpr {10pt + 3pt}
+\stoptyping
+
+At the cost of one more token braces can be used as boundaries instead of the
+single \type {\relax} boundary.
+
+An important property of registers is that they can be accessed by a number. This
+has big consequences for the implementation: they are part of the big memory
+store and consume dedicated ranges. If we had only named access \TEX's memory
+layout could be a bit leaner. In principle we could make the number of registers
+smaller because any limit on the amount at some point can be an obstacle. It is
+for that reason that we also have name-only variants:
+
+\starttyping[option=TEX]
+\dimensiondef \MyDimenA 12pt
+\integerdef \MyIntegerA 12
+\gluespecdef \MyGlueA 12pt + 3pt minus 4pt
+\mugluespecdef\MyMuA 12mu + 3mu minus 4mu
+\stoptyping
+
+These are as efficient but not accessible by number but they behave like
+registers which means that you (can) use \type {\the}, \type {\advance}, \type
+{\multiply} and \type {\divide} with them. \footnote {There are also the slightly
+more efficient \type {\advanceby}, \type {\multiplyby} and \type {\divideby} that
+don't check for the \type {by} keyword.} In case you wonder why there is no
+alternative for \type {\toksdef}, there actually are multiple: they are called
+macros.
+
+{\em todo: expressions}
\stopsectionlevel
diff --git a/doc/context/sources/general/manuals/luametatex/luametatex.tex b/doc/context/sources/general/manuals/luametatex/luametatex.tex
index 96f700355..ba19d58e1 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex.tex
@@ -21,10 +21,6 @@
% clang bins are still slower .. quite inconsistent differences between 32 and
% 64 bit (not all compilers are the same version)
-% \loggingall
-% \tracingonline \zerocount
-% \tracingmacros \plusone
-
% \enableautoglyphscaling % saves only a few instances ... no gain .. a few pages more
% \enabletexdirective{vspacing.experimental}