Author: milde Date: 2011-06-27 13:38:56 +0200 (Mon, 27 Jun 2011) New Revision: 7058 Added: trunk/docutils/licenses/BSD-2-Clause.txt Removed: trunk/docutils/docutils/math/mathtools.py trunk/docutils/licenses/apache-license-2-0.txt Modified: trunk/docutils/COPYING.txt trunk/docutils/HISTORY.txt trunk/docutils/docs/dev/policies.txt trunk/docutils/docutils/error_reporting.py trunk/docutils/docutils/math/__init__.py trunk/docutils/docutils/math/latex2mathml.py trunk/docutils/docutils/math/math2html.py trunk/docutils/docutils/writers/html4css1/__init__.py trunk/docutils/docutils/writers/html4css1/math.css trunk/docutils/docutils/writers/latex2e/__init__.py trunk/docutils/docutils/writers/xetex/__init__.py trunk/docutils/setup.py Log: Move from Apache 2 license to 2-Clause BSD. Solves [ 3304675 ] Modified: trunk/docutils/COPYING.txt =================================================================== --- trunk/docutils/COPYING.txt 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/COPYING.txt 2011-06-27 11:38:56 UTC (rev 7058) @@ -15,12 +15,7 @@ Files in the Sandbox_ are not distributed with Docutils releases and may have different license terms. -One goal of the Docutils project is to be included in the Python -standard library distribution, at which time it is expected that -copyright will be asserted by the `Python Software Foundation -<http://www.python.org/psf/>`_. - Public Domain Dedication ======================== @@ -59,16 +54,15 @@ (This dedication is derived from the text of the `Creative Commons Public Domain Dedication -<http://creativecommons.org/licenses/publicdomain>`_.) +<http://creativecommons.org/licenses/publicdomain>`_. [#]_) -.. Creative Commons has `retired this legal tool`__ and does not +.. [#] Creative Commons has `retired this legal tool`__ and does not recommend that it be applied to works: This tool is based on United States law and may not be applicable outside the US. For dedicating new works to the public domain, Creative Commons recommend CC0_. So does the Free Software Foundation in its license-list_. __ http://creativecommons.org/retiredlicenses - .. _CC0: http://creativecommons.org/publicdomain/zero/1.0/legalcode Exceptions @@ -83,21 +77,22 @@ this notice remains intact. * docutils/math/__init__.py, - docutils/math/mathtools.py, docutils/math/latex2mathml.py, docutils/writers/xetex/__init__.py, docutils/error_reporting.py: Copyright © Günter Milde. - Released under the terms of the `Apache License, Version 2.0`_ - (`local copy <licenses/apache-license-2-0.txt>`__). + Released under the terms of the `2-Clause BSD license`_ + (`local copy <licenses/BSD-2-Clause.txt>`__). -* docutils/math/math2html.py, Copyright (C) Alex Fernández +* docutils/math/math2html.py, + docutils/writers/html4css1/math.css - This conversion script is part of eLyXer_, released under the `GNU + Copyright © Alex Fernández + These files are part of eLyXer_, released under the `GNU General Public License`_ version 3 or later. The author relicensed - it for Docutils under the `Apache License, Version 2.0`_ - (`local copy <licenses/apache-license-2-0.txt>`__). + them for Docutils under the terms of the `2-Clause BSD license`_ + (`local copy <licenses/BSD-2-Clause.txt>`__). .. _eLyXer: http://www.nongnu.org/elyxer/ @@ -112,14 +107,8 @@ __ licenses/gpl-3.0.txt -(Disclaimer: I am not a lawyer.) The Apache License, version 2.0 and -the Python licenses are OSI-approved_ and GPL-compatible_ (the Apache -License is compatible to GPL version 3 but *not* version 2). -The BSD license -basically lets you copy, use, modify, and redistribute files as long -as you keep the copyright attribution intact, note any changes you -make, and don't use the owner's name in vain. Although complicated by -multiple owners and lots of legalese, the Python license is similar. +The `2-Clause BSD license`_ and the Python licenses are OSI-approved_ +and GPL-compatible_. Plaintext versions of all the linked-to licenses are provided in the licenses_ directory. @@ -128,7 +117,7 @@ .. _licenses: licenses/ .. _Python 2.1.1 license: http://www.python.org/2.1.1/license.html .. _GNU General Public License: http://www.gnu.org/copyleft/gpl.html -.. _Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0 +.. _2-Clause BSD license: http://www.spdx.org/licenses/BSD-2-Clause .. _OSI-approved: http://opensource.org/licenses/ .. _license-list: .. _GPL-compatible: http://www.gnu.org/licenses/license-list.html Modified: trunk/docutils/HISTORY.txt =================================================================== --- trunk/docutils/HISTORY.txt 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/HISTORY.txt 2011-06-27 11:38:56 UTC (rev 7058) @@ -29,14 +29,22 @@ - Orphaned "python" reader and "newlatex2e" writer moved to the sandbox. - New sub-module `error_reporting`: handle encoding/decoding errors when reporting exceptions. + - Some additions to the Docutils core are released under the 2-Clause BSD + license, see COPYING_ for details. .. _BCP 47: http://www.rfc-editor.org/rfc/bcp/bcp47.txt + .. _COPYING: COPYING.html + +* docs/dev/policies.txt: + - Recommend the 2-Clause BSD license + (http://www.spdx.org/licenses/BSD-2-Clause) + for code that is kept under the author's copyright. + * tools/buildhtml.py: - Fix ``--local`` switch. - * Fix [ 3018371 ] Added Lithuanian mappings by Dalius Dobravolskas. * docutils/writers/html4css1/__init__.py @@ -73,7 +81,7 @@ - Fix: BUG#3219183 - vertical space in definition lists containing markup. - Fix: vertical space cleaning for option group ``.``. - + * tools/editors/emacs/rst.el: - Fix [ 3001100 ] does not handle spaces in filenames Modified: trunk/docutils/docs/dev/policies.txt =================================================================== --- trunk/docutils/docs/dev/policies.txt 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docs/dev/policies.txt 2011-06-27 11:38:56 UTC (rev 7058) @@ -163,19 +163,60 @@ with either an embedded license statement, a reference to an accompanying license file, or a license URL. -One of the goals of the Docutils project, once complete, is to be -incorporated into the Python standard library. At that time, the -Docutils code will be released under Python's license. If the -copyright/license option is chosen for new files, the license should -be compatible with Python's current license, and the author(s) of the -files should be willing to sign a `Contributor Agreement` (see -`Contributing to the PSF`_). As initial license for contributions, -the PSF accepts the `Academic Free License v. 2.1 -<http://opensource.org/licenses/afl-2.1.php>`_ and the `Apache -License, Version 2.0 <http://opensource.org/licenses/apache2.0.php>`_. + The license should be well known, simple and compatible with other + open source software licenses. To keep the number of different + licenses at a minimum, using the `2-Clause BSD license`_ + (also known as "Simplified" or `FreeBSD license`_) is recommended. -.. _Contributing to the PSF: http://www.python.org/psf/contrib/ + .. _2-Clause BSD license: http://www.opensource.org/licenses/BSD-2-Clause + .. _FreeBSD license: http://www.freebsd.org/copyright/freebsd-license.html +.. + + The following licenses are described as simple + and permissible on `Various Licenses and Comments about Them`_ by + the GNU Project and listed as popular in `OSI Approved Licenses`_: + + Expat License / MIT License + + http://www.jclark.com/xml/copying.txt + http://www.opensource.org/licenses/MIT + http://www.spdx.org/licenses/MIT + + The term MIT License is ambiguous and may accurately refer to the + Expat license or the X11 license + [http://en.wikipedia.org/wiki/MIT_License] + + -1 called `MIT license` by OSI and in the + `SPDX Open Source License Registry`_ + but `Expat license` by GNU + + 2-Clause BSD license / FreeBSD license + + http://www.freebsd.org/copyright/freebsd-license.html + http://www.opensource.org/licenses/BSD-2-Clause + http://www.spdx.org/licenses/BSD-2-Clause + + If you want a simple, permissive non-copyleft free software + license, the FreeBSD license is a reasonable choice. However, + please don't call it a “BSD” or “BSD-style” license, because + that is likely to cause confusion which could lead to use of the + flawed original BSD license. + + -- `Various Licenses and Comments about Them`_ + + +1 license used by the closely related Sphinx project + +1 "2-Clause BSD license" is a non-ambiguous name, + used by both, OSI and GNU. + +1 clear wording, structured text + + .. _Various Licenses and Comments about Them: + http://www.gnu.org/licenses/license-list.html + .. _OSI Approved Licenses: http://www.opensource.org/licenses/category + .. _SPDX Open Source License Registry: http://www.spdx.org/licenses/ + .. _pypi: http://pypi.python.org/pypi?:action=browse&c=54 + + Subversion Repository ===================== Modified: trunk/docutils/docutils/error_reporting.py =================================================================== --- trunk/docutils/docutils/error_reporting.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/error_reporting.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -1,10 +1,16 @@ #!/usr/bin/env python # -*- coding: utf8 -*- + +# :Id: $Id$ # :Copyright: © 2011 Günter Milde. -# Released without warranties or conditions of any kind -# under the terms of the Apache License, Version 2.0 -# http://www.apache.org/licenses/LICENSE-2.0 -# :Id: $Id$ +# :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 """ Error reporting should be safe from encoding/decoding errors. Modified: trunk/docutils/docutils/math/__init__.py =================================================================== --- trunk/docutils/docutils/math/__init__.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/math/__init__.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -1,10 +1,13 @@ -#!/usr/bin/env python -# -*- coding: utf8 -*- -# :Copyright: © 2011 Günter Milde. -# Released without warranties or conditions of any kind -# under the terms of the Apache License, Version 2.0 -# (http://www.apache.org/licenses/LICENSE-2.0) # :Id: $Id$ +# :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. @@ -14,18 +17,30 @@ :math2html: LaTeX math -> HTML conversion from eLyXer :latex2mathml: LaTeX math -> presentational MathML -:mathtools: helpers for Docutils math support :unimathsymbols2tex: Unicode symbol to LaTeX math translation table """ +# helpers for Docutils math support +# ================================= -# While Docutils components can be used as parts in programs released -# under GPL v3, it is not possible to include GPLed-code in a public -# domain or Apache-2 licensed program. -# -# math2html.py is part of eLyXer_, released under the `GNU General -# Public License`_ version 3 or later. The author kindly relicensed it -# for Docutils under the Apache License, Version 2.0. -# -# .. _Docutils policies: docs/dev/policies.txt -# .. _eLyXer: http://www.nongnu.org/elyxer/ +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 Modified: trunk/docutils/docutils/math/latex2mathml.py =================================================================== --- trunk/docutils/docutils/math/latex2mathml.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/math/latex2mathml.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -1,18 +1,25 @@ #!/usr/bin/env python # -*- coding: utf8 -*- + +# :Id: $Id$ # :Copyright: © 2010 Günter Milde. # Based on rst2mathml.py from the latex_math sandbox project # © 2005 Jens Jørgen Mortensen -# :License: Released without warranties or conditions of any kind -# under the terms of the Apache License, Version 2.0 -# http://www.apache.org/licenses/LICENSE-2.0 -# :Id: $Id$ +# :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 -# latex2mathml.py: Convert LaTex math code into presentational MathML -# Based on `latex_math` sandbox project by Jens Jørgen Mortensen -# ========================================================================= +"""Convert LaTex math code into presentational MathML""" +# Based on the `latex_math` sandbox project by Jens Jørgen Mortensen + + # LaTeX to MathML translation stuff: class math: """Base class for MathML elements.""" Modified: trunk/docutils/docutils/math/math2html.py =================================================================== --- trunk/docutils/docutils/math/math2html.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/math/math2html.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -3,10 +3,15 @@ # math2html: convert LaTeX equations to HTML output. # -# Copyright (C) 2009,2010 Alex Fernández -# Released without warranties or conditions of any kind -# under the terms of the Apache License, Version 2.0 -# http://www.apache.org/licenses/LICENSE-2.0 +# Copyright (C) 2009-2011 Alex Fernández +# +# 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 # Based on eLyXer: convert LyX source files to HTML output. # http://elyxer.nongnu.org/ @@ -365,12 +370,12 @@ u'\\hat':u'̂', u'\\mathring':u'̊', u'\\overleftarrow':u'⃖', u'\\overrightarrow':u'⃗', u'\\r':u'̊', u'\\s':u'̩', u'\\textcircled':u'⃝', u'\\textsubring':u'̥', u'\\tilde':u'̃', - u'\\vec':u'⃗', u'\\~':u'̃', + u'\\v':u'̌', u'\\vec':u'⃗', u'\\~':u'̃', } commands = { u'\\ ':u' ', u'\\!':u'', u'\\#':u'#', u'\\$':u'$', u'\\%':u'%', - u'\\&':u'&', u'\\,':u' ', u'\\:':u' ', u'\\;':u' ', + u'\\&':u'&', u'\\,':u' ', u'\\:':u' ', u'\\;':u' ', u'\\APLdownarrowbox':u'⍗', u'\\APLleftarrowbox':u'⍇', u'\\APLrightarrowbox':u'⍈', u'\\APLuparrowbox':u'⍐', u'\\Box':u'□', u'\\Bumpeq':u'≎', u'\\CIRCLE':u'●', u'\\Cap':u'⋒', u'\\CheckedBox':u'☑', @@ -427,10 +432,10 @@ u'\\gets':u'←', u'\\gg':u'≫', u'\\ggg':u'⋙', u'\\gimel':u'ℷ', u'\\gneqq':u'≩', u'\\gnsim':u'⋧', u'\\gtrdot':u'⋗', u'\\gtreqless':u'⋚', u'\\gtreqqless':u'⪌', u'\\gtrless':u'≷', u'\\gtrsim':u'≳', - u'\\hbar':u'ℏ', u'\\heartsuit':u'♥', - u'\\hfill':u'<span class="hfill"> </span>', u'\\hom':u'hom', - u'\\hookleftarrow':u'↩', u'\\hookrightarrow':u'↪', u'\\hslash':u'ℏ', - u'\\idotsint':u'<span class="bigsymbol">∫⋯∫</span>', + u'\\guillemotleft':u'«', u'\\guillemotright':u'»', u'\\hbar':u'ℏ', + u'\\heartsuit':u'♥', u'\\hfill':u'<span class="hfill"> </span>', + u'\\hom':u'hom', u'\\hookleftarrow':u'↩', u'\\hookrightarrow':u'↪', + u'\\hslash':u'ℏ', u'\\idotsint':u'<span class="bigsymbol">∫⋯∫</span>', u'\\iiint':u'<span class="bigsymbol">∭</span>', u'\\iint':u'<span class="bigsymbol">∬</span>', u'\\imath':u'ı', u'\\inf':u'inf', u'\\infty':u'∞', u'\\invneg':u'⌐', u'\\jmath':u'ȷ', @@ -505,18 +510,23 @@ u'\\succsim':u'≿', u'\\sun':u'☼', u'\\sup':u'sup', u'\\supseteqq':u'⫆', u'\\supsetneqq':u'⫌', u'\\surd':u'√', u'\\swarrow':u'↙', u'\\tan':u'tan', u'\\tanh':u'tanh', u'\\taurus':u'♉', u'\\textasciicircum':u'^', - u'\\textasciitilde':u'~', u'\\textbackslash':u'\\', u'\\textendash':u'—', + u'\\textasciitilde':u'~', u'\\textbackslash':u'\\', + u'\\textcopyright':u'©\'', u'\\textdegree':u'°', u'\\textellipsis':u'…', + u'\\textemdash':u'—', u'\\textendash':u'—', u'\\texteuro':u'€', u'\\textgreater':u'>', u'\\textless':u'<', u'\\textordfeminine':u'ª', u'\\textordmasculine':u'º', u'\\textquotedblleft':u'“', - u'\\textquotedblright':u'”', u'\\textregistered':u'®', - u'\\texttrademark':u'™', u'\\textvisiblespace':u' ', u'\\therefore':u'∴', - u'\\top':u'⊤', u'\\triangle':u'△', u'\\triangleleft':u'⊲', - u'\\trianglelefteq':u'⊴', u'\\triangleq':u'≜', u'\\triangleright':u'▷', - u'\\trianglerighteq':u'⊵', u'\\twoheadleftarrow':u'↞', - u'\\twoheadrightarrow':u'↠', u'\\twonotes':u'♫', u'\\udot':u'⊍', - u'\\unlhd':u'⊴', u'\\unrhd':u'⊵', u'\\unrhl':u'⊵', u'\\uparrow':u'↑', - u'\\updownarrow':u'↕', u'\\upharpoonleft':u'↿', u'\\upharpoonright':u'↾', - u'\\uplus':u'⊎', u'\\upuparrows':u'⇈', u'\\uranus':u'♅', u'\\vDash':u'⊨', + u'\\textquotedblright':u'”', u'\\textquoteright':u'’', + u'\\textregistered':u'®', u'\\textrightarrow':u'→', + u'\\textsection':u'§', u'\\texttrademark':u'™', + u'\\texttwosuperior':u'²', u'\\textvisiblespace':u' ', + u'\\therefore':u'∴', u'\\top':u'⊤', u'\\triangle':u'△', + u'\\triangleleft':u'⊲', u'\\trianglelefteq':u'⊴', u'\\triangleq':u'≜', + u'\\triangleright':u'▷', u'\\trianglerighteq':u'⊵', + u'\\twoheadleftarrow':u'↞', u'\\twoheadrightarrow':u'↠', + u'\\twonotes':u'♫', u'\\udot':u'⊍', u'\\unlhd':u'⊴', u'\\unrhd':u'⊵', + u'\\unrhl':u'⊵', u'\\uparrow':u'↑', u'\\updownarrow':u'↕', + u'\\upharpoonleft':u'↿', u'\\upharpoonright':u'↾', u'\\uplus':u'⊎', + u'\\upuparrows':u'⇈', u'\\uranus':u'♅', u'\\vDash':u'⊨', u'\\varclubsuit':u'♧', u'\\vardiamondsuit':u'♦', u'\\varheartsuit':u'♥', u'\\varnothing':u'∅', u'\\varspadesuit':u'♤', u'\\vdash':u'⊢', u'\\vdots':u'⋮', u'\\vee':u'∨', u'\\vee)':u'∨', u'\\veebar':u'⊻', @@ -628,7 +638,7 @@ } modified = { - u'\n':u'', u' ':u'', u'$':u'', u'&':u' ', u'\'':u'’', u'+':u' + ', + u'\n':u'', u' ':u'', u'$':u'', u'&':u' ', u'\'':u'’', u'+':u' + ', u',':u', ', u'-':u' − ', u'/':u' ⁄ ', u'<':u' < ', u'=':u' = ', u'>':u' > ', u'@':u'', u'~':u'', } @@ -638,8 +648,10 @@ u'\\bar':u'span class="bar"', u'\\begin{array}':u'span class="arraydef"', u'\\big':u'span class="symbol"', u'\\bigg':u'span class="largesymbol"', u'\\bigl':u'span class="bigsymbol"', u'\\bigr':u'span class="bigsymbol"', + u'\\centering':u'span class="align-center"', u'\\ensuremath':u'span class="ensuremath"', u'\\hphantom':u'span class="phantom"', + u'\\noindent':u'span class="noindent"', u'\\overbrace':u'span class="overbrace"', u'\\overline':u'span class="overline"', u'\\phantom':u'span class="phantom"', @@ -683,14 +695,14 @@ } urls = { - u'googlecharts':u'http://chart.googleapis.com/chart?cht=tx&chl=', + u'googlecharts':u'http://chart.googleapis.com/chart?cht=tx&chl=', } class GeneralConfig(object): "Configuration class from elyxer.config file" version = { - u'date':u'2011-04-13', u'lyxformat':u'410', u'number':u'1.2.2', + u'date':u'2011-06-27', u'lyxformat':u'413', u'number':u'1.2.3', } class HeaderConfig(object): @@ -769,11 +781,11 @@ } quotes = { - u'ald':u'»', u'als':u'›', u'ard':u'«', u'ars':u'‹', u'eld':u'“', - u'els':u'‘', u'erd':u'”', u'ers':u'’', u'fld':u'«', u'fls':u'‹', - u'frd':u'»', u'frs':u'›', u'gld':u'„', u'gls':u'‚', u'grd':u'“', - u'grs':u'‘', u'pld':u'„', u'pls':u'‚', u'prd':u'”', u'prs':u'’', - u'sld':u'”', u'srd':u'”', + u'ald':u'»', u'als':u'›', u'ard':u'«', u'ars':u'‹', u'eld':u'“', + u'els':u'‘', u'erd':u'”', u'ers':u'’', u'fld':u'«', + u'fls':u'‹', u'frd':u'»', u'frs':u'›', u'gld':u'„', u'gls':u'‚', + u'grd':u'“', u'grs':u'‘', u'pld':u'„', u'pls':u'‚', u'prd':u'”', + u'prs':u'’', u'sld':u'”', u'srd':u'”', } referenceformats = { @@ -805,7 +817,7 @@ extracttitle = { u'allowed':[u'StringContainer',u'Constant',u'Space',], u'cloned':[u'TextFamily',u'EmphaticText',u'VersalitasText',u'BarredText',u'SizeText',u'ColorText',u'LangLine',u'Formula',], - u'extracted':[u'PlainLayout',u'TaggedText',u'Align',u'Caption',u'StandardLayout',], + u'extracted':[u'PlainLayout',u'TaggedText',u'Align',u'Caption',u'StandardLayout',u'FlexInset',], } class TagConfig(object): @@ -905,8 +917,9 @@ arg = args[0][2:] del args[0] if '=' in arg: - return self.readequals(arg, args) - key = arg.replace('-', '') + key = self.readequalskey(arg, args) + else: + key = arg.replace('-', '') if not hasattr(self.options, key): return None, key current = getattr(self.options, key) @@ -937,16 +950,13 @@ value += ' ' + args[0:-1] return value - def readequals(self, arg, args): - "Read a value with equals" + def readequalskey(self, arg, args): + "Read a key using equals" split = arg.split('=', 1) key = split[0] - if not hasattr(self.options, key): - return None, key value = split[1] - if not value.startswith('"'): - return key, value - return key, self.readquoted(args, value) + args.insert(0, value) + return key @@ -2345,13 +2355,26 @@ def parseheader(self, reader): "See if the formula is inlined" self.begin = reader.linenumber + 1 - if reader.currentline().find(FormulaConfig.starts['simple']) > 0: - return ['inline'] - if reader.currentline().find(FormulaConfig.starts['complex']) > 0: - return ['block'] - if reader.currentline().find(FormulaConfig.starts['unnumbered']) > 0: - return ['block'] - return ['numbered'] + type = self.parsetype(reader) + if not type: + reader.nextline() + type = self.parsetype(reader) + if not type: + Trace.error('Unknown formula type in ' + reader.currentline().strip()) + return ['unknown'] + return [type] + + def parsetype(self, reader): + "Get the formula type from the first line." + if reader.currentline().find(FormulaConfig.starts['simple']) >= 0: + return 'inline' + if reader.currentline().find(FormulaConfig.starts['complex']) >= 0: + return 'block' + if reader.currentline().find(FormulaConfig.starts['unnumbered']) >= 0: + return 'block' + if reader.currentline().find(FormulaConfig.starts['beginbefore']) >= 0: + return 'numbered' + return None def parse(self, reader): "Parse the formula until the end" @@ -3881,6 +3904,8 @@ self.replace('@', partkey and partkey.number) self.replace(u'¶', partkey and partkey.tocentry) if not '$' in self.formatted or not partkey or not partkey.titlecontents: + if '$' in self.formatted: + Trace.error('No title in ' + unicode(partkey)) self.contents = [Constant(self.formatted)] return pieces = self.formatted.split('$') Modified: trunk/docutils/docutils/writers/html4css1/__init__.py =================================================================== --- trunk/docutils/docutils/writers/html4css1/__init__.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/writers/html4css1/__init__.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -24,9 +24,8 @@ except ImportError: Image = None import docutils -from docutils import frontend, nodes, utils, writers, languages, io +from docutils import frontend, nodes, utils, writers, languages, io, math from docutils.transforms import writer_aux -from docutils.math import unimathsymbols2tex, mathtools from docutils.math.latex2mathml import parse_latex_math from docutils.math.math2html import math2html @@ -125,7 +124,7 @@ ['--table-style'], {'default': ''}), ('Math output format, one of "MathML", "HTML", "MathJax" ' - 'or "LaTeX". Default: "MathML"', + 'or "LaTeX". Default: "MathML"', ['--math-output'], {'default': 'MathML'}), ('Omit the XML declaration. Use with caution.', @@ -1152,7 +1151,8 @@ } wrapper = wrappers[self.math_output][math_env != ''] # get and wrap content - math_code = node.astext().translate(unimathsymbols2tex.uni2tex_table) + math_code = node.astext().translate( + math.unimathsymbols2tex.uni2tex_table) if wrapper and math_env: math_code = wrapper % (math_env, math_code, math_env) elif wrapper: @@ -1197,7 +1197,7 @@ pass # never reached def visit_math_block(self, node): - math_env = mathtools.pick_math_environment(node.astext()) + math_env = math.pick_math_environment(node.astext()) self.visit_math(node, math_env=math_env) def depart_math_block(self, node): Modified: trunk/docutils/docutils/writers/html4css1/math.css =================================================================== --- trunk/docutils/docutils/writers/html4css1/math.css 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/writers/html4css1/math.css 2011-06-27 11:38:56 UTC (rev 7058) @@ -1,3 +1,19 @@ +/* +* math2html: convert LaTeX equations to HTML output. +* +* Copyright (C) 2009,2010 Alex Fernández +* +* 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 +* +* Based on eLyXer: convert LyX source files to HTML output. +* http://elyxer.nongnu.org/ +*/ /* --end-- * CSS file for LaTeX formulas. */ @@ -169,5 +185,90 @@ line-height: 99%; border: 0ex; } -@import "math-extras.css"; +/* +* CSS file for LaTeX formulas, extra stuff: +* binomials, vertical braces, stackrel, fonts and colors. +*/ +/* Inline binomials */ +span.binom { + display: inline-block; + vertical-align: middle; + text-align: center; + font-size: 80%; +} +span.binomstack { + display: block; + padding: 0em; +} + +/* Over- and underbraces */ +span.overbrace { + border-top: 2pt solid; +} +span.underbrace { + border-bottom: 2pt solid; +} + +/* Stackrel */ +span.stackrel { + display: inline-block; + text-align: center; +} +span.upstackrel { + display: block; + padding: 0em; + font-size: 80%; + line-height: 64%; + position: relative; + top: 0.15em; + +} +span.downstackrel { + display: block; + vertical-align: bottom; + padding: 0em; +} + +/* Fonts */ +span.mathsf, span.textsf { + font-style: normal; + font-family: sans-serif; +} +span.mathrm, span.textrm { + font-style: normal; + font-family: serif; +} +span.text, span.textnormal { + font-style: normal; +} +span.textipa { + color: #008080; +} +span.fraktur { + font-family: "Lucida Blackletter", eufm10, blackletter; +} +span.blackboard { + font-family: Blackboard, msbm10, serif; +} +span.scriptfont { + font-family: "Monotype Corsiva", "Apple Chancery", "URW Chancery L", cursive; + font-style: italic; +} + +/* Colors */ +span.colorbox { + display: inline-block; + padding: 5px; +} +span.fbox { + display: inline-block; + border: thin solid black; + padding: 2px; +} +span.boxed, span.framebox { + display: inline-block; + border: thin solid black; + padding: 5px; +} + Modified: trunk/docutils/docutils/writers/latex2e/__init__.py =================================================================== --- trunk/docutils/docutils/writers/latex2e/__init__.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/writers/latex2e/__init__.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -18,9 +18,8 @@ import re import string import urllib -from docutils import frontend, nodes, languages, writers, utils, io +from docutils import frontend, nodes, languages, writers, utils, io, math from docutils.transforms import writer_aux -from docutils.math import unimathsymbols2tex, mathtools # compatibility module for Python 2.3 if not hasattr(string, 'Template'): @@ -2430,7 +2429,8 @@ if node['classes']: self.visit_inline(node) self.requirements['amsmath'] = r'\usepackage{amsmath}' - math_code = node.astext().translate(unimathsymbols2tex.uni2tex_table) + math_code = node.astext().translate( + math.unimathsymbols2tex.uni2tex_table) if math_env == '$': wrapper = u'$%s$' else: @@ -2449,7 +2449,7 @@ pass # never reached def visit_math_block(self, node): - math_env = mathtools.pick_math_environment(node.astext()) + math_env = pick_math_environment(node.astext()) self.visit_math(node, math_env=math_env) def depart_math_block(self, node): Modified: trunk/docutils/docutils/writers/xetex/__init__.py =================================================================== --- trunk/docutils/docutils/writers/xetex/__init__.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/docutils/writers/xetex/__init__.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -1,11 +1,18 @@ -# .. coding: utf8 +#!/usr/bin/env python +# -*- coding: utf8 -*- + # :Author: Günter Milde <mi...@us...> # :Revision: $Revision$ -# :Date: $Date: 2010-10-29$ +# :Date: $Date$ # :Copyright: © 2010 Günter Milde. -# Released without warranties or conditions of any kind -# under the terms of the Apache License, Version 2.0 -# http://www.apache.org/licenses/LICENSE-2.0 +# :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 """ XeLaTeX document tree Writer. Added: trunk/docutils/licenses/BSD-2-Clause.txt =================================================================== --- trunk/docutils/licenses/BSD-2-Clause.txt (rev 0) +++ trunk/docutils/licenses/BSD-2-Clause.txt 2011-06-27 11:38:56 UTC (rev 7058) @@ -0,0 +1,25 @@ +2-Clause BSD license / FreeBSD license +====================================== + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Property changes on: trunk/docutils/licenses/BSD-2-Clause.txt ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Modified: trunk/docutils/setup.py =================================================================== --- trunk/docutils/setup.py 2011-06-27 05:39:48 UTC (rev 7057) +++ trunk/docutils/setup.py 2011-06-27 11:38:56 UTC (rev 7058) @@ -121,7 +121,7 @@ 'version': '0.8', 'author': 'David Goodger', 'author_email': 'go...@py...', - 'license': 'public domain, Python, Apache 2.0, GPL 3 (see COPYING.txt)', + 'license': 'public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt)', 'platforms': 'OS-independent', 'package_dir': {'docutils': 'docutils', '': 'extras', @@ -189,7 +189,7 @@ 'Intended Audience :: System Administrators', 'License :: Public Domain', 'License :: OSI Approved :: Python Software Foundation License 2.1.1', - 'License :: OSI Approved :: Apache License 2.0', + 'License :: OSI Approved :: BSD', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', |