start to implement texenv filter for pictures

This commit is contained in:
Benjamin Bertrand
2016-11-25 08:00:02 +03:00
parent efcc647b3a
commit 0c33f5322c
3 changed files with 38 additions and 19 deletions

View File

@@ -0,0 +1,32 @@
#!/usr/bin/env python
# encoding: utf-8
from uuid import uuid4
from path import Path
def includegraphic(fig_ax, path="./fig/",
prefix="", scale=1):
""" Jinja2 filter which save the figure and return latex includegraphic to display it.
:param fig_ax: TODO
:param path: TODO
:param prefix: TODO
:param scale: TODO
:returns: TODO
"""
fig, ax = fig_ax
if prefix:
filename = "{}_{}.pdf".format(prefix, str(uuid4())[:8])
else:
filename = "{}.pdf".format(str(uuid4())[:8])
path_to_file = Path(path)
path_to_file.mkdir_p()
fig.savefig(path_to_file/filename)
return "\includegraphic[scale={sc}]{{{f}}}".format(sc = scale, f=path_to_file/filename)
# -----------------------------
# Reglages pour 'vim'
# vim:set autoindent expandtab tabstop=4 shiftwidth=4:
# cursor: 16 del

View File

@@ -2,6 +2,7 @@
# encoding: utf-8
import jinja2, os
from .filters import includegraphic
__all__ = ["texenv"]
@@ -24,25 +25,8 @@ texenv = jinja2.Environment(
# Filters
def do_calculus(steps, name = "A", sep = "=", end = "", joining = " \\\\ \n"):
"""Display properly the calculus
texenv.filters['includegraphic'] = includegraphic
Generate this form string:
"name & sep & a_step end joining"
:param steps: list of steps
:returns: latex string ready to be endbeded
"""
ans = joining.join([name + " & " + sep + " & " + str(s) + end for s in steps])
return ans
texenv.filters['calculus'] = do_calculus
from random import shuffle
texenv.filters['shuffle'] = shuffle