def render_latex (value): if isinstance (value, int): return unicode (value) if isinstance (value, unicode): return unicode_to_latex (value) if isinstance (value, str): return unicode_to_latex (unicode (value)) if isinstance (value, Markup): return value.latex () raise ValueError ('don\'t know how to render %r into latex' % value)
def latexify (obj, **kwargs): """Render an object in LaTeX appropriately. """ if hasattr (obj, '__pk_latex__'): return obj.__pk_latex__ (**kwargs) if isinstance (obj, text_type): from unicode_to_latex import unicode_to_latex return unicode_to_latex (obj) if isinstance (obj, bool): # isinstance (True, int) = True, so gotta handle this first. raise ValueError ('no well-defined LaTeXification of bool %r' % obj) if isinstance (obj, float): nplaces = kwargs.get ('nplaces') if nplaces is None: return b'$%f$' % obj return b'$%.*f$' % (nplaces, obj) if isinstance (obj, int): return b'$%d$' % obj if isinstance (obj, binary_type): raise ValueError ('no safe LaTeXification of binary string %r' % obj) raise ValueError ('can\'t LaTeXify %r' % obj)
def _latex (self): return [unicode_to_latex (self.text)]