Source code for pyfeyn2.render.latex

import os
import re
from tempfile import mktemp

from IPython.display import display
from pylatex import Command, Document, Section, Subsection
from pylatex.utils import NoEscape, italic
from wand.image import Image as WImage

from pyfeyn2.render.render import Render


[docs]class LatexRender(Document, Render): def __init__( self, fd, documentclass="standalone", document_options=["preview", "crop"], *args, **kwargs, ): super().__init__( *args, documentclass=documentclass, document_options=document_options, **kwargs, ) Render.__init__(self, fd)
[docs] def get_src(self): return self.dumps()
[docs] def get_src_diag(self): return self.src_diag
[docs] 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("\.pdf$", "", file.strip()) self.generate_pdf(file, clean_tex=clean_up) wi = WImage( filename=file + ".pdf", resolution=resolution, width=width, height=height ) if delete: os.remove(file + ".pdf") if show: display(wi) return wi