LaTeXM...:State(3pm)
π LaTeXML::Core::State β User Contributed Perl Documentation
okay bestie, welcome to LaTeXML::Core::State(3pm), the perl module that literally holds the entire vibe of your document-while-it's-being-processed π
β¨ NAME β¨
"LaTeXML::Core::State" β stores the current state of processing. that's it, that's the whole name π
πΈ DESCRIPTION πΈ
A "LaTeXML::Core::State" object stores the current state of processing. no cap. it keeps track of catcodes, variables values, definitions and so forth β like a little diary of everything TeX is thinking rn π β and on top of that it's out here mimicking TeX's scoping rules. iconic behavior honestly π
π«Ά Access to State and Processing
$STATE->getStomach;β Returns the current Stomach used for digestion. yes it's really called that. it's the tummy that eats your tokens π$STATE->getModel;β Returns the current Model representing the document model. the blueprint of the whole thing π
π Scoping
so the assignment methods (they're all down below, keep reading bestie) generally take a $scope argument, and that's what decides how the assignment gets made. the allowed values and their whole implications are:
global : global assignment.
local : local assignment, within the current grouping.
undef : global if \global preceded, else local (default)
<name> : stores the assignment in a `scope' which
can be loaded later.
and if no scoping is specified at all? then the assignment goes global if a preceding "\global" has set the global flag β otherwise the value gets assigned within the current grouping. simple as that β¨
$STATE->pushFrame;β Starts a new level of grouping. heads up though: this is lower level than"\bgroup". See LaTeXML::Core::Stomach π$STATE->popFrame;β Ends the current level of grouping. also lower level than"\egroup". again, See LaTeXML::Core::Stomach.$STATE->setPrefix($prefix);β Sets a prefix (eg."global"for"\global", etc) for the next operation, if applicable. little pre-game ritual π§$STATE->clearPrefixes;β Clears any prefixes. reset era π
π Values
$value = $STATE->lookupValue($name);β Lookup the current value associated with the the string $name.$STATE->assignValue($name,$value,$scope);β Assign $value to be associated with the the string $name, according to the given scoping rule.
and yes, values are also used to specify most configuration parameters (which means those can be scoped too, slay). the recognized configuration parameters are:
STRICT : whether errors (eg. undefined macros)
are fatal.
INCLUDE_COMMENTS : whether to preserve comments in the
source, and to add occasional line
number comments. (Default true).
PRESERVE_NEWLINES : whether newlines in the source should
be preserved (not 100% TeX-like).
By default this is true.
SEARCHPATHS : a list of directories to search for
sources, implementations, etc.
$STATE->pushValue($name,$value);β This is like->assign, but pushes a value onto the end of the stored value, which should be a LIST reference. Scoping is not handled here (yet?), it simply pushes the value onto the last binding of $name. lowkey unhinged but okay π$boole = $STATE->isValuebound($type,$name,$frame);β Returns whether the value $name is bound. If $frame is given, check whether it is bound in the $frame-th frame, with 0 being the top frame. counting from zero, as one does π
π¦ Category Codes
$value = $STATE->lookupCatcode($char);β Lookup the current catcode associated with the the character $char.$STATE->assignCatcode($char,$catcode,$scope);β Set $char to have the given $catcode, with the assignment made according to the given scoping rule.
this method is also used to specify whether a given character is active in math mode β you do that by using "math:$char" for the character, and using a value of 1 to specify that it is active. math girlies rise π
π Definitions
$defn = $STATE->lookupMeaning($token);β Get the"meaning"currently associated with $token, either the definition (if it is a control sequence or active character) or the token itself if it shouldn't be executable. (See LaTeXML::Core::Definition)$STATE->assignMeaning($token,$defn,$scope);β Set the definition associated with $token to $defn. If $globally is true, it makes this the global definition rather than bound within the current group. (See LaTeXML::Core::Definition, and LaTeXML::Package)$STATE->installDefinition($definition, $scope);β Install the definition into the current stack frame under its normal control sequence. put it on the shelf, it lives there now π«Ά
β Named Scopes
Named scopes can be used to set variables or redefine control sequences within a scope other than the standard TeX grouping. for example: the LaTeX implementation will automatically activate any definitions that were defined with a named scope of, say "section:4", during the portion of the document that has the section counter equal to 4 π₯. similarly, a scope named "label:foo" will be activated in portions of the document where "\label{foo}" is in effect. it's giving β¨context-awareβ¨
$STATE->activateScope($scope);β Installs any definitions that were associated with the named $scope. note that these are placed in the current grouping frame and will disappear when that grouping ends. fleeting, like all things π$STATE->deactivateScope($scope);β Removes any definitions that were associated with the named $scope. Normally not needed, since a scopes definitions are locally bound anyway. so like, don't bother, but it's there π$sp = $STATE->convertUnit($unit);β Converts a TeX unit of the form'10em'(or whatever TeX unit) into scaled points. (Defined here since in principle it could track the size of ems and so forth (but currently doesn't)) β honest queen, love the transparency π
π AUTHOR π
Bruce Miller <bruce.miller@nist.gov> β the main character who wrote all this π
π COPYRIGHT π
Public domain software, produced as part of work done by the United States Government & not subject to copyright in the US. literally free, no strings, periodt π
and that's the whole page bestie!! this one's from perl v5.40.1, dated 2025-11-16 β see you in the next manpage, mwah ππ
β¨
π¦ where this page comes from
- ubuntu resolute: latexml 0.8.8-4 Β· PD
- ubuntu stonking: latexml 0.8.8-4 Β· PD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms