-# -*- coding: utf-8 -*-
-from __future__ import unicode_literals
-
+# This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
+#
from lxml import etree
-import six
from librarian import get_resource
from . import TreeEmbed, create_embed, downgrades_to
@downgrades_to('application/x-latex')
def to_latex(self):
"""
- >>> print(MathML(etree.fromstring('<mat>a < b</mat>')).to_latex().data.strip())
+ >>> print(MathML(etree.fromstring(
+ ... '<mat>a < b</mat>'
+ ... )).to_latex().data.strip())
a < b
- >>> print(MathML(etree.fromstring('<mat>< & &lt; A</mat>')).to_latex().data.strip())
+ >>> print(MathML(etree.fromstring(
+ ... '<mat>< & &lt; A</mat>'
+ ... )).to_latex().data.strip())
< & < A
"""
xslt = etree.parse(get_resource('res/embeds/mathml/mathml2latex.xslt'))
output = self.tree.xslt(xslt)
- text = six.text_type(output)
- # Workaround for entities being preserved in output. But there should be a better way.
+ text = str(output)
+ # Workaround for entities being preserved in output.
+ # But there should be a better way.
text = text.replace('<', '<').replace('&', '&')
return create_embed('application/x-latex', data=text)