Expand description
Node memory: an arena of typesetting nodes addressed by NodeRef.
The node model mirrors LuaTeX’s. Node type ids, subtypes and field sets
are those that LuaTeX’s node library reports (see
data/luatex-node-types.txt). Lists are doubly linked through next and
prev. List heads in the semantic nest are temp nodes, as in TeX.
Modules§
- accent_
sub - Accent subtypes.
- fence_
sub - Fence subtypes.
- glue_
sub - Glue subtypes (LuaTeX numbering).
- glyph_
sub - Glyph subtypes (bit flags).
- id
- Node type ids, numbered as LuaTeX’s
node.types(). - kern_
sub - Kern subtypes.
- list_
sub - Subtypes of hlist and vlist nodes that math typesetting gives the boxes
it builds (LuaTeX’s
mathchar,vextensible,vdelimiter). - noad_
opt - Noad option bits (LuaTeX manual, “Math core nodes”).
- noad_
sub - Noad subtypes (LuaTeX numbering).
- radical_
sub - Radical subtypes.
- whatsit_
sub - Whatsit subtypes.
Structs§
- BoxData
- Box fields shared by hlist and vlist nodes.
- Fence
Data - Fields of a fence noad (
\left,\middle,\right). - Fraction
Data - Fields of a generalized fraction noad.
- Glyph
Data - Fields of a glyph node.
- LuaRefs
- The numbers LuaTeX gives the Lua values it keeps by reference (shown
as
<lua data reference N>), modelled as observed: a new reference takes the most recently released number, else the next one; freeing or overwriting a node’s value releases its number, copying the node takes a new one. Fonts made from Lua tables and luaotfload’s set-up hold references too. - Noad
Data - Fields of a noad (LuaTeX’s
noad,radicalandaccentnodes). The nucleus and the scripts are kernel nodes (math_char,math_text_char,sub_box,sub_mlist), or null when empty. - Node
- A node.
- NodeRef
- A reference to a node in the node arena;
NodeRef::NULLis the empty list. - Nodes
- The node arena.
- Properties
- LuaTeX’s node properties as the engine tracks them: which nodes have
one, the mode set by
node.set_properties_mode(flush, copy), and the frees and copies of such nodes since the Lua side last looked. - Sync
Fields - The SyncTeX fields (input tag and line) of the nodes, kept beside the arena while SyncTeX is on, so that runs without it pay nothing.
Enums§
- Late
Data - Data of late whatsits: an unexpanded token list or a string.
- Node
Data - Type-specific node data.
- Prop
Event - What happened to a node with a Lua property (
node.setproperty), for the Lua side to update its property table. - User
Value - The value of a
user_definedwhatsit, by its type (LuaTeX manual:a,d,l,n,s,t). - Whatsit
- Whatsit payloads.
Constants§
- DEFAULT_
CODE - The fraction thickness meaning “the default rule thickness”
(
default_code). - LUATEX_
NODE_ TYPES - LuaTeX’s node types, fields and subtypes, as
node.types(),node.fields()andnode.subtypes()report them (data/luatex-node-types.txt, seedata/README.md). - MAX_
NESTING - The deepest nesting of boxes that is copied and shipped out (TeX builds at most 1000 levels at a time, LuaTeX ships out 20000 boxes nested in each other, and Lua code can make a box contain itself).
- RUNNING
- A “running” rule dimension (TeX’s
null_flag, −2³⁰).
Functions§
- glue_
ratio - The glue set ratio
num / denas LuaTeX stores it: the quotient is computed in double precision and kept as a Cfloat(observed throughtex.box[n].glue_set). The rounding shows at shipout, where the ratio multiplies the accumulated stretch or shrink (§625). - type_
name - The Lua name of node type
t(glue), fromLUATEX_NODE_TYPES.
Type Aliases§
- Attr
List - A list of attribute (number, value) pairs, sorted by number.