# LaTeX Codec

The `latexcodec.codec` module contains all classes and functions for LaTeX code translation. For practical use, you should only ever need to import the `latexcodec` module, which will automatically register the codec so it can be used by `str.encode()`, `str.decode()`, and any of the functions defined in the `codecs` module such as `codecs.open()` and so on. The other functions and classes are exposed in case someone would want to extend them.

`latexcodec.codec.``register`()

  Register the `find_latex()` codec search function.

  See also

  `codecs.register()`

`latexcodec.codec.``find_latex`(encoding)

  Return a `codecs.CodecInfo` instance for the requested LaTeX encoding, which must be equal to `latex`, or to `latex+<encoding>` where `<encoding>` describes another encoding.

class `latexcodec.codec.``LatexIncrementalEncoder`(errors='strict')

  Bases: `latexcodec.lexer.LatexIncrementalEncoder`

  Translating incremental encoder for latex. Maintains a state to determine whether control spaces etc. need to be inserted.

  `get_latex_bytes`(unicode_, final=False)

    Encode every character in `inputenc` encoding. Override to process the unicode in some other way (for example, for character translation).

  `get_space_bytes`(bytes_)

    Inserts space bytes in space eating mode.

  `reset`()

    Reset state.

  `table` = <latexcodec.codec.LatexUnicodeTable object>

    Translation table.

class `latexcodec.codec.``LatexIncrementalDecoder`(errors='strict')

  Bases: `latexcodec.lexer.LatexIncrementalDecoder`

  Translating incremental decoder for LaTeX.

  `get_unicode_tokens`(bytes_, final=False)

    Decode every token in `inputenc` encoding. Override to process the tokens in some other way (for example, for token translation).

  `getstate`()

    Get state.

  `reset`()

    Reset state.

  `setstate`(state)

    Set state. The state must correspond to the return value of a previous `getstate()` call.

  `table` = <latexcodec.codec.LatexUnicodeTable object>

    Translation table.

class `latexcodec.codec.``LatexCodec`

  Bases: `codecs.Codec`

  `decode`(bytes_, errors='strict')

    Convert LaTeX bytes to unicode string.

  `encode`(unicode_, errors='strict')

    Convert unicode string to LaTeX bytes.

class `latexcodec.codec.``LatexUnicodeTable`(lexer)

  Tabulates a translation between LaTeX and unicode.

  `register`(unicode_text, latex_text, mode='text', package=None, decode=True, encode=True)

    Register a correspondence between unicode_text and latex_text.

    Parameters:

    - unicode_text (str) – A unicode character.
    - latex_text (bytes) – Its corresponding LaTeX translation.
    - mode (str) – LaTeX mode in which the translation applies (`'text'` or `'math'`).
    - package (str) – LaTeX package requirements (currently ignored).
    - decode (bool) – Whether this translation applies to decoding (default: `True`).
    - encode (bool) – Whether this translation applies to encoding (default: `True`).

  `register_all`()

    Register all symbols and their LaTeX equivalents (called by constructor).