コード例 #1
0
ファイル: latex.py プロジェクト: ENuge/sympy
    def _print_Symbol(self, expr):
        if expr in self._settings["symbol_names"]:
            return self._settings["symbol_names"][expr]

        name, supers, subs = split_super_sub(expr.name)

        # translate name, supers and subs to tex keywords
        greek = set(
            [
                "alpha",
                "beta",
                "gamma",
                "delta",
                "epsilon",
                "zeta",
                "eta",
                "theta",
                "iota",
                "kappa",
                "lambda",
                "mu",
                "nu",
                "xi",
                "omicron",
                "pi",
                "rho",
                "sigma",
                "tau",
                "upsilon",
                "phi",
                "chi",
                "psi",
                "omega",
            ]
        )

        greek_translated = {"lamda": "lambda", "Lamda": "Lambda"}

        other = set(["aleph", "beth", "daleth", "gimel", "ell", "eth", "hbar", "hslash", "mho"])

        def translate(s):
            tmp = s.lower()
            if tmp in greek or tmp in other:
                return "\\" + s
            if s in greek_translated:
                return "\\" + greek_translated[s]
            else:
                return s

        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        # glue all items together:
        if len(supers) > 0:
            name += "^{%s}" % " ".join(supers)
        if len(subs) > 0:
            name += "_{%s}" % " ".join(subs)

        return name
コード例 #2
0
ファイル: latex.py プロジェクト: sherjilozair/sympy
    def _print_Symbol(self, expr):
        name, supers, subs = split_super_sub(expr.name)

        # translate name, supers and subs to tex keywords
        greek = set([
            'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta', 'eta',
            'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu', 'xi', 'omicron',
            'pi', 'rho', 'sigma', 'tau', 'upsilon', 'phi', 'chi', 'psi',
            'omega'
        ])

        other = set([
            'aleph', 'beth', 'daleth', 'gimel', 'ell', 'eth', 'hbar', 'hslash',
            'mho'
        ])

        def translate(s):
            tmp = s.lower()
            if tmp in greek or tmp in other:
                return "\\" + s
            else:
                return s

        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        # glue all items together:
        if len(supers) > 0:
            name += "^{%s}" % " ".join(supers)
        if len(subs) > 0:
            name += "_{%s}" % " ".join(subs)

        return name
コード例 #3
0
ファイル: latex.py プロジェクト: Sumith1896/sympy-polys
    def _print_Symbol(self, expr):
        name, supers, subs = split_super_sub(expr.name)

        # translate name, supers and subs to tex keywords
        greek = set([ 'alpha', 'beta', 'gamma', 'delta', 'epsilon', 'zeta',
                      'eta', 'theta', 'iota', 'kappa', 'lambda', 'mu', 'nu',
                      'xi', 'omicron', 'pi', 'rho', 'sigma', 'tau', 'upsilon',
                      'phi', 'chi', 'psi', 'omega' ])

        other = set( ['aleph', 'beth', 'daleth', 'gimel', 'ell', 'eth',
                      'hbar', 'hslash', 'mho' ])

        def translate(s):
            tmp = s.lower()
            if tmp in greek or tmp in other:
                return "\\" + s
            else:
                return s

        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        # glue all items together:
        if len(supers) > 0:
            name += "^{%s}" % " ".join(supers)
        if len(subs) > 0:
            name += "_{%s}" % " ".join(subs)

        return name
コード例 #4
0
ファイル: mathml.py プロジェクト: alhirzel/sympy
    def _print_Symbol(self, sym):
        ci = self.dom.createElement(self.mathml_tag(sym))

        def join(items):
            if len(items) > 1:
                mrow = self.dom.createElement('mml:mrow')
                for i, item in enumerate(items):
                    if i > 0:
                        mo = self.dom.createElement('mml:mo')
                        mo.appendChild(self.dom.createTextNode(" "))
                        mrow.appendChild(mo)
                    mi = self.dom.createElement('mml:mi')
                    mi.appendChild(self.dom.createTextNode(item))
                    mrow.appendChild(mi)
                return mrow
            else:
                mi = self.dom.createElement('mml:mi')
                mi.appendChild(self.dom.createTextNode(items[0]))
                return mi

        # translate name, supers and subs to unicode characters
        greek_letters = set(greeks)  # make a copy

        def translate(s):
            if s in greek_unicode:
                return greek_unicode.get(s)
            else:
                return s

        name, supers, subs = split_super_sub(sym.name)
        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        mname = self.dom.createElement('mml:mi')
        mname.appendChild(self.dom.createTextNode(name))
        if len(supers) == 0:
            if len(subs) == 0:
                ci.appendChild(self.dom.createTextNode(name))
            else:
                msub = self.dom.createElement('mml:msub')
                msub.appendChild(mname)
                msub.appendChild(join(subs))
                ci.appendChild(msub)
        else:
            if len(subs) == 0:
                msup = self.dom.createElement('mml:msup')
                msup.appendChild(mname)
                msup.appendChild(join(supers))
                ci.appendChild(msup)
            else:
                msubsup = self.dom.createElement('mml:msubsup')
                msubsup.appendChild(mname)
                msubsup.appendChild(join(subs))
                msubsup.appendChild(join(supers))
                ci.appendChild(msubsup)
        return ci
