---
name: "LaTeXML::Core::Mouth"
section: "3pm"
platform: "linux"
package: "latexml"
version: "0.8.8-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/LaTeXML::Core::Mouth"
---

# LaTeXML::Core::Mouth(3pm)

tokenize the input.

## NAME

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

## DESCRIPTION

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

It extends LaTeXML::Common::Object.

### Creating Mouths

- "$mouth = LaTeXML::Core::Mouth-\>create($source, %options);"

  Creates a new Mouth of the appropriate class for reading from `$source`.

- "$mouth = LaTeXML::Core::Mouth-\>new($string, %options);"

  Creates a new Mouth reading from `$string`.

### Methods

- "$token = $mouth-\>readToken;"

  Returns the next LaTeXML::Core::Token from the source.

- "$boole = $mouth-\>hasMoreInput;"

  Returns whether there is more data to read.

- "$string = $mouth-\>getLocator;"

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

- "$tokens = $mouth-\>readTokens;"

  Reads all remaining tokens in the mouth, removing any trailing space catcode tokens

- "$lines = $mouth-\>readRawLine;"

  Reads a raw (untokenized) line from `$mouth`, or undef if none is found.

## 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.
