summaryrefslogtreecommitdiff
path: root/doc/context/sources/general
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-04-16 00:08:11 +0200
committerContext Git Mirror Bot <phg42.2a@gmail.com>2018-04-16 00:08:11 +0200
commitd5d5a39dc16881d098a99b74cba9020d96be4e11 (patch)
tree3d32c01797d034acc0107f6abd9c2d66af0b5ba6 /doc/context/sources/general
parent25fcad7435f56cdce2658336909f4da6a65589c0 (diff)
downloadcontext-d5d5a39dc16881d098a99b74cba9020d96be4e11.tar.gz
2018-04-15 23:21:00
Diffstat (limited to 'doc/context/sources/general')
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-contents.tex1
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-enhancements.tex3
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-fonts.tex287
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-introduction.tex1
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-languages.tex62
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-logos.tex2
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-lua.tex3
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-math.tex60
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-modifications.tex6
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-nodes.tex132
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-style.tex19
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex-titlepage.tex1
-rw-r--r--doc/context/sources/general/manuals/luatex/luatex.tex1
13 files changed, 313 insertions, 265 deletions
diff --git a/doc/context/sources/general/manuals/luatex/luatex-contents.tex b/doc/context/sources/general/manuals/luatex/luatex-contents.tex
index 6d06b3ef0..2582a81c7 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-contents.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-contents.tex
@@ -1,5 +1,4 @@
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-contents
diff --git a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex b/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
index 62d10f694..afae43e45 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-enhancements.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-enhancements
@@ -55,7 +54,7 @@ chapters on fonts and math we discuss a few more new ones.
There are three new primitives to test the version of \LUATEX:
\starttabulate[|l|pl|pl|]
-\BC primitive \BC explanation \BC value \NC \NR
+\DB primitive \BC explanation \BC value \NC \NR
\NC \type {\luatexbanner} \NC the banner reported on the command line \NC \luatexbanner \NC \NR
\NC \type {\luatexversion} \NC a combination of major and minor number \NC \the\luatexversion \NC \NR
\NC \type {\luatexrevision} \NC the revision number, the current value is \NC \luatexrevision \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
index 7ab77079f..57a795b06 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-fonts.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-fonts
@@ -23,7 +22,7 @@ The column \quote {\VF} means that this key will be created by the \type
The top|-|level keys in the table are as follows:
\starttabulate[|l|c|c|c|l|pl|]
-\BC key \BC vf \BC tfm \BC used \BC value type \BC description \NC \NR
+\DB key \BC vf \BC tfm \BC used \BC value type \BC description \NC \NR
\NC \type{name} \NC yes \NC yes \NC yes \NC string \NC metric (file) name \NC \NR
\NC \type{area} \NC no \NC yes \NC yes \NC string \NC (directory) location, typically empty \NC \NR
\NC \type{used} \NC no \NC yes \NC yes \NC boolean \NC indicates usage (initial: false) \NC \NR
@@ -67,22 +66,34 @@ The top|-|level keys in the table are as follows:
table reference, don't cache any \LUA\ data for this
font while \type {renew} means: don't store the table
reference, but save a reference to the table that is
- created at the first access to one of its fields in font.
- Note: the saved reference is thread|-|local, so be
- careful when you are using coroutines: an error will be
- thrown if the table has been cached in one thread, but
- you reference it from another thread. \NC \NR
+ created at the first access to one of its fields in
+ font. \NC \NR
\NC \type{nomath} \NC no \NC no \NC yes \NC boolean \NC This key allows a minor speedup for text fonts. If it
is present and true, then \LUATEX\ will not check the
character entries for math|-|specific keys. \NC \NR
\NC \type{oldmath} \NC no \NC no \NC yes \NC boolean \NC This key flags a font as representing an old school \TEX\
math font and disables the \OPENTYPE\ code path. \NC \NR
-\NC \type{slant} \NC no \NC no \NC yes \NC number \NC This has the same semantics as the \type {SlantFont}
- operator in font map files. \NC \NR
-\NC \type{extent} \NC no \NC no \NC yes \NC number \NC This has the same semantics as the \type {ExtendFont}
- operator in font map files. \NC \NR
+\NC \type{slant} \NC no \NC no \NC yes \NC number \NC This parameter will tilt the font and
+ does the same as \type {SlantFont} in the map file for
+ \TYPEONE\ fonts. \NC \NR
+\NC \type{extend} \NC no \NC no \NC yes \NC number \NC This parameter will scale the font horizontally and
+ does the same as \type {ExtendFont} in the map file for
+ \TYPEONE\ fonts. \NC \NR
+\NC \type{squeeze} \NC no \NC no \NC yes \NC number \NC This parameter will scale the font vertically and has
+ no equivalent in the map file. \NC \NR
+\NC \type{width} \NC no \NC no \NC yes \NC number \NC The backend will inject \PDF\ operators that set the
+ penwidth. The value is (as usual in \TEX) divided by 1000.
+ It works with the \type {mode} file. \NC \NR
+\NC \type{mode} \NC no \NC no \NC yes \NC number \NC The backend will inject \PDF\ operators that relate to the
+ drawing mode with 0~being a fill, 1~being an outline,
+ 2~both draw and fill and 3~no painting at all. \NC \NR
\stoptabulate
+The saved reference in the \type {cache} option is thread|-|local, so be careful
+when you are using coroutines: an error will be thrown if the table has been
+cached in one thread, but you reference it from another thread.
+
+
The key \type {name} is always required. The keys \type {stretch}, \type
{shrink}, \type {step} only have meaning when used together: they can be used to
replace a post|-|loading \type {\expandglyphsinfont} command. The \type
@@ -112,16 +123,12 @@ makes sure that the font's definition is written to the output file (\DVI\ or
signalling the \quote {normal} direction for this font. There are sixteen
possibilities:
-\starttabulate[|c|c|c|c|]
-\BC number \BC meaning \BC number \BC meaning \NC \NR
-\NC \type{0} \NC \type{LT} \NC \type {8} \NC \type{TT} \NC \NR
-\NC \type{1} \NC \type{LL} \NC \type {9} \NC \type{TL} \NC \NR
-\NC \type{2} \NC \type{LB} \NC \type{10} \NC \type{TB} \NC \NR
-\NC \type{3} \NC \type{LR} \NC \type{11} \NC \type{TR} \NC \NR
-\NC \type{4} \NC \type{RT} \NC \type{12} \NC \type{BT} \NC \NR
-\NC \type{5} \NC \type{RL} \NC \type{13} \NC \type{BL} \NC \NR
-\NC \type{6} \NC \type{RB} \NC \type{14} \NC \type{BB} \NC \NR
-\NC \type{7} \NC \type{RR} \NC \type{15} \NC \type{BR} \NC \NR
+\starttabulate[|Tc|c|Tc|c|Tc|c|Tc|c|]
+\DB \# \BC dir \BC \# \BC dir \BC \# \BC dir \BC \# \BC dir \NC \NR
+\NC 0 \NC LT \NC 4 \NC RT \NC 8 \NC TT \NC 12 \NC BT \NC \NR
+\NC 1 \NC LL \NC 5 \NC RL \NC 9 \NC TL \NC 13 \NC BL \NC \NR
+\NC 2 \NC LB \NC 6 \NC RB \NC 10 \NC TB \NC 14 \NC BB \NC \NR
+\NC 3 \NC LR \NC 7 \NC RR \NC 11 \NC TR \NC 15 \NC BR \NC \NR
\stoptabulate
These are \OMEGA|-|style direction abbreviations: the first character indicates
@@ -138,7 +145,7 @@ gives a nicer user interface.
The names and their internal remapping are:
\starttabulate[|l|c|]
-\BC name \BC remapping \NC \NR
+\DB name \BC remapping \NC \NR
\NC \type {slant} \NC 1 \NC \NR
\NC \type {space} \NC 2 \NC \NR
\NC \type {space_stretch} \NC 3 \NC \NR
@@ -159,37 +166,27 @@ virtual character whose ligatures and kerns are used to handle word boundary
processing. \type {right_boundary} is similar but not actually used for anything
(yet).
-Other index keys are ignored.
-
Each character hash itself is a hash. For example, here is the character \quote
-{f} (decimal 102) in the font \type {cmr10 at 10pt}:
+{f} (decimal 102) in the font \type {cmr10 at 10pt}. The numbers that represent
+dimensions are in scaled points.
\starttyping
[102] = {
- ['width'] = 200250,
- ['height'] = 455111,
- ['depth'] = 0,
- ['italic'] = 50973,
- ['kerns'] = {
+ ["width"] = 200250,
+ ["height"] = 455111,
+ ["depth"] = 0,
+ ["italic"] = 50973,
+ ["kerns"] = {
[63] = 50973,
[93] = 50973,
[39] = 50973,
[33] = 50973,
[41] = 50973
},
- ['ligatures'] = {
- [102] = {
- ['char'] = 11,
- ['type'] = 0
- },
- [108] = {
- ['char'] = 13,
- ['type'] = 0
- },
- [105] = {
- ['char'] = 12,
- ['type'] = 0
- }
+ ["ligatures"] = {
+ [102] = { ["char"] = 11, ["type"] = 0 },
+ [108] = { ["char"] = 13, ["type"] = 0 },
+ [105] = { ["char"] = 12, ["type"] = 0 }
}
}
\stoptyping
@@ -197,7 +194,7 @@ Each character hash itself is a hash. For example, here is the character \quote
The following top|-|level keys can be present inside a character hash:
\starttabulate[|l|c|c|c|l|p|]
-\BC key \BC vf \BC tfm \BC used \BC type \BC description \NC\NR
+\DB key \BC vf \BC tfm \BC used \BC type \BC description \NC\NR
\NC \type{width} \NC yes \NC yes \NC yes \NC number \NC character's width, in sp (default 0) \NC\NR
\NC \type{height} \NC no \NC yes \NC yes \NC number \NC character's height, in sp (default 0) \NC\NR
\NC \type{depth} \NC no \NC yes \NC yes \NC number \NC character's depth, in sp (default 0) \NC\NR
@@ -217,17 +214,14 @@ The following top|-|level keys can be present inside a character hash:
\NC \type{commands} \NC yes \NC no \NC yes \NC array \NC virtual font commands \NC\NR
\NC \type{name} \NC no \NC no \NC no \NC string \NC the character (\POSTSCRIPT) name \NC\NR
\NC \type{index} \NC no \NC no \NC yes \NC number \NC the (\OPENTYPE\ or \TRUETYPE) font glyph index \NC\NR
-\NC \type{used} \NC no \NC yes \NC yes \NC boolean \NC typeset already (default: false)? \NC\NR
+\NC \type{used} \NC no \NC yes \NC yes \NC boolean \NC typeset already (default: false) \NC\NR
\NC \type{mathkern} \NC no \NC no \NC yes \NC table \NC math cut-in specifications \NC\NR
\stoptabulate
The values of \type {top_accent}, \type {bot_accent} and \type {mathkern} are
used only for math accent and superscript placement, see the \at {math chapter}
-[math] in this manual for details.
-
-The values of \type {left_protruding} and \type {right_protruding} are used only
-when \type {\protrudechars} is non-zero.
-
+[math] in this manual for details. The values of \type {left_protruding} and
+\type {right_protruding} are used only when \type {\protrudechars} is non-zero.
Whether or not \type {expansion_factor} is used depends on the font's global
expansion settings, as well as on the value of \type {\adjustspacing}.
@@ -245,13 +239,14 @@ enclosing angle brackets. For instance the \type {tounicode} for a \type {fi}
ligature would be \type {00660069}. When you pass a number the conversion will be
done for you.
-The presence of \type {extensible} will overrule \type {next}, if that is also
-present. It in in turn can be overruled by \type {vert_variants}.
-
-The \type {extensible} table is very simple:
+A math character can have a \type {next} field that points to a next larger
+shape. However, the presence of \type {extensible} will overrule \type {next}, if
+that is also present. The \type {extensible} field in turn can be overruled by
+\type {vert_variants}, the \OPENTYPE\ version. The \type {extensible} table is
+very simple:
\starttabulate[|l|l|p|]
-\BC key \BC type \BC description \NC\NR
+\DB key \BC type \BC description \NC\NR
\NC \type{top} \NC number \NC top character index \NC\NR
\NC \type{mid} \NC number \NC middle character index \NC\NR
\NC \type{bot} \NC number \NC bottom character index \NC\NR
@@ -262,7 +257,7 @@ The \type {horiz_variants} and \type {vert_variants} are arrays of components.
Each of those components is itself a hash of up to five keys:
\starttabulate[|l|l|p|]
-\BC key \BC type \BC explanation \NC \NR
+\DB key \BC type \BC explanation \NC \NR
\NC \type{glyph} \NC number \NC The character index. Note that this is an encoding number, not a name. \NC \NR
\NC \type{extender} \NC number \NC One (1) if this part is repeatable, zero (0) otherwise. \NC \NR
\NC \type{start} \NC number \NC The maximum overlap at the starting side (in scaled points). \NC \NR
@@ -283,7 +278,7 @@ value \type {right_boundary}), with the values being yet another small hash, wit
two fields:
\starttabulate[|l|l|p|]
-\BC key \BC type \BC description \NC \NR
+\DB key \BC type \BC description \NC \NR
\NC \type{type} \NC number \NC the type of this ligature command, default 0 \NC \NR
\NC \type{char} \NC number \NC the character index of the resultant ligature \NC \NR
\stoptabulate
@@ -299,7 +294,7 @@ forward one or two places. The glyph that ends up to the right of the insertion
point will become the next \quote {left}.
\starttabulate[|l|c|l|l|]
-\BC textual (Knuth) \BC number \BC string \BC result \NC\NR
+\DB textual (Knuth) \BC number \BC string \BC result \NC\NR
\NC \type{l + r =: n} \NC 0 \NC \type{=:} \NC \type{|n} \NC\NR
\NC \type{l + r =:| n} \NC 1 \NC \type{=:|} \NC \type{|nr} \NC\NR
\NC \type{l + r |=: n} \NC 2 \NC \type{|=:} \NC \type{|ln} \NC\NR
@@ -325,7 +320,7 @@ inclusion mechanism will attempt to add the needed font object definitions to th
\PDF. Values for \type {type} are:
\starttabulate[|l|p|]
-\BC value \BC description \NC\NR
+\DB value \BC description \NC\NR
\NC \type{real} \NC this is a base font \NC\NR
\NC \type{virtual} \NC this is a virtual font \NC\NR
\stoptabulate
@@ -334,81 +329,79 @@ The actions to be taken depend on a number of different variables:
\startitemize[packed]
\startitem
- Whether the used font fits in an 8-bit encoding scheme or not.
+ Whether the used font fits in an 8-bit encoding scheme or not. This is true for
+ traditional \TEX\ fonts that communicate via \TFM\ files.
\stopitem
\startitem
- The type of the disk font file.
+ The type of the disk font file, for instance a bitmap file or an outline
+ \TYPEONE, \TRUETYPE\ or \OPENTYPE\ font.
\stopitem
\startitem
- The level of embedding requested.
+ The level of embedding requested, although in most cases a subset of
+ characters is embedded. The times when nothing got embedded are (in our
+ opinion at least) basically gone.
\stopitem
\stopitemize
A font that uses anything other than an 8-bit encoding vector has to be written
-to the \PDF\ in a different way.
-
-The rule is: if the font table has \type {encodingbytes} set to~2, then this is a
-wide font, in all other cases it isn't. The value~2 is the default for \OPENTYPE\
-and \TRUETYPE\ fonts loaded via \LUA. For \TYPEONE\ fonts, you have to set \type
-{encodingbytes} to~2 explicitly. For \PK\ bitmap fonts, wide font encoding is not
-supported at all.
-
-If no special care is needed, \LUATEX\ currently falls back to the
-mapfile|-|based solution used by \PDFTEX\ and \DVIPS. This behaviour might
-silently be removed in the future, in which case the related primitives and \LUA\
-functions will become no|-|ops.
-
-If a \quote {wide} font is used, the new subsystem kicks in, and some
-extra fields have to be present in the font structure. In this case, \LUATEX\
-does not use a map file at all.
-
-The extra fields are: \type {format}, \type {embedding}, \type {fullname}, \type
-{cidinfo} (as explained above), \type {filename}, and the \type {index} key in
-the separate characters.
-
-Values for \type {format} are:
+to the \PDF\ in a different way. When the font table has \type {encodingbytes}
+set to~2, then it is a wide font, in all other cases it isn't. The value~2 is the
+default for \OPENTYPE\ and \TRUETYPE\ fonts loaded via \LUA. For \TYPEONE\ fonts,
+you have to set \type {encodingbytes} to~2 explicitly. For \PK\ bitmap fonts,
+wide font encoding is not supported at all.
+
+If no special care is needed, \LUATEX\ falls back to the mapfile|-|based solution
+used by \PDFTEX\ and \DVIPS, so that legacy fonts are supported transparently. If
+a \quote {wide} font is used, the new subsystem kicks in, and some extra fields
+have to be present in the font structure. In this case, \LUATEX\ does not use a
+map file at all. These extra fields are: \type {format}, \type {embedding}, \type
+{fullname}, \type {cidinfo} (as explained above), \type {filename}, and the \type
+{index} key in the separate characters.
+
+The \type {format} variable can have the following values. \type {type3} fonts
+are provided for backward compatibility only, and do not support the new wide
+encoding options.
\starttabulate[|l|p|]
-\BC value \BC description \NC \NR
+\DB value \BC description \NC \NR
\NC \type{type1} \NC this is a \POSTSCRIPT\ \TYPEONE\ font \NC \NR
\NC \type{type3} \NC this is a bitmapped (\PK) font \NC \NR
\NC \type{truetype} \NC this is a \TRUETYPE\ or \TRUETYPE|-|based \OPENTYPE\ font \NC \NR
\NC \type{opentype} \NC this is a \POSTSCRIPT|-|based \OPENTYPE\ font \NC \NR
\stoptabulate
-\type {type3} fonts are provided for backward compatibility only, and do not
-support the new wide encoding options.
-
-Values for \type {embedding} are:
+Valid values for the \type {embedding} variable are:
\starttabulate[|l|p|]
-\BC value \BC description \NC \NR
+\DB value \BC description \NC \NR
\NC \type{no} \NC don't embed the font at all \NC \NR
\NC \type{subset} \NC include and atttempt to subset the font \NC \NR
\NC \type{full} \NC include this font in its entirety \NC \NR
\stoptabulate
-The other fields are used as follows: The \type {fullname} will be the
+The other fields are used as follows. The \type {fullname} will be the
\POSTSCRIPT|/|\PDF\ font name. The \type {cidinfo} will be used as the character
-set (the CID \type {/Ordering} and \type {/Registry} keys). The \type {filename}
+set: the CID \type {/Ordering} and \type {/Registry} keys. The \type {filename}
points to the actual font file. If you include the full path in the \type
{filename} or if the file is in the local directory, \LUATEX\ will run a little
-bit more efficient because it will not have to re|-|run the \type {find_xxx_file}
+bit more efficient because it will not have to re|-|run the \type {find_*_file}
callback in that case.
Be careful: when mixing old and new fonts in one document, it is possible to
create \POSTSCRIPT\ name clashes that can result in printing errors. When this
-happens, you have to change the \type {fullname} of the font.
+happens, you have to change the \type {fullname} of the font to a more unique
+one.
Typeset strings are written out in a wide format using 2~bytes per glyph, using
the \type {index} key in the character information as value. The overall effect
is like having an encoding based on numbers instead of traditional (\POSTSCRIPT)
-name|-|based reencoding. The way to get the correct \type {index} numbers for
-\TYPEONE\ fonts is by loading the font via \type {fontloader.open} and use the table
-indices as \type {index} fields.
+name|-|based reencoding. One way to get the correct \type {index} numbers for
+\TYPEONE\ fonts is by loading the font via \type {fontloader.open} and use the
+table indices as \type {index} fields.
In order to make sure that cut and paste of the final document works okay you can
-best make sure that there is a \type {tounicode} vector enforced.
+best make sure that there is a \type {tounicode} vector enforced. Not all \PDF\
+viewers handle this right so take \ACROBAT\ as reference.
\section[virtualfonts]{Virtual fonts}
@@ -419,56 +412,57 @@ table from \type {define_font} as a virtual font:
\startitemize[packed]
\startitem
- Set the top|-|level key \type {type} to \type {virtual}.
+ Set the top|-|level key \type {type} to \type {virtual}. I most cases it's
+ optional because we look at the \type {commands} entry anyway.
\stopitem
\startitem
- Make sure there is at least one valid entry in \type {fonts} (see below).
+ Make sure there is at least one valid entry in \type {fonts} (see below),
+ although recent versions of \LUATEX\ add a default entry when this table is
+ missing.
\stopitem
\startitem
- Give a \type {commands} array to every character (see below).
+ Add a \type {commands} array to those characters that matter. A virtual
+ character can itself point to virtual characters but be careful with nesting
+ as you can create loops and overflow the stack (which often indicates an
+ error anyway).
\stopitem
\stopitemize
The presence of the toplevel \type {type} key with the specific value \type
{virtual} will trigger handling of the rest of the special virtual font fields in
the table, but the mere existence of 'type' is enough to prevent \LUATEX\ from
-looking for a virtual font on its own.
-
-Therefore, this also works \quote {in reverse}: if you are absolutely certain
-that a font is not a virtual font, assigning the value \type {base} or \type
-{real} to \type {type} will inhibit \LUATEX\ from looking for a virtual font
-file, thereby saving you a disk search.
+looking for a virtual font on its own. This also works \quote {in reverse}: if
+you are absolutely certain that a font is not a virtual font, assigning the value
+\type {real} to \type {type} will inhibit \LUATEX\ from looking for a virtual
+font file, thereby saving you a disk search. This only matters when we load a
+\TFM\ file.
-The \type {fonts} is another \LUA\ array. The values are one- or two|-|key
+The \type {fonts} is an (indexed) \LUA\ table. The values are one- or two|-|key
hashes themselves, each entry indicating one of the base fonts in a virtual font.
In case your font is referring to itself, you can use the \type {font.nextid()}
function which returns the index of the next to be defined font which is probably
-the currently defined one.
-
-An example makes this easy to understand
+the currently defined one. So, a table looks like this:
\starttyping
fonts = {
- { name = 'ptmr8a', size = 655360 },
- { name = 'psyr', size = 600000 },
- { id = 38 }
+ { name = "ptmr8a", size = 655360 },
+ { name = "psyr", size = 600000 },
+ { id = 38 }
}
\stoptyping
-says that the first referenced font (index 1) in this virtual font is \type
+The the first referenced font (at index~1) in this virtual font is \type
{ptrmr8a} loaded at 10pt, and the second is \type {psyr} loaded at a little over
-9pt. The third one is previously defined font that is known to \LUATEX\ as font id
-\quote {38}.
-
-The array index numbers are used by the character command definitions that are
-part of each character.
+9pt. The third one is previously defined font that is known to \LUATEX\ as font
+id~38. The array index numbers are used by the character command definitions that
+are part of each character.
The \type {commands} array is a hash where each item is another small array,
with the first entry representing a command and the extra items being the
parameters to that command. The allowed commands and their arguments are:
\starttabulate[|l|l|l|p|]
-\BC command name \BC arguments \BC type \BC description \NC \NR
+\DB command \BC arguments \BC type \BC description \NC \NR
\NC \type{font} \NC 1 \NC number \NC select a new font from the local \type {fonts} table \NC \NR
\NC \type{char} \NC 1 \NC number \NC typeset this character number from the current font,
and move right by the character's width \NC \NR
@@ -492,7 +486,7 @@ parameters to that command. The allowed commands and their arguments are:
\stoptabulate
When a font id is set to~0 then it will be replaced by the currently assigned
-font id. This prevents the need for hackery with future id's (normally one could
+font id. This prevents the need for hackery with future id's. Normally one could
use \type {font.nextid} but when more complex fonts are built in the meantime
other instances could have been loaded.
@@ -500,12 +494,11 @@ The \type {pdf} option also accepts a \type {mode} keyword in which case the
third argument sets the mode. That option will change the mode in an efficient
way (passing an empty string would result in an extra empty lines in the \PDF\
file. This option only makes sense for virtual fonts. The \type {font} mode only
-makes sense in virtual fonts.
-
-These modes are somewhat fuzzy and partially inherited from \PDFTEX.
+makes sense in virtual fonts. Modes are somewhat fuzzy and partially inherited
+from \PDFTEX.
\starttabulate[|l|p|]
-\BC mode \BC description \NC \NR
+\DB mode \BC description \NC \NR
\NC \type {origin} \NC enter page mode and set the position \NC \NR
\NC \type {page} \NC enter page mode \NC \NR
\NC \type {text} \NC enter text mode \NC \NR
@@ -514,10 +507,9 @@ These modes are somewhat fuzzy and partially inherited from \PDFTEX.
\NC \type {raw} \NC finish the current string \NC \NR
\stoptabulate
-You always need to check what \PDF\ code is generated because there can be all kind of
-interferences with optimizations in the backend and fonts are complicated anyway.
-
-Here is a rather elaborate glyph commands example:
+You always need to check what \PDF\ code is generated because there can be all
+kind of interferences with optimization in the backend and fonts are complicated
+anyway. Here is a rather elaborate glyph commands example using such keys:
\starttyping
...
@@ -526,6 +518,7 @@ commands = {
{ "right", 5000 }, -- move right about 0.08pt
{ "font", 3 }, -- select the fonts[3] entry
{ "char", 97 }, -- place character 97 (ASCII 'a')
+ -- { "slot", 2, 97 }, -- an alternative for the previous two
{ "pop" }, -- go all the way back
{ "down", -200000 }, -- move upwards by about 3pt
{ "special", "pdf: 1 0 0 rg" } -- switch to red color
@@ -579,31 +572,31 @@ Finally, here is a plain \TEX\ input file with a virtual font demonstration:
callback.register('define_font',
function (name,size)
if name == 'cmr10-red' then
- f = font.read_tfm('cmr10',size)
- f.name = 'cmr10-red'
- f.type = 'virtual'
- f.fonts = {{ name = 'cmr10', size = size }}
+ local f = font.read_tfm('cmr10',size)
+ f.name = 'cmr10-red'
+ f.type = 'virtual'
+ f.fonts = {
+ { name = 'cmr10', size = size }
+ }
for i,v in pairs(f.characters) do
- if (string.char(i)):find('[tacohanshartmut]') then
+ if string.char(i):find('[tacohanshartmut]') then
v.commands = {
- {'special','pdf: 1 0 0 rg'},
- {'char',i},
- {'special','pdf: 0 g'},
+ { "special", "pdf: 1 0 0 rg" },
+ { "char", i },
+ { "special", "pdf: 0 g" },
}
- else
- v.commands = {{'char',i}}
end
end
+ return f
else
- f = font.read_tfm(name,size)
+ return font.read_tfm(name,size)
end
- return f
end
)
}
-\font\myfont = cmr10-red at 10pt \myfont This is a line of text \par
-\font\myfontx= cmr10 at 10pt \myfontx Here is another line of text \par
+\font\myfont = cmr10-red at 10pt \myfont This is a line of text \par
+\font\myfontx = cmr10 at 10pt \myfontx Here is another line of text \par
\stopbuffer
\typebuffer
@@ -629,8 +622,8 @@ library that will be discussed in the next section.
\subsection{Loading a \TFM\ file}
-The behavior documented in this subsection is considered stable in the sense that
-there will not be backward-incompatible changes any more.
+The behaviour documented in this subsection is considered stable in the sense that
+there will not be backward|-|incompatible changes any more.
\startfunctioncall
<table> fnt =
@@ -663,7 +656,7 @@ there will not be backward-incompatible changes any more.
\stopfunctioncall
The meaning of the number \type {s} and the format of the returned table are
-similar to the ones in the \type {read_tfm()} function.
+similar to the ones in the \type {read_tfm} function.
\subsection{The fonts array}
diff --git a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex b/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
index 4ffc321e0..9c41f7875 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-introduction.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-introduction
diff --git a/doc/context/sources/general/manuals/luatex/luatex-languages.tex b/doc/context/sources/general/manuals/luatex/luatex-languages.tex
index f0fc98813..c469c9944 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-languages.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-languages.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-languages
@@ -108,10 +107,10 @@ immediately, not at the end of the current partial paragraph.
Typeset boxes now always have their language information embedded in the nodes
themselves, so there is no longer a possible dependency on the surrounding
-language settings. In \TEX82, a mid-paragraph statement like \type {\unhbox0} would
-process the box using the current paragraph language unless there was a
-\type {\setlanguage} issued inside the box. In \LUATEX, all language variables are
-already frozen.
+language settings. In \TEX82, a mid|-|paragraph statement like \type {\unhbox0}
+would process the box using the current paragraph language unless there was a
+\type {\setlanguage} issued inside the box. In \LUATEX, all language variables
+are already frozen.
In traditional \TEX\ the process of hyphenation is driven by \type {lccode}s. In
\LUATEX\ we made this dependency less strong. There are several strategies
@@ -195,6 +194,7 @@ indicate a start or end. You can omit the last set from the test by setting
\type {\hyphenationbounds} to a non|-|zero value:
\starttabulate[|l|l|]
+\DB value \BC behaviour \NC \NR
\NC \type{0} \NC not strict \NC \NR
\NC \type{1} \NC strict start \NC \NR
\NC \type{2} \NC strict end \NC \NR
@@ -204,6 +204,7 @@ indicate a start or end. You can omit the last set from the test by setting
The word start is determined as follows:
\starttabulate[|l|l|]
+\DB node \BC behaviour \NC \NR
\BC boundary \NC yes when wordboundary \NC \NR
\BC hlist \NC when hyphenationbounds 1 or 3 \NC \NR
\BC vlist \NC when hyphenationbounds 1 or 3 \NC \NR
@@ -219,6 +220,7 @@ The word start is determined as follows:
The word end is determined as follows:
\starttabulate[|l|l|]
+\DB node \BC behaviour \NC \NR
\BC boundary \NC yes \NC \NR
\BC glyph \NC yes when different language \NC \NR
\BC glue \NC yes \NC \NR
@@ -487,8 +489,7 @@ The first parameter has the following consequences for automatic discs (the ones
resulting from an \type {\exhyphenchar}:
\starttabulate[|c|l|l|]
-\BC mode \BC automatic disc \type{-} \BC explicit disc \type{\-} \NC \NR
-\HL
+\DB mode \BC automatic disc \type{-} \BC explicit disc \type{\-} \NC \NR
\NC \type{0} \NC \type {\exhyphenpenalty} \NC \type {\exhyphenpenalty} \NC \NR
\NC \type{1} \NC \type {\hyphenpenalty} \NC \type {\hyphenpenalty} \NC \NR
\NC \type{2} \NC \type {\exhyphenpenalty} \NC \type {\hyphenpenalty} \NC \NR
@@ -535,14 +536,14 @@ provided:
\stopitem
\stopitemize
-The expanded argument is first converted back to a space-separated string while
+The expanded argument is first converted back to a space|-|separated string while
dropping the internal command names. This string is then converted into a
dictionary by a routine that creates key|-|value pairs by converting the other
listed items. It is important to note that the keys in an exception dictionary
can always be generated from the values. Here are a few examples:
\starttabulate[|l|l|l|]
-\BC value \BC implied key (input) \NC effect \NC\NR
+\DB value \BC implied key (input) \BC effect \NC\NR
\NC \type {ta-ble} \NC table \NC \type {ta\-ble} ($=$ \type {ta\discretionary{-}{}{}ble}) \NC\NR
\NC \type {ba{k-}{}{c}ken} \NC backen \NC \type {ba\discretionary{k-}{}{c}ken} \NC\NR
\stoptabulate
@@ -574,6 +575,45 @@ hyphenation heavily depended on font encodings. This is no longer true in
have \type {hjcode}, the case relate codes can be used exclusively for \type
{\uppercase} and \type {\lowercase}.
+The three curly brace pair pattern in an exception can be somewhat unexpected so
+we will try to explain it by example. The pattern \type {foo{}{}{x}bar} pattern
+creates a lookup \type {fooxbar} and the pattern \type {foo{}{}{}bar} creates
+\type {foobar}. Then, when a hit happens there is a replacement text (\type {x})
+or none. Because we introduced penalties in discretionary nodes, the exception
+syntax now also can take a penalty specification. The value between square brackets
+is a multiplier for \type {\exceptionpenalty}. Here we have set it to 10000 so
+effectively we get 30000 in the example.
+
+\def\ShowSample#1#2%
+ {\startlinecorrection[blank]
+ \hyphenation{#1}%
+ \exceptionpenalty=10000
+ \bTABLE[foregroundstyle=type]
+ \bTR
+ \bTD[align=middle,nx=4] \type{#1} \eTD
+ \eTR
+ \bTR
+ \bTD[align=middle] \type{10em} \eTD
+ \bTD[align=middle] \type {3em} \eTD
+ \bTD[align=middle] \type {0em} \eTD
+ \bTD[align=middle] \type {6em} \eTD
+ \eTR
+ \bTR
+ \bTD[width=10em]\vtop{\hsize 10em 123 #2 123\par}\eTD
+ \bTD[width=10em]\vtop{\hsize 3em 123 #2 123\par}\eTD
+ \bTD[width=10em]\vtop{\hsize 0em 123 #2 123\par}\eTD
+ \bTD[width=10em]\vtop{\setupalign[verytolerant,stretch]\rmtf\hsize 6em 123 #2 #2 #2 #2 123\par}\eTD
+ \eTR
+ \eTABLE
+ \stoplinecorrection}
+
+\ShowSample{x{a-}{-b}{}x{a-}{-b}{}x{a-}{-b}{}x{a-}{-b}{}xx}{xxxxxx}
+\ShowSample{x{a-}{-b}{}x{a-}{-b}{}[3]x{a-}{-b}{}[1]x{a-}{-b}{}xx}{xxxxxx}
+
+\ShowSample{z{a-}{-b}{z}{a-}{-b}{z}{a-}{-b}{z}{a-}{-b}{z}z}{zzzzzz}
+\ShowSample{z{a-}{-b}{z}{a-}{-b}{z}[3]{a-}{-b}{z}[1]{a-}{-b}{z}z}{zzzzzz}
+
+
\section{Applying hyphenation}
The internal structures \LUATEX\ uses for the insertion of discretionaries in
@@ -735,7 +775,7 @@ the top-level discretionary that resulted from the first hyphenation point.
Here is that nested solution again, in a different representation:
\starttabulate[|l|c|c|c|c|c|c|]
-\NC \BC pre \BC \BC post \BC \BC replace \BC \NC \NR
+\DB \BC pre \BC \BC post \BC \BC replace \BC \NC \NR
\NC topdisc \NC \type {f-} \NC (1) \NC \NC sub 1 \NC \NC sub 2 \NC \NR
\NC sub 1 \NC \type {f-} \NC (2) \NC \type {i} \NC (3) \NC \type {<fi>} \NC (4) \NC \NR
\NC sub 2 \NC \type {<ff>-} \NC (5) \NC \type {i} \NC (6) \NC \type {<ffi>} \NC (7) \NC \NR
@@ -771,7 +811,7 @@ The mapping of the seven list fields to the six fields in this discretionary nod
pair is as follows:
\starttabulate[|l|c|c|]
-\BC field \BC description \NC \NC \NR
+\DB field \BC description \NC \NC \NR
\NC \type {disc1.pre} \NC \type {f-} \NC (1) \NC \NR
\NC \type {disc1.post} \NC \type {<fi>} \NC (4) \NC \NR
\NC \type {disc1.replace} \NC \type {<ffi>} \NC (7) \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-logos.tex b/doc/context/sources/general/manuals/luatex/luatex-logos.tex
index 7406dd602..3172336ec 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-logos.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-logos.tex
@@ -1,5 +1,7 @@
\startenvironment luatex-logos
+\usemodule[abr-02]
+
\logo[DFONT] {dfont}
\logo[CFF] {cff}
\logo[CMAP] {CMap}
diff --git a/doc/context/sources/general/manuals/luatex/luatex-lua.tex b/doc/context/sources/general/manuals/luatex/luatex-lua.tex
index c8df17da9..0c9119240 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-lua.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-lua.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-lua
@@ -146,7 +145,7 @@ in order.
moment, \type {--safer} \type {nil}s the following functions:
\starttabulate[|l|l|]
- \BC library \BC functions \NC \NR
+ \DB library \BC functions \NC \NR
\NC \type {os} \NC \type {execute} \type {exec} \type {spawn} \type {setenv} \type {rename} \type {remove} \type {tmpdir} \NC \NR
\NC \type {io} \NC \type {popen} \type {output} \type {tmpfile} \NC \NR
\NC \type {lfs} \NC \type {rmdir} \type {mkdir} \type {chdir} \type {lock} \type {touch} \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-math.tex b/doc/context/sources/general/manuals/luatex/luatex-math.tex
index b30e6cf63..a0e3936c7 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-math.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-math.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-math
@@ -16,7 +15,9 @@ make it easier to use \OPENTYPE\ math fonts. And finally, there are some
extensions that have been proposed or considered in the past that are now added
to the engine.
-\section{The current math style}
+\section{Math styles}
+
+\subsection{\type {\mathstyle}}
It is possible to discover the math style that will be used for a formula in an
expandable fashion (while the math list is still being read). To make this
@@ -24,8 +25,6 @@ possible, \LUATEX\ adds the new primitive: \type {\mathstyle}. This is a \quote
{convert command} like e.g. \type {\romannumeral}: its value can only be read,
not set.
-\subsection{\type {\mathstyle}}
-
The returned value is between 0 and 7 (in math mode), or $-1$ (all other modes).
For easy testing, the eight math style commands have been altered so that the can
be used as numeric values, so you can write code like this:
@@ -168,7 +167,8 @@ The input for such primitives would look like this:
The altered \TEX82 primitives are:
\starttabulate[|l|l|r|c|l|r|]
-\BC primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR
+\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR
+\TB[small,samepage]
\NC \type {\mathcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC 8000 \NC \NR
\NC \type {\delcode} \NC 0 \NC 10FFFF \NC = \NC 0 \NC FFFFFF \NC \NR
\stoptabulate
@@ -176,7 +176,8 @@ The altered \TEX82 primitives are:
The unaltered ones are:
\starttabulate[|l|l|r|]
-\BC primitive \BC min \BC max \NC \NR
+\DB primitive \BC min \BC max \NC \NR
+\TB[small,samepage]
\NC \type {\mathchardef} \NC 0 \NC 8000 \NC \NR
\NC \type {\mathchar} \NC 0 \NC 7FFF \NC \NR
\NC \type {\mathaccent} \NC 0 \NC 7FFF \NC \NR
@@ -193,7 +194,7 @@ The following new primitives are compatible with \XETEX:
% somewhat fuzzy:
\starttabulate[|l|l|r|c|l|r|]
-\BC primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR
+\DB primitive \BC min \BC max \BC \kern 2em \BC min \BC max \NC \NR
\NC \type {\Umathchardef} \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{1}} \NC \NC \NC \NC \NR
\NC \type {\Umathcharnumdef}\rlap{\high{5}} \NC -80000000 \NC 7FFFFFFF\rlap{\high{3}} \NC \NC \NC \NC \NR
\NC \type {\Umathcode} \NC 0 \NC 10FFFF \NC = \NC 0+0+0 \NC 7+FF+10FFFF\rlap{\high{1}} \NC \NR
@@ -239,12 +240,13 @@ New primitives that exist in \LUATEX\ only (all of these will be explained
in following sections):
\starttabulate[|l|l|]
-\BC primitive \BC value range (in hex) \NC \NR
-\NC \type {\Uroot} \NC 0+0--FF+10FFFF$^2$ \NC \NR
-\NC \type {\Uoverdelimiter} \NC 0+0--FF+10FFFF$^2$ \NC \NR
-\NC \type {\Uunderdelimiter} \NC 0+0--FF+10FFFF$^2$ \NC \NR
-\NC \type {\Udelimiterover} \NC 0+0--FF+10FFFF$^2$ \NC \NR
-\NC \type {\Udelimiterunder} \NC 0+0--FF+10FFFF$^2$ \NC \NR
+\DB primitive \BC value range (in hex) \NC \NR
+\TB[small,samepage]
+\NC \type {\Uroot} \NC 0 + 0--FF + 10FFFF \NC \NR
+\NC \type {\Uoverdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR
+\NC \type {\Uunderdelimiter} \NC 0 + 0--FF + 10FFFF \NC \NR
+\NC \type {\Udelimiterover} \NC 0 + 0--FF + 10FFFF \NC \NR
+\NC \type {\Udelimiterunder} \NC 0 + 0--FF + 10FFFF \NC \NR
\stoptabulate
\section{Cramped math styles}
@@ -336,7 +338,8 @@ now accessible via primitive commands. In fact, refactoring of the math engine
has resulted in many more parameters than were accessible before.
\starttabulate
-\BC primitive name \BC description \NC \NR
+\DB primitive name \BC description \NC \NR
+\TB[small,samepage]
\NC \type {\Umathquad} \NC the width of 18 mu's \NC \NR
\NC \type {\Umathaxis} \NC height of the vertical center axis of
the math formula above the baseline \NC \NR
@@ -448,7 +451,8 @@ dimension parameter. For math fonts, this should be set to zero.
\NC \tx #3 \NC #4 \NC \NR}
\starttabulate[|l|l|]
-\BC variable / style \BC tfm / opentype \NC \NR
+\DB variable / style \BC tfm / opentype \NC \NR
+\TB[small,samepage]
\MathLine{\Umathaxis} {} {} {AxisHeight} {axis_height}
\MathLine{\Umathoperatorsize} {6} {D, D'} {DisplayOperatorMinHeight} {\emdash}
\MathLine{\Umathfractiondelsize} {9} {D, D'} {FractionDelimiterDisplayStyleSize} {delim1}
@@ -1158,16 +1162,17 @@ get the length of the last line, the following will often work too:
\type {^}, \type {_}, \type {$}, and \type {$$}:
\starttabulate[|l|l|]
-\BC primitive \BC explanation \NC \NR
-\NC \type {\Usuperscript} \NC Duplicates the functionality of \type {^} \NC \NR
-\NC \type {\Usubscript} \NC Duplicates the functionality of \type {_} \NC \NR
-\NC \type {\Ustartmath} \NC Duplicates the functionality of \type {$}, % $
+\DB primitive \BC explanation \NC \NR
+\TB[small,samepage]
+\NC \type {\Usuperscript} \NC duplicates the functionality of \type {^} \NC \NR
+\NC \type {\Usubscript} \NC duplicates the functionality of \type {_} \NC \NR
+\NC \type {\Ustartmath} \NC duplicates the functionality of \type {$}, % $
when used in non-math mode. \NC \NR
-\NC \type {\Ustopmath} \NC Duplicates the functionality of \type {$}, % $
+\NC \type {\Ustopmath} \NC duplicates the functionality of \type {$}, % $
when used in inline math mode. \NC \NR
-\NC \type {\Ustartdisplaymath} \NC Duplicates the functionality of \type {$$}, % $$
+\NC \type {\Ustartdisplaymath} \NC duplicates the functionality of \type {$$}, % $$
when used in non-math mode. \NC \NR
-\NC \type {\Ustopdisplaymath} \NC Duplicates the functionality of \type {$$}, % $$
+\NC \type {\Ustopdisplaymath} \NC duplicates the functionality of \type {$$}, % $$
when used in display math mode. \NC \NR
\stoptabulate
@@ -1228,9 +1233,8 @@ with zero being the default behaviour.
\typebuffer \getbuffer
\starttabulate[|c|c|c|pl|]
-\HL
-\BC mode \BC \type {x$x$x} \BC \type {x $x$ x} \BC effect \NC \NR
-\HL
+\DB mode \BC x\$x\$x \BC x \$x\$ x \BC effect \NC \NR
+\TB[small,samepage]
\OneLiner{0}{obey \type {\mathsurround} when \type {\mathsurroundskip} is 0pt}
\OneLiner{1}{only add skip to the left}
\OneLiner{2}{only add skip to the right}
@@ -1239,7 +1243,6 @@ with zero being the default behaviour.
\OneLiner{5}{disable all spacing around math}
\OneLiner{6}{only apply \type {\mathsurroundskip} when also spacing}
\OneLiner{7}{only apply \type {\mathsurroundskip} when no spacing}
-\HL
\stoptabulate
\stop
@@ -1336,8 +1339,9 @@ effects.
\def\SampleMath#1%
{$\mathscriptsmode#1\mathupright CH_2 + CH^+_2 + CH^2_2$}
-\starttabulate[|c|c|c|l|]
-\BC mode \BC down \BC up \BC \NC \NR
+\starttabulate[|c|c|c|p|]
+\DB mode \BC down \BC up \BC example \NC \NR
+\TB[small,samepage]
\NC 0 \NC dynamic \NC dynamic \NC \SampleMath{0} \NC \NR
\NC 1 \NC $d$ \NC $u$ \NC \SampleMath{1} \NC \NR
\NC 2 \NC $s$ \NC $u$ \NC \SampleMath{2} \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
index e41126142..37d557926 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-modifications.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-modifications
@@ -322,7 +321,7 @@ provide the ability to use content that has been rendered in several places,
and images are also common. For that reason we also changed the names:
\starttabulate[|l|l|]
-\BC new name \BC old name \NC \NR
+\DB new name \BC old name \NC \NR
\NC \type {\saveboxresource} \NC \type {\pdfxform} \NC \NR
\NC \type {\saveimageresource} \NC \type {\pdfximage} \NC \NR
\NC \type {\useboxresource} \NC \type {\pdfrefxform} \NC \NR
@@ -1087,13 +1086,12 @@ difference. Watch your spaces.
\ShowSome{pre {\textdir TLT\relax\space xxx} post}
\stoptabulate
-
Another adaptation to the \ALEPH\ directional model is control over shapes driven
by \type {\hangindent} and \type {\parshape}. This is controlled by a new parameter
\type {\shapemode}:
\starttabulate[|c|c|c|]
-\BC \BC \type {\hangindent} \BC \type {\parshape} \NC \NR
+\DB value \BC \type {\hangindent} \BC \type {\parshape} \NC \NR
\BC \type{0} \NC normal \NC normal \NC \NR
\BC \type{1} \NC mirrored \NC normal \NC \NR
\BC \type{2} \NC normal \NC mirrored \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
index 517d9b6c8..065342b9b 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-nodes.tex
@@ -1,7 +1,6 @@
% language=uk
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-nodes
@@ -56,7 +55,7 @@ An \type {attribute_list} item is used as a head pointer for a list of attribute
items. It has only one user-visible field:
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{next} \NC node \NC pointer to the first attribute \NC \NR
\stoptabulate
@@ -68,7 +67,7 @@ defined \quote {attribute} item, whose \type {next} will point to the second
\quote {attribute} item, etc.
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{next} \NC node \NC pointer to the next attribute \NC \NR
\NC \type{number} \NC number \NC the attribute type id \NC \NR
\NC \type{value} \NC number \NC the attribute value \NC \NR
@@ -84,7 +83,7 @@ These are the nodes that comprise actual typesetting commands. A few fields are
present in all nodes regardless of their type, these are:
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{next} \NC node \NC the next node in a list, or nil \NC \NR
\NC \type{id} \NC number \NC the node's type (\type {id}) number \NC \NR
\NC \type{subtype} \NC number \NC the node \type {subtype} identifier \NC \NR
@@ -106,7 +105,7 @@ internal magic uses a leading \type {temp} nodes to temporarily store a state.
\subsubsection{hlist nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{list} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width of the box \NC \NR
@@ -140,7 +139,7 @@ rules to store reuseable objects and images. User nodes are invisible and can be
intercepted by a callback.
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{rule} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width of the rule where the special value $-1073741824$ is used for \quote {running} glue dimensions \NC \NR
@@ -153,7 +152,7 @@ intercepted by a callback.
\subsubsection{ins nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC the insertion class \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{cost} \NC number \NC the penalty associated with this insert \NC \NR
@@ -174,7 +173,7 @@ names and both names are equally sensible).
\subsubsection{mark nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC unused \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{class} \NC number \NC the mark class \NC \NR
@@ -184,7 +183,7 @@ names and both names are equally sensible).
\subsubsection{adjust nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{adjust} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{head/list} \NC node \NC adjusted material \NC \NR
@@ -196,7 +195,7 @@ its internal link structure is correct, otherwise an error may be result.
\subsubsection{disc nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{disc} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{pre} \NC node \NC pointer to the pre|-|break text \NC \NR
@@ -231,7 +230,7 @@ freeing it again might crash \LUATEX).
\subsubsection{math nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{math} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{surround} \NC number \NC width of the \type {\mathsurround} kern \NC \NR
@@ -248,7 +247,7 @@ simple value. The structure that represents the glue components of a skip is
called a \type {glue_spec}, and it has the following accessible fields:
\starttabulate[|l|l|p|]
-\BC key \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{width} \NC number \NC the horizontal or vertical displacement \NC \NR
\NC \type{stretch} \NC number \NC extra (positive) displacement or stretch amount \NC \NR
\NC \type{stretch_order} \NC number \NC factor applied to stretch amount \NC \NR
@@ -281,7 +280,7 @@ not that high (and nowadays memory is less an issue, also given that a glue node
is only a few memory words larger than a spec).
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{glue} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{leader} \NC node \NC pointer to a box or rule for leaders \NC \NR
@@ -298,7 +297,7 @@ a \type {userskip} with subtype zero).
\subsubsection{kern nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{kern} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{kern} \NC number \NC fixed horizontal or vertical advance \NC \NR
@@ -307,7 +306,7 @@ a \type {userskip} with subtype zero).
\subsubsection{penalty nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{penalty} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{penalty} \NC number \NC the penalty value \NC \NR
@@ -320,7 +319,7 @@ accumulation of \type {club}, \type{widow} and other relevant penalties.
\subsubsection[glyphnodes]{glyph nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC bitfield \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{char} \NC number \NC the chatacter index in the font \NC \NR
@@ -347,7 +346,7 @@ its internal link structure is correct, otherwise an error may be result. Valid
bits for the \type {subtype} field are:
\starttabulate[|c|l|]
-\BC bit \BC meaning \NC \NR
+\DB bit \BC meaning \NC \NR
\NC 0 \NC character \NC \NR
\NC 1 \NC ligature \NC \NR
\NC 2 \NC ghost \NC \NR
@@ -381,7 +380,7 @@ and font id and returns true when a glyph or disc node references that font.
\subsubsection{boundary nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{boundary} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{value} \NC number \NC values 0--255 are reserved \NC \NR
@@ -393,7 +392,7 @@ This node relates to the \type {\noboundary}, \type {\boundary}, \type
\subsubsection{local_par nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{pen_inter} \NC number \NC local interline penalty (from \type {\localinterlinepenalty}) \NC \NR
\NC \type{pen_broken} \NC number \NC local broken penalty (from \type {\localbrokenpenalty}) \NC \NR
@@ -411,7 +410,7 @@ error may be result.
\subsubsection[dirnodes]{dir nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{dir} \NC string \NC the direction (but see below) \NC \NR
\NC \type{level} \NC number \NC nesting level of this direction whatsit \NC \NR
@@ -445,7 +444,7 @@ or popped from the direction stack.
\subsubsection{margin_kern nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{margin_kern} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the advance of the kern \NC \NR
@@ -470,7 +469,7 @@ The \type {next} and \type {prev} fields for these subnodes are unused.
\subsubsubsection{math_char and math_text_char subnodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{char} \NC number \NC the character index \NC \NR
\NC \type{fam} \NC number \NC the family number \NC \NR
@@ -484,7 +483,7 @@ conversion (its sole function is to suppress a following italic correction).
\subsubsubsection{sub_box and sub_mlist subnodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{head/list} \NC node \NC list of nodes \NC \NR
\stoptabulate
@@ -504,7 +503,7 @@ before, the \type {next} and \type {prev} fields are unused.
\subsubsubsection{delim subnodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{small_char} \NC number \NC character index of base character \NC \NR
\NC \type{small_fam} \NC number \NC family number of base character \NC \NR
@@ -526,6 +525,7 @@ into a single node type with separate subtypes for differentiation.
Some noads have an option field. The values in this bitset are common:
\starttabulate[|l|r|]
+\DB meaning \BC bits \NC \NR
\NC set \NC \type{0x08} \NC \NR
\NC internal \NC \type{0x00} + \type{0x08} \NC \NR
\NC internal \NC \type{0x01} + \type{0x08} \NC \NR
@@ -543,7 +543,7 @@ Some noads have an option field. The values in this bitset are common:
\subsubsubsection{simple nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{noad} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{nucleus} \NC kernel node \NC base \NC \NR
@@ -555,7 +555,7 @@ Some noads have an option field. The values in this bitset are common:
\subsubsubsection{accent nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{accent} \NC \NR
\NC \type{nucleus} \NC kernel node \NC base \NC \NR
\NC \type{sub} \NC kernel node \NC subscript \NC \NR
@@ -568,7 +568,7 @@ Some noads have an option field. The values in this bitset are common:
\subsubsubsection{style nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{style} \NC string \NC contains the style \NC \NR
\stoptabulate
@@ -579,7 +579,7 @@ be prefixed by \type {cramped}.
\subsubsubsection{choice nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{display} \NC node \NC list of display size alternatives \NC \NR
\NC \type{text} \NC node \NC list of text size alternatives \NC \NR
@@ -594,7 +594,7 @@ structure is correct, otherwise an error may be result.
\subsubsubsection{radical nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{radical} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{nucleus} \NC kernel node \NC base \NC \NR
@@ -613,7 +613,7 @@ link structure is correct, otherwise an error may be result.
\subsubsubsection{fraction nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC (optional) width of the fraction \NC \NR
\NC \type{num} \NC kernel node \NC numerator \NC \NR
@@ -631,7 +631,7 @@ may be result.
\subsubsubsection{fence nodes}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{subtype} \NC number \NC \showsubtypes{fence} \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{delim} \NC delimiter node \NC delimiter specification \NC \NR
@@ -664,7 +664,7 @@ Whatsit nodes come in many subtypes that you can ask for by running
\subsubsubsection{open whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{stream} \NC number \NC \TEX's stream id number \NC \NR
\NC \type{name} \NC string \NC file name \NC \NR
@@ -675,7 +675,7 @@ Whatsit nodes come in many subtypes that you can ask for by running
\subsubsubsection{write whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{stream} \NC number \NC \TEX's stream id number \NC \NR
\NC \type{data} \NC table \NC a table representing the token list to be written \NC \NR
@@ -684,7 +684,7 @@ Whatsit nodes come in many subtypes that you can ask for by running
\subsubsubsection{close whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{stream} \NC number \NC \TEX's stream id number \NC \NR
\stoptabulate
@@ -696,7 +696,7 @@ effect, they are an extension to the extension mechanism. The \LUATEX\ engine
will simply step over such whatsits without ever looking at the contents.
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{user_id} \NC number \NC id number \NC \NR
\NC \type{type} \NC number \NC type of the value \NC \NR
@@ -711,7 +711,7 @@ value if the first character if the type name (so you can use string.byte("l")
instead of \type {108}).
\starttabulate[|r|c|p|]
-\BC value \BC meaning \BC explanation \NC \NR
+\DB value \BC meaning \BC explanation \NC \NR
\NC 97 \NC a \NC list of attributes (a node list) \NC \NR
\NC 100 \NC d \NC a \LUA\ number \NC \NR
\NC 108 \NC l \NC a \LUA\ value (table, number, boolean, etc) \NC \NR
@@ -723,14 +723,14 @@ instead of \type {108}).
\subsubsubsection{save_pos whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\stoptabulate
\subsubsubsection{late_lua whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{data} \NC string \NC data to execute \NC \NR
\NC \type{string} \NC string \NC data to execute \NC \NR
@@ -738,7 +738,7 @@ instead of \type {108}).
\stoptabulate
The difference between \type {data} and \type {string} is that on assignment, the
-\type {data} field is converted to a token list, cf. use as \type {\latelua}. The
+\type {data} field is converted to a token list, cf.\ use as \type {\latelua}. The
\type {string} version is treated as a literal string.
\subsubsection{\DVI\ backend whatsits}
@@ -746,7 +746,7 @@ The difference between \type {data} and \type {string} is that on assignment, th
\subsubsection{special whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{data} \NC string \NC the \type {\special} information \NC \NR
\stoptabulate
@@ -756,7 +756,7 @@ The difference between \type {data} and \type {string} is that on assignment, th
\subsubsubsection{pdf_literal whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{mode} \NC number \NC the \quote {mode} setting of this literal \NC \NR
\NC \type{data} \NC string \NC the \type {\pdfliteral} information \NC \NR
@@ -765,7 +765,7 @@ The difference between \type {data} and \type {string} is that on assignment, th
Possible mode values are:
\starttabulate[|l|p|]
-\BC value \BC keyword \NC \NR
+\DB value \BC keyword \NC \NR
\NC 0 \NC \type{origin} \NC \NR
\NC 1 \NC \type{page} \NC \NR
\NC 2 \NC \type{direct} \NC \NR
@@ -780,7 +780,7 @@ what you generate.
\subsubsubsection{pdf_refobj whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{objnum} \NC number \NC the referenced \PDF\ object number \NC \NR
\stoptabulate
@@ -788,7 +788,7 @@ what you generate.
\subsubsubsection{pdf_annot whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width (not used in calculations) \NC \NR
\NC \type{height} \NC number \NC the height (not used in calculations) \NC \NR
@@ -800,7 +800,7 @@ what you generate.
\subsubsubsection{pdf_start_link whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width (not used in calculations) \NC \NR
\NC \type{height} \NC number \NC the height (not used in calculations) \NC \NR
@@ -813,14 +813,14 @@ what you generate.
\subsubsubsection{pdf_end_link whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC \NC \NR
\stoptabulate
\subsubsubsection{pdf_dest whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width (not used in calculations) \NC \NR
\NC \type{height} \NC number \NC the height (not used in calculations) \NC \NR
@@ -839,8 +839,7 @@ These are a special kind of item that only appears inside \PDF\ start link
objects.
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{action_type} \NC number \NC the kind of action involved \NC \NR
\NC \type{action_id} \NC number or string \NC token list reference or string \NC \NR
\NC \type{named_id} \NC number \NC the index of the destination \NC \NR
@@ -852,24 +851,26 @@ objects.
Valid action types are:
\starttabulate[|l|l|]
-\NC 0 \NC \type{page} \NC \NR
-\NC 1 \NC \type{goto} \NC \NR
-\NC 2 \NC \type{thread} \NC \NR
-\NC 3 \NC \type{user} \NC \NR
+\DB value \BC meaning \NC \NR
+\NC 0 \NC \type{page} \NC \NR
+\NC 1 \NC \type{goto} \NC \NR
+\NC 2 \NC \type{thread} \NC \NR
+\NC 3 \NC \type{user} \NC \NR
\stoptabulate
Valid window types are:
\starttabulate[|l|l|]
-\NC 0 \NC \type{notset} \NC \NR
-\NC 1 \NC \type{new} \NC \NR
-\NC 2 \NC \type{nonew} \NC \NR
+\DB value \BC meaning \NC \NR
+\NC 0 \NC \type{notset} \NC \NR
+\NC 1 \NC \type{new} \NC \NR
+\NC 2 \NC \type{nonew} \NC \NR
\stoptabulate
\subsubsubsection{pdf_thread whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width (not used in calculations) \NC \NR
\NC \type{height} \NC number \NC the height (not used in calculations) \NC \NR
@@ -883,7 +884,7 @@ Valid window types are:
\subsubsubsection{pdf_start_thread whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{width} \NC number \NC the width (not used in calculations) \NC \NR
\NC \type{height} \NC number \NC the height (not used in calculations) \NC \NR
@@ -897,14 +898,14 @@ Valid window types are:
\subsubsubsection{pdf_end_thread whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC \NC \NR
\stoptabulate
\subsubsubsection{pdf_colorstack whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{stack} \NC number \NC colorstack id number \NC \NR
\NC \type{command} \NC number \NC command to execute \NC \NR
@@ -914,7 +915,7 @@ Valid window types are:
\subsubsubsection{pdf_setmatrix whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\NC \type{data} \NC string \NC data \NC \NR
\stoptabulate
@@ -922,14 +923,14 @@ Valid window types are:
\subsubsubsection{pdf_save whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\stoptabulate
\subsubsubsection{pdf_restore whatsits}
\starttabulate[|l|l|p|]
-\BC field \BC type \BC explanation \NC \NR
+\DB field \BC type \BC explanation \NC \NR
\NC \type{attr} \NC node \NC list of attributes \NC \NR
\stoptabulate
@@ -1873,6 +1874,7 @@ end
Some accessors are used frequently and for these we provide more efficient helpers:
\starttabulate[|l|p|]
+\DB function \BC explanation \NC \NR
\NC \type{getnext} \NC parsing nodelist always involves this one \NC \NR
\NC \type{getprev} \NC used less but is logical companion to \type {getnext} \NC \NR
\NC \type{getboth} \NC returns the next and prev pointer of a node \NC \NR
@@ -1918,9 +1920,7 @@ consistency. You can of course always define additional accessor using \type
\def\yes{$+$} \def\nop{$-$}
\starttabulate[|l|c|c|]
-\HL
-\BC function \BC node \BC direct \NC \NR
-\HL
+\DB function \BC node \BC direct \NC \NR
%NC \type {do_ligature_n} \NC \yes \NC \yes \NC \NR % was never documented and experimental
\NC \type {check_discretionaries}\NC \yes \NC \yes \NC \NR
\NC \type {copy_list} \NC \yes \NC \yes \NC \NR
diff --git a/doc/context/sources/general/manuals/luatex/luatex-style.tex b/doc/context/sources/general/manuals/luatex/luatex-style.tex
index 3ea3bb9cd..a7aae444a 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-style.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-style.tex
@@ -2,8 +2,6 @@
% todo: use \useMPlibrary[lua]
-\usemodule[abr-02]
-
\setuplayout
[height=middle,
width=middle,
@@ -31,9 +29,24 @@
[each]
[packed]
+\setupitemize
+ [each]
+ [headcolor=maincolor,
+ symbolcolor=maincolor,
+ color=maincolor]
+
\setupwhitespace
[medium]
+\setuptabulate
+ [headstyle=bold,
+ foregroundcolor=white,
+ foregroundstyle=\ss\bfx\WORD,
+ backgroundcolor=maincolor]
+
+\setupcaptions
+ [headcolor=darkblue]
+
\startluacode
local skipped = table.tohash { 'id', 'subtype', 'next', 'prev' }
@@ -389,4 +402,6 @@
\dontcomplain
+\environment luatex-logos
+
\stopenvironment
diff --git a/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex b/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex
index ba979e5a8..9f4913b54 100644
--- a/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex-titlepage.tex
@@ -1,5 +1,4 @@
\environment luatex-style
-\environment luatex-logos
\startcomponent luatex-titlepage
diff --git a/doc/context/sources/general/manuals/luatex/luatex.tex b/doc/context/sources/general/manuals/luatex/luatex.tex
index dbd307d07..96ab1460e 100644
--- a/doc/context/sources/general/manuals/luatex/luatex.tex
+++ b/doc/context/sources/general/manuals/luatex/luatex.tex
@@ -65,6 +65,7 @@
\stopfrontmatter
\startbodymatter
+ \component luatex-preamble
\component luatex-enhancements
\component luatex-modifications
\component luatex-lua