Caller class for LaTeXยง

See API documentation for Caller.

[1]:
import magic_call.latex
from IPython.display import Image, SVG
[2]:
caller = magic_call.latex.Caller()
[3]:
assert caller.call_standalone('hello') is None
[4]:
assert caller.call_standalone('hello', [], []) == ([], [])
[5]:
dvi_blob, svg_blob = caller.call_standalone('hello', ['dvi', 'svg'])
[6]:
SVG(svg_blob)
[6]:
../_images/latex_caller_7_0.svg
[7]:
png_blob, = caller.call_tikzpicture('\draw rectangle (1, 1);', ['png'])
Image(png_blob)
[7]:
../_images/latex_caller_8_0.png
[8]:
# no formats
data = caller.call_standalone('hello', [])
data
[8]:
[]
[9]:
data = caller.call_standalone('hello', files=[
    'caller_output.pdf',
    'caller_output.png',
    'caller_output2.png',
])
data
[9]:
[PosixPath('caller_output.png'),
 PosixPath('caller_output2.png'),
 PosixPath('caller_output.pdf')]
[10]:
magic_call.latex.DEFAULT_COMMANDS
[10]:
[('dvi', 'latex --halt-on-error --output-format=dvi --jobname={}'),
 ('xdv', ''),
 ('dvi2svg',
  'dvisvgm --bbox=papersize --font-format=woff,autohint --exact {} --output={}'),
 ('pdf', 'latex --halt-on-error --output-format=pdf --jobname={}'),
 ('pdf2png', 'pdftoppm -png -singlefile -r 96 {0} {0}'),
 ('dvi2png', 'dvipng -D 96 {} -o {}')]
[11]:
caller.get_default_chains()
[11]:
{'.dvi': ['.dvi'],
 '.xdv': ['.xdv'],
 '.svg': ['.dvi', '.svg'],
 '.pdf': ['.pdf'],
 '.png': ['.pdf', '.png']}
[12]:
commands = (
    ('dvi2ps', ''),
    ('ps2eps', ''),
    ('eps2eps', ''),
    ('eps2ps', ''),
    ('ps2pdf', ''),
    ('dvi', ''),
    ('pdf', ''),
    ('pdf2png', ''),
    ('ps2png', ''),
    ('dvi2pdf', ''),
    ('dvi2svg', ''),
    ('pdf2png', ''),
)
caller = magic_call.latex.Caller(commands=commands)
[13]:
# TODO: test XDV