---
name: "LaTeXML::Mouth"
section: "3pm"
platform: "linux"
package: "latexml"
version: "0.7.0-1"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/LaTeXML::Mouth"
---

# LaTeXML::Mouth(3pm)

tokenize the input.

## NAME

`"LaTeXML::Mouth"` - tokenize the input.

## 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 `"\verb"` 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.

## AUTHOR

Bruce Miller \<bruce.miller@nist.gov\>

## COPYRIGHT

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