| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- """
- Utility functions to extract text from the supported mathematical equations from xml tags and
- convert them into LaTeX
- """
- from .cleaners import clean_exp
- ns_map = {
- "w": "http://schemas.openxmlformats.org/wordprocessingml/2006/main",
- "m": "http://schemas.openxmlformats.org/officeDocument/2006/math",
- }
- def linear_expression(tag):
- """
- Just returns the text contained in the given tag while setting docxlatex_skip_iteration flags
- for all its children.
- :param tag:defusedxml.Element - An xml element which contains a math equation in linear form
- :return text:str - The equation in valid LaTeX syntax
- """
- text = ""
- for child in tag.iter():
- child.set("docxlatex_skip_iteration", True)
- text += child.text if child.text is not None else ""
- text = clean_exp(text)
- return text
- def qn(tag):
- """
- A utility function to turn a namespace
- prefixed tag name into a Clark-notation qualified tag name for lxml. For
- example, qn('m:oMath') returns '{http://schemas.openxmlformats.org/officeDocument/2006/math}oMath'
- :param tag:str - A namespace-prefixed tag name
- :return qn:str - A Clark-notation qualified name tag for lxml.
- """
- prefix, tag_root = tag.split(":")
- uri = ns_map[prefix]
- return "{{{}}}{}".format(uri, tag_root)
|