Ticket #12156: 12156_fix_latex.patch

File 12156_fix_latex.patch, 10.7 KB (added by jdemeyer, 10 years ago)
  • sage/graphs/graph_latex.py

    # HG changeset patch
    # User Jeroen Demeyer <jdemeyer@cage.ugent.be>
    # Date 1324380333 0
    # Node ID d119fc55164bfb3b6d601128e65eb16cd38ff45e
    # Parent  1e26f66110aef40c34861cc7fdf250f4fbb82db6
    Fix various _latex_() methods
    
    diff --git a/sage/graphs/graph_latex.py b/sage/graphs/graph_latex.py
    a b  
    367367------------------------------
    368368"""
    369369#*****************************************************************************
    370 #      Copyright (C) 2009  Robert Beezer <beezer@ups.edu>
    371 #                    2009  Fidel Barrera Cruz <fidel.barrera@gmail.com>
     370#       Copyright (C) 2009 Robert Beezer <beezer@ups.edu>
     371#       Copyright (C) 2009 Fidel Barrera Cruz <fidel.barrera@gmail.com>
    372372#
    373373#  Distributed under the terms of the GNU General Public License (GPL)
    374 #
    375 #    This code is distributed in the hope that it will be useful,
    376 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
    377 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    378 #    General Public License for more details.
    379 #
    380 #  The full text of the GPL is available at:
    381 #
     374#  as published by the Free Software Foundation; either version 2 of
     375#  the License, or (at your option) any later version.
    382376#                  http://www.gnu.org/licenses/
    383377#*****************************************************************************
     378
    384379from sage.structure.sage_object import SageObject
    385380from sage.misc.cachefunc import cached_function
    386381from sage.misc.latex import latex
     
    19301925            # but may be ignored by the style, so not apparent
    19311926            if vertex_labels or not customized:
    19321927                if vertex_labels_math and not (type(u)==str and u[0]=='$' and u[-1]=='$'):
    1933                     lab = '\hbox{$' + latex(u) + '$}'
     1928                    lab = '\hbox{$%s$}' % latex(u)
    19341929                else:
    1935                     lab = '\hbox{' + str(u) + '}'
     1930                    lab = '\hbox{%s}' % u
    19361931                s+=['L=', lab, ',']
    19371932            scaled_pos = translate(pos[u])
    19381933            s+=['x=', str(round(scale*scaled_pos[0],4)), units, ',']
     
    19761971                    s+=['},']
    19771972                    el = self._graph.edge_label(edge[0],edge[1])
    19781973                    if edge_labels_math and not (type(el)==str and el[0]=='$' and el[-1]=='$'):
    1979                         lab = '\hbox{$' + latex(el) + '$}'
     1974                        lab = '\hbox{$%s$}' % latex(el)
    19801975                    else:
    1981                         lab = '\hbox{' + str(el) + '}'
     1976                        lab = '\hbox{%s}' % el
    19821977                    s+=['label=', lab, ',']
    19831978            s+=[']']
    19841979            if not loop:
  • sage/homology/chain_complex.py

    diff --git a/sage/homology/chain_complex.py b/sage/homology/chain_complex.py
    a b  
    11501150        if self._grading_group != ZZ:
    11511151            guess = dict.keys()[0]
    11521152            if guess-deg in dict:
    1153                 string += "\\dots \\xrightarrow{d_{" + latex(guess-deg) + "}} "
     1153                string += "\\dots \\xrightarrow{d_{%s}} " % latex(guess-deg)
    11541154            string += _latex_module(ring, mat.ncols())
    1155             string += " \\xrightarrow{d_{" + latex(guess) + "}} \\dots"
     1155            string += " \\xrightarrow{d_{%s}} \\dots" % latex(guess)
    11561156        else:               
    11571157            backwards = (deg < 0)
    11581158            sorted_list = sorted(dict.keys(), reverse=backwards)
     
    11601160                for n in sorted_list[:-1]:
    11611161                    mat = dict[n]
    11621162                    string += _latex_module(ring, mat.ncols())
    1163                     string += " \\xrightarrow{d_{"
    1164                     string += latex(n) + "}} "
     1163                    string += " \\xrightarrow{d_{%s}} " % latex(n)
    11651164                mat = dict[sorted_list[-1]]
    11661165                string += _latex_module(ring, mat.ncols())
    11671166            else:
    11681167                for n in sorted_list[:2]:
    11691168                    mat = dict[n]
    11701169                    string += _latex_module(ring, mat.ncols())
    1171                     string += " \\xrightarrow{d_{"
    1172                     string += latex(n) + "}} "
     1170                    string += " \\xrightarrow{d_{%s}} " % latex(n)
    11731171                string += "\\dots "
    11741172                n = sorted_list[-2]
    1175                 string += "\\xrightarrow{d_{" + latex(n) + "}} "
     1173                string += "\\xrightarrow{d_{%s}} " % latex(n)
    11761174                mat = dict[sorted_list[-1]]
    11771175                string += _latex_module(ring, mat.ncols())
    11781176        return string
  • sage/misc/html.py

    diff --git a/sage/misc/html.py b/sage/misc/html.py
    a b  
    22HTML typesetting for the notebook
    33"""
    44
    5 ########################################################################
     5#*****************************************************************************
    66#       Copyright (C) 2008 William Stein <wstein@gmail.com>
     7#
    78#  Distributed under the terms of the GNU General Public License (GPL)
     9#  as published by the Free Software Foundation; either version 2 of
     10#  the License, or (at your option) any later version.
    811#                  http://www.gnu.org/licenses/
    9 ########################################################################
     12#*****************************************************************************
    1013
    1114from sage.misc.latex import latex
    1215from sage.misc.sage_eval import sage_eval
     
    318321            elif isinstance(row[column], str):
    319322                print column_tag % math_parse(row[column])
    320323            else:
    321                 print column_tag % ('<span class="math">'
    322                                     + latex(row[column])
    323                                     + '</span>')
     324                print column_tag % ('<span class="math">%s</span>' % latex(row[column]))
    324325
    325326    def iframe(self, url, height=400, width=800):
    326327        r"""
  • sage/misc/latex.py

    diff --git a/sage/misc/latex.py b/sage/misc/latex.py
    a b  
    419419    """
    420420    def __add__(self, other):
    421421        r"""
    422         Add two instances of LatexExpr.
     422        Add a LatexExpr and another LatexExpr (or a string).
    423423
    424424        EXAMPLES::
    425425
    426             sage: o = LatexExpr(r"\Delta\neq") + LatexExpr(r"\frac{x}2"); o
    427             \Delta\neq \frac{x}2
     426            sage: o = LatexExpr(r"\Delta\neq") + LatexExpr(r"\frac{x}{2}"); o
     427            \Delta\neq \frac{x}{2}
     428            sage: type(o)
     429            <class 'sage.misc.latex.LatexExpr'>
     430            sage: o = LatexExpr(r"\Delta\neq") + r"\frac{x}{2}"; o
     431            \Delta\neq \frac{x}{2}
     432            sage: type(o)
     433            <class 'sage.misc.latex.LatexExpr'>
     434
     435        We add extra space only if it wasn't there yet::
     436
     437            sage: LatexExpr("foo ") + LatexExpr("bar")
     438            foo bar
     439            sage: LatexExpr("foo") + LatexExpr(" bar")
     440            foo bar
     441            sage: str(LatexExpr("") + LatexExpr("bar"))
     442            'bar'
     443            sage: str(LatexExpr("foo") + LatexExpr(""))
     444            'foo'
     445        """
     446        left = str(self)
     447        right = str(other)
     448        # Add a space if self ends with a non-space and other starts
     449        # with a non-space
     450        try:
     451            if left[-1] != ' ' and right[0] != ' ':
     452                left += ' '
     453        except IndexError:
     454            pass
     455        return LatexExpr(left + right)
     456
     457    def __radd__(self, other):
     458        r"""
     459        Add a string and a LatexExpr.
     460
     461        EXAMPLES::
     462
     463            sage: o = "a =" + LatexExpr("b")
     464            sage: o
     465            a = b
    428466            sage: type(o)
    429467            <class 'sage.misc.latex.LatexExpr'>
    430468        """
    431         return LatexExpr(str(self) + ' ' + str(other))
     469        return LatexExpr(other) + self
    432470
    433471    def __repr__(self):
    434472        """
     
    878916
    879917            var = t[:j]
    880918            try:
    881                 k = latex(sage_eval.sage_eval(var, locals))
     919                k = str(latex(sage_eval.sage_eval(var, locals)))
    882920            except Exception, msg:
    883921                print msg
    884922                k = '\\mbox{\\rm [%s undefined]}'%var
     
    17811819        sage: jsmath(g, 'inline')
    17821820        <html><font color='black'><span class="math">\tan^{-1} x</span></font></html>
    17831821        sage: jsmath('\int' + latex(f) + '\ dx=' + latex(g))
    1784         <html><font color='black'><div class="math">\int{{1}\over{x^2+1}}\ dx=\tan^{-1} x</div></font></html>
     1822        <html><font color='black'><div class="math">\int {{1}\over{x^2+1}} \ dx= \tan^{-1} x</div></font></html>
    17851823
    17861824    AUTHORS:
    17871825
  • sage/modular/dirichlet.py

    diff --git a/sage/modular/dirichlet.py b/sage/modular/dirichlet.py
    a b  
    511511        for i in range(len(self.values_on_gens())):
    512512            if i != 0:
    513513                mapst += r',\ '
    514             mapst += latex(self.parent().unit_gens()[i]) + ' \mapsto ' + latex(self.values_on_gens()[i])
     514            mapst += self.parent().unit_gens()[i]._latex_() + ' \mapsto ' + self.values_on_gens()[i]._latex_()
    515515        return r'\hbox{Dirichlet character modulo } %s \hbox{ of conductor } %s \hbox{ mapping } %s' \
    516516                 % (self.modulus(), self.conductor(), mapst)
    517517                 
  • sage/structure/factorization.py

    diff --git a/sage/structure/factorization.py b/sage/structure/factorization.py
    a b  
    182182#                  http://www.gnu.org/licenses/
    183183#*****************************************************************************
    184184
    185 import sage.misc.latex as latex
    186185from sage.structure.sage_object import SageObject
    187186from sage.structure.sequence import Sequence
    188187from sage.rings.integer import Integer
     
    856855            '-1 \\cdot 2^{2} \\cdot 5^{2}'
    857856        """
    858857        if len(self) == 0:
    859             return latex.latex(self.__unit)
     858            return self.__unit._latex_()
    860859        try:
    861860            atomic = ((isinstance(self.__x[0][0], (int, long)) or \
    862861                       self.universe().is_atomic_repr()))
     
    864863            atomic = False
    865864        s = ''
    866865        for i in range(len(self)):
    867             t = latex.latex(self.__x[i][0])
     866            t = self.__x[i][0]._latex_()
    868867            if not atomic and ('+' in t or '-' in t or ' ' in t):
    869868                t = '(%s)'%t
    870869            n = self.__x[i][1]
    871870            if n != 1:
    872                 t += '^{%s}'%latex.latex(n)
     871                t += '^{%s}'%n
    873872            s += t
    874873            if i < len(self)-1:
    875874                s += ' \\cdot '
    876875        if self.__unit != 1:
    877876            if atomic:
    878                 u = latex.latex(self.__unit)
     877                u = self.__unit._latex_()
    879878            else:
    880                 u = '\\left(%s\\right)'%latex.latex(self.__unit)
     879                u = '\\left(%s\\right)'%self.__unit._latex_()
    881880            s =  u + ' \\cdot ' + s
    882881        return s
    883882