You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.7 KiB
48 lines
1.7 KiB
# :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 |
|
# ================================= |
|
|
|
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
|
|
|