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 and so on. The other functions and classes are exposed in case someone would want to extend them.


Register the find_latex() codec search function.


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


Inserts space bytes in space eating mode.


Reset state.

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


Get state.


Reset state.


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

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.

  • 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 symbols and their LaTeX equivalents (called by constructor).