Source code for docutils.utils.math

# :Id: $Id: __init__.py 7865 2015-04-12 10:06:43Z milde $
# :Author: Guenter Milde.
# :License: Released under the terms of the `2-Clause BSD license`_, in short:
#
#    Copying and distribution of this file, with or without modification,
#    are permitted in any medium without royalty provided the copyright
#    notice and this notice are preserved.
#    This file is offered as-is, without any warranty.
#
# .. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause

"""
This is the Docutils (Python Documentation Utilities) "math" sub-package.

It contains various modules for conversion between different math formats
(LaTeX, MathML, HTML).

:math2html:    LaTeX math -> HTML conversion from eLyXer
:latex2mathml: LaTeX math -> presentational MathML
:unichar2tex:  Unicode character to LaTeX math translation table
:tex2unichar:  LaTeX math to Unicode character translation dictionaries
:tex2mathml_extern: Wrapper for TeX -> MathML command line converters
"""

# helpers for Docutils math support
# =================================

[docs]def pick_math_environment(code, numbered=False): """Return the right math environment to display `code`. The test simply looks for line-breaks (``\\``) outside environments. Multi-line formulae are set with ``align``, one-liners with ``equation``. If `numbered` evaluates to ``False``, the "starred" versions are used to suppress numbering. """ # cut out environment content: chunks = code.split(r'\begin{') toplevel_code = ''.join([chunk.split(r'\end{')[-1] for chunk in chunks]) if toplevel_code.find(r'\\') >= 0: env = 'align' else: env = 'equation' if not numbered: env += '*' return env