all2md.renderers.latex
LaTeX rendering from AST.
This module provides the LatexRenderer class which converts AST nodes to LaTeX text. The renderer supports configurable rendering options for controlling output format and can generate complete documents or fragments.
- class all2md.renderers.latex.LatexRenderer
Bases:
NodeVisitor,InlineContentMixin,BaseRendererRender AST nodes to LaTeX text.
This class implements the visitor pattern to traverse an AST and generate LaTeX output. It supports configurable rendering options and can generate complete documents or fragments for inclusion.
- Parameters:
options (LatexRendererOptions or None, default = None) – LaTeX rendering options
Examples
Basic usage:
>>> from all2md.ast import Document, Heading, Text >>> from all2md.renderers.latex import LatexRenderer >>> doc = Document(children=[ ... Heading(level=1, content=[Text(content="Title")]) ... ]) >>> renderer = LatexRenderer() >>> latex = renderer.render_to_string(doc) >>> print(latex) \documentclass{article} ... \section{Title} ...
Initialize the LaTeX renderer with options.
- SPECIAL_CHARS = {'#': '\\#', '$': '\\$', '%': '\\%', '&': '\\&', '\\': '\\textbackslash{}', '^': '\\textasciicircum{}', '_': '\\_', '{': '\\{', '}': '\\}', '~': '\\textasciitilde{}'}
- __init__(options: LatexRendererOptions | None = None)
Initialize the LaTeX renderer with options.
- render_to_string(document: Document) str
Render a document AST to LaTeX string.
- Parameters:
document (Document) – The document node to render
- Returns:
LaTeX text
- Return type:
str
- visit_document(node: Document) None
Render a Document node.
This method is not called directly as rendering is handled by render_to_string.
- Parameters:
node (Document) – Document to render
- visit_heading(node: Heading) None
Render a Heading node.
- Parameters:
node (Heading) – Heading to render
- visit_paragraph(node: Paragraph) None
Render a Paragraph node.
- Parameters:
node (Paragraph) – Paragraph to render
- visit_code_block(node: CodeBlock) None
Render a CodeBlock node.
- Parameters:
node (CodeBlock) – Code block to render
- visit_block_quote(node: BlockQuote) None
Render a BlockQuote node.
- Parameters:
node (BlockQuote) – Block quote to render
- visit_list_item(node: ListItem) None
Render a ListItem node.
- Parameters:
node (ListItem) – List item to render
- visit_table_row(node: TableRow) None
Render a TableRow node (handled by visit_table).
- Parameters:
node (TableRow) – Table row to render
- visit_table_cell(node: TableCell) None
Render a TableCell node (handled by visit_table).
- Parameters:
node (TableCell) – Table cell to render
- visit_thematic_break(node: ThematicBreak) None
Render a ThematicBreak node.
- Parameters:
node (ThematicBreak) – Thematic break to render
- visit_html_block(node: HTMLBlock) None
Render an HTMLBlock node.
- Parameters:
node (HTMLBlock) – HTML block to render
- visit_emphasis(node: Emphasis) None
Render an Emphasis node.
- Parameters:
node (Emphasis) – Emphasis to render
- visit_line_break(node: LineBreak) None
Render a LineBreak node.
- Parameters:
node (LineBreak) – Line break to render
- visit_superscript(node: Superscript) None
Render a Superscript node.
- Parameters:
node (Superscript) – Superscript to render
- visit_subscript(node: Subscript) None
Render a Subscript node.
- Parameters:
node (Subscript) – Subscript to render
- visit_underline(node: Underline) None
Render an Underline node.
- Parameters:
node (Underline) – Underline to render
- visit_strikethrough(node: Strikethrough) None
Render a Strikethrough node.
- Parameters:
node (Strikethrough) – Strikethrough to render
- visit_html_inline(node: HTMLInline) None
Render an HTMLInline node.
- Parameters:
node (HTMLInline) – Inline HTML to render
- visit_comment(node: Comment) None
Render a Comment node (block-level).
- Parameters:
node (Comment) – Comment block to render
- visit_comment_inline(node: CommentInline) None
Render a CommentInline node (inline).
- Parameters:
node (CommentInline) – Inline comment to render
- visit_footnote_reference(node: FootnoteReference) None
Render a FootnoteReference node.
- Parameters:
node (FootnoteReference) – Footnote reference to render
- visit_footnote_definition(node: FootnoteDefinition) None
Render a FootnoteDefinition node.
- Parameters:
node (FootnoteDefinition) – Footnote definition to render
- visit_math_inline(node: MathInline) None
Render a MathInline node.
- Parameters:
node (MathInline) – Inline math to render
- visit_math_block(node: MathBlock) None
Render a MathBlock node.
- Parameters:
node (MathBlock) – Math block to render
- visit_definition_list(node: DefinitionList) None
Render a DefinitionList node.
- Parameters:
node (DefinitionList) – Definition list to render
- visit_definition_term(node: DefinitionTerm) None
Render a DefinitionTerm node (handled by visit_definition_list).
- Parameters:
node (DefinitionTerm) – Definition term to render
- visit_definition_description(node: DefinitionDescription) None
Render a DefinitionDescription node (handled by visit_definition_list).
- Parameters:
node (DefinitionDescription) – Definition description to render