Source code for pyfeyn2.render.latex.latex

import os
import re

from IPython.display import display
from pylatex import Document
from pylatex.utils import NoEscape
from wand.image import Image as WImage

from pyfeyn2.render.render import Render


[docs]class LatexRender(Document, Render):
[docs] def __init__( self, fd=None, documentclass="standalone", document_options=None, *args, **kwargs, ): if document_options is None: document_options = ["preview", "crop"] super().__init__( *args, documentclass=documentclass, document_options=document_options, **kwargs, ) Render.__init__(self, fd)
def get_src(self): return self.dumps() def get_src_diag(self): return self.src_diag def set_src_diag(self, src_diag): self.src_diag = src_diag self.append(NoEscape(src_diag))
[docs] def render( self, file=None, show=True, resolution=100, width=None, height=None, clean_up=True, ): delete = False if file is None: delete = True file = "tmp" file = re.sub(r"\.pdf$", "", file.strip()) self.generate_pdf( file, clean_tex=clean_up, compiler="lualatex", compiler_args=["-shell-escape"], ) wi = WImage( filename=file + ".pdf", resolution=resolution, width=width, height=height ) if delete: os.remove(file + ".pdf") if show: display(wi) return wi