How to read the primitives reference

This section is the reference documentation of all primitive tags defined by the typesetter. Each subsection documents several primitives and starts by a table summarizing their properties and intended usage.

Operator Arity Accessible Process Usage
border children
example 2 + 3 n Yes First two Display Never

Table 1. Example tag description

Operator
Primitives defined in this section.
Arity
Allowed operand counts.
Accessible border

Whether the tag borders are accessible.

The border positions are “just before” and “just after” the tag.

Accessible children

Children which are editable when the tag is active.

Not all tags can be deactivated, only the accessible subtrees of such tags can be edited. Modifying the other subtrees is always possible by script.

All
All subtrees are accessible.
None
No subtree is accessible.
First n
Only a fixed number of subtrees at the start of the tag are accessible.
Last n
Only a fixed number of subtrees at the end of the tag are accessible.
Process

Steps of the typesetting process which are affected.

Typesetting
Normally self-evaluating, affects the typesetting of operands. Some typesetting primitives may evaluate to error trees when given inappropriate operands.
Functional
Substituted at evaluation, yields a synthetic tree, possibly empty.
Macro
Substituted at evaluation, yields a tree which may have accessible parts.
Display
Self-evaluating and explicitly displayed. Such primitives have no inherent semantics and are not normally visible in documents. They are used to report problems or in internal structures.
Usage

Documents where this primitive is allowed.

Logical
Logically structured regular documents.
Physical
Regular documents, but this primitive is not considered part of the logical subset of the typesetting language.
Style
Stylesheet documents only.
Never
This primitive should never appear in production documents. It may appear during the evaluation of incorrect document, occur temporarily during edition, or be useful for scripting.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".