コード例 #5
0
ファイル: mathml.py プロジェクト: unix0000/sympy-polys
    def _print_Symbol(self, sym):
        ci = self.dom.createElement(self.mathml_tag(sym))

        def join(items):
            if len(items) > 1:
                mrow = self.dom.createElement('mml:mrow')
                for i, item in enumerate(items):
                    if i>0:
                        mo = self.dom.createElement('mml:mo')
                        mo.appendChild(self.dom.createTextNode(" "))
                        mrow.appendChild(mo)
                    mi = self.dom.createElement('mml:mi')
                    mi.appendChild(self.dom.createTextNode(item))
                    mrow.appendChild(mi)
                return mrow
            else:
                mi = self.dom.createElement('mml:mi')
                mi.appendChild(self.dom.createTextNode(items[0]))
                return mi

        name, supers, subs = split_super_sub(sym.name)
        mname = self.dom.createElement('mml:mi')
        mname.appendChild(self.dom.createTextNode(name))
        if len(supers) == 0:
            if len(subs) == 0:
                ci.appendChild(self.dom.createTextNode(name))
            else:
                msub = self.dom.createElement('mml:msub')
                msub.appendChild(mname)
                msub.appendChild(join(subs))
                ci.appendChild(msub)
        else:
            if len(subs) == 0:
                msup = self.dom.createElement('mml:msup')
                msup.appendChild(mname)
                msup.appendChild(join(supers))
                ci.appendChild(msup)
            else:
                msubsup = self.dom.createElement('mml:msubsup')
                msubsup.appendChild(mname)
                msubsup.appendChild(join(subs))
                msubsup.appendChild(join(supers))
                ci.appendChild(msubsup)
        return ci
コード例 #6
0
ファイル: mathml.py プロジェクト: FireJade/sympy
    def _print_Symbol(self, sym):
        ci = self.dom.createElement(self.mathml_tag(sym))

        def join(items):
            if len(items) > 1:
                mrow = self.dom.createElement('mml:mrow')
                for i, item in enumerate(items):
                    if i > 0:
                        mo = self.dom.createElement('mml:mo')
                        mo.appendChild(self.dom.createTextNode(" "))
                        mrow.appendChild(mo)
                    mi = self.dom.createElement('mml:mi')
                    mi.appendChild(self.dom.createTextNode(item))
                    mrow.appendChild(mi)
                return mrow
            else:
                mi = self.dom.createElement('mml:mi')
                mi.appendChild(self.dom.createTextNode(items[0]))
                return mi

        # translate name, supers and subs to unicode characters
        # taken from http://www.w3.org/2003/entities/2007doc/isogrk1.html
        unitr = {
            'Alpha':    u'\u0391', 'Beta':      u'\u0392',
            'Gamma':    u'\u0393', 'Delta':     u'\u0394',
            'Epsilon':  u'\u0395', 'Zeta':      u'\u0396',
            'Eta':      u'\u0397', 'Theta':     u'\u0398',
            'Iota':     u'\u0399', 'Kappa':     u'\u039A',
            'Lambda':   u'\u039B', 'Mu':        u'\u039C',
            'Nu':       u'\u039D', 'Xi':        u'\u039E',
            'Omicron':  u'\u039F', 'Pi':        u'\u03A0',
            'Rho':      u'\u03A1', 'Sigma':     u'\u03A3',
            'Tau':      u'\u03A4', 'Upsilon':   u'\u03A5',
            'Phi':      u'\u03A6', 'Chi':       u'\u03A7',
            'Psi':      u'\u03A8', 'Omega':     u'\u03A9',
            'alpha':    u'\u03B1', 'beta':      u'\u03B2',
            'gamma':    u'\u03B3', 'delta':     u'\u03B4',
            'epsilon':  u'\u03B5', 'zeta':      u'\u03B6',
            'eta':      u'\u03B7', 'theta':     u'\u03B8',
            'iota':     u'\u03B9', 'kappa':     u'\u03BA',
            'lambda':   u'\u03BB', 'mu':        u'\u03BC',
            'nu':       u'\u03BD', 'xi':        u'\u03BE',
            'omicron':  u'\u03BF', 'pi':        u'\u03C0',
            'rho':      u'\u03C1', 'varsigma':  u'\u03C2',
            'sigma':    u'\u03C3', 'tau':       u'\u03C4',
            'upsilon':  u'\u03C5', 'phi':       u'\u03C6',
            'chi':      u'\u03C7', 'psi':       u'\u03C8',
            'omega':    u'\u03C9',
        }

        def translate(s):
            if s in unitr:
                return unitr[s]
            else:
                return s

        name, supers, subs = split_super_sub(sym.name)
        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        mname = self.dom.createElement('mml:mi')
        mname.appendChild(self.dom.createTextNode(name))
        if len(supers) == 0:
            if len(subs) == 0:
                ci.appendChild(self.dom.createTextNode(name))
            else:
                msub = self.dom.createElement('mml:msub')
                msub.appendChild(mname)
                msub.appendChild(join(subs))
                ci.appendChild(msub)
        else:
            if len(subs) == 0:
                msup = self.dom.createElement('mml:msup')
                msup.appendChild(mname)
                msup.appendChild(join(supers))
                ci.appendChild(msup)
            else:
                msubsup = self.dom.createElement('mml:msubsup')
                msubsup.appendChild(mname)
                msubsup.appendChild(join(subs))
                msubsup.appendChild(join(supers))
                ci.appendChild(msubsup)
        return ci
