Reference

LaTeXML::Stomach(3pm)

digests tokens into boxes, lists, etc.

NAME

"LaTeXML::Stomach" - digests tokens into boxes, lists, etc.

DESCRIPTION

"LaTeXML::Stomach" digests tokens read from a LaTeXML::Gullet (they will have already been expanded).

There are basically four cases when digesting a LaTeXML::Token:

A plain character

is simply converted to a LaTeXML::Box (or LaTeXML::MathBox in math mode), recording the current LaTeXML::Font.

A primitive

If a control sequence represents LaTeXML::Primitive, the primitive is invoked, executing its stored subroutine. This is typically done for side effect (changing the state in the LaTeXML::State), although they may also contribute digested material. As with macros, any arguments to the primitive are read from the LaTeXML::Gullet.

Grouping (or environment bodies)

are collected into a LaTeXML::List.

Constructors

A special class of control sequence, called a LaTeXML::Constructor produces a LaTeXML::Whatsit which remembers the control sequence and arguments that created it, and defines its own translation into "XML" elements, attributes and data. Arguments to a constructor are read from the gullet and also digested.

Digestion

"$list = $stomach->digestNextBody;"

Return the digested LaTeXML::List after reading and digesting a `body' from the its Gullet. The body extends until the current level of boxing or environment is closed.

"$list = $stomach->digest($tokens);"

Return the LaTeXML::List resuting from digesting the given tokens. This is typically used to digest arguments to primitives or constructors.

"@boxes = $stomach->invokeToken($token);"

Invoke the given (expanded) token. If it corresponds to a Primitive or Constructor, the definition will be invoked, reading any needed arguments fromt he current input source. Otherwise, the token will be digested. A List of Box's, Lists, Whatsit's is returned.

"@boxes = $stomach->regurgitate;"

Removes and returns a list of the boxes already digested at the current level. This peculiar beast is used by things like \choose (which is a Primitive in TeX, but a Constructor in LaTeXML).

Grouping

"$stomach->bgroup;"

Begin a new level of binding by pushing a new stack frame, and a new level of boxing the digested output.

"$stomach->egroup;"

End a level of binding by popping the last stack frame, undoing whatever bindings appeared there, and also decrementing the level of boxing.

"$stomach->begingroup;"

Begin a new level of binding by pushing a new stack frame.

"$stomach->endgroup;"

End a level of binding by popping the last stack frame, undoing whatever bindings appeared there.

Modes

"$stomach->beginMode($mode);"

Begin processing in $mode; one of 'text', 'display-math' or 'inline-math'. This also begins a new level of grouping and switches to a font appropriate for the mode.

"$stomach->endMode($mode);"

End processing in $mode; an error is signalled if $stomach is not currently in $mode. This also ends a level of grouping.

AUTHOR

Bruce Miller <[email protected]>

COPYRIGHT

Public domain software, produced as part of work done by the United States Government & not subject to copyright in the US.