C Modules

C.13 LaTeXML::Mouth

Tokenize the input.

C.13.1 Description

A LaTeXML::Mouth (and subclasses) is responsible for tokenizing, ie. converting plain text and strings into LaTeXML::Tokens according to the current category codes (catcodes) stored in the LaTeXML::State.

LaTeXML::FileMouth

specializes LaTeXML::Mouth to tokenize from a file.

LaTeXML::StyleMouth

further specializes LaTeXML::FileMouth for processing style files, setting the catcode for @ and ignoring comments.

LaTeXML::PerlMouth

is not really a Mouth in the above sense, but is used to definitions from perl modules with exensions .ltxml and .latexml.

Creating Mouths

$mouth = LaTeXML::Mouth->new($string);

Creates a new Mouth reading from $string.

$mouth = LaTeXML::FileMouth->new($pathname);

Creates a new FileMouth to read from the given file.

$mouth = LaTeXML::StyleMouth->new($pathname);

Creates a new StyleMouth to read from the given style file.

Methods

$token = $mouth->readToken;

Returns the next LaTeXML::Token from the source.

$boole = $mouth->hasMoreInput;

Returns whether there is more data to read.

$string = $mouth->getLocator($long);

Return a description of current position in the source, for reporting errors.

$tokens = $mouth->readTokens($until);

Reads tokens until one matches $until (comparing the character, but not catcode). This is useful for the \\backslashverb command.

$lines = $mouth->readRawLines($endline,$exact);

Reads raw (untokenized) lines from $mouth until a line matching $endline is found. If $exact is true, $endline is matched exactly, with no leading or trailing data (like in the c<comment>package). Otherwise, the match is done like with the c<verbatim>environment; any text preceding $endline is returned as the last line, and any characters after $endline remains in the mouth to be tokenized.