コード例 #7
0
ファイル: mathml.py プロジェクト: amitjamadagni/sympy
    def _print_Symbol(self, sym):
        ci = self.dom.createElement(self.mathml_tag(sym))

        def join(items):
            if len(items) > 1:
                mrow = self.dom.createElement('mml:mrow')
                for i, item in enumerate(items):
                    if i > 0:
                        mo = self.dom.createElement('mml:mo')
                        mo.appendChild(self.dom.createTextNode(" "))
                        mrow.appendChild(mo)
                    mi = self.dom.createElement('mml:mi')
                    mi.appendChild(self.dom.createTextNode(item))
                    mrow.appendChild(mi)
                return mrow
            else:
                mi = self.dom.createElement('mml:mi')
                mi.appendChild(self.dom.createTextNode(items[0]))
                return mi

        # translate name, supers and subs to unicode characters
        # taken from http://www.w3.org/2003/entities/2007doc/isogrk1.html
        unitr = {
            'Alpha':    u'\u0391', 'Beta':      u'\u0392',
            'Gamma':    u'\u0393', 'Delta':     u'\u0394',
            'Epsilon':  u'\u0395', 'Zeta':      u'\u0396',
            'Eta':      u'\u0397', 'Theta':     u'\u0398',
            'Iota':     u'\u0399', 'Kappa':     u'\u039A',
            'Lambda':   u'\u039B', 'Mu':        u'\u039C',
            'Nu':       u'\u039D', 'Xi':        u'\u039E',
            'Omicron':  u'\u039F', 'Pi':        u'\u03A0',
            'Rho':      u'\u03A1', 'Sigma':     u'\u03A3',
            'Tau':      u'\u03A4', 'Upsilon':   u'\u03A5',
            'Phi':      u'\u03A6', 'Chi':       u'\u03A7',
            'Psi':      u'\u03A8', 'Omega':     u'\u03A9',
            'alpha':    u'\u03B1', 'beta':      u'\u03B2',
            'gamma':    u'\u03B3', 'delta':     u'\u03B4',
            'epsilon':  u'\u03B5', 'zeta':      u'\u03B6',
            'eta':      u'\u03B7', 'theta':     u'\u03B8',
            'iota':     u'\u03B9', 'kappa':     u'\u03BA',
            'lambda':   u'\u03BB', 'mu':        u'\u03BC',
            'nu':       u'\u03BD', 'xi':        u'\u03BE',
            'omicron':  u'\u03BF', 'pi':        u'\u03C0',
            'rho':      u'\u03C1', 'varsigma':  u'\u03C2',
            'sigma':    u'\u03C3', 'tau':       u'\u03C4',
            'upsilon':  u'\u03C5', 'phi':       u'\u03C6',
            'chi':      u'\u03C7', 'psi':       u'\u03C8',
            'omega':    u'\u03C9',
        }

        def translate(s):
            if s in unitr:
                return unitr[s]
            else:
                return s

        name, supers, subs = split_super_sub(sym.name)
        name = translate(name)
        supers = [translate(sup) for sup in supers]
        subs = [translate(sub) for sub in subs]

        mname = self.dom.createElement('mml:mi')
        mname.appendChild(self.dom.createTextNode(name))
        if len(supers) == 0:
            if len(subs) == 0:
                ci.appendChild(self.dom.createTextNode(name))
            else:
                msub = self.dom.createElement('mml:msub')
                msub.appendChild(mname)
                msub.appendChild(join(subs))
                ci.appendChild(msub)
        else:
            if len(subs) == 0:
                msup = self.dom.createElement('mml:msup')
                msup.appendChild(mname)
                msup.appendChild(join(supers))
                ci.appendChild(msup)
            else:
                msubsup = self.dom.createElement('mml:msubsup')
                msubsup.appendChild(mname)
                msubsup.appendChild(join(subs))
                msubsup.appendChild(join(supers))
                ci.appendChild(msubsup)
        return ci