index c5f4336..07d4005 100644 (file)
@@ -278,7 +278,7 @@ class Expression:
string += ' + {}'.format(constant._repr_latex_().strip('$')) elif constant < 0: string += ' - {}'.format((-constant)._repr_latex_().strip('$'))
-        return '${}$'.format(string)
+        return '$${}$$'.format(string)

def _parenstr(self, always=False):
string = str(self)
@@ -359,7 +359,7 @@ class Symbol(Expression):
return self.name

def _repr_latex_(self):
-        return '${}$'.format(self.name)
+        return '$${}$$'.format(self.name)

@classmethod
def fromsympy(cls, expr):
@@ -401,7 +401,7 @@ class Dummy(Symbol):
return '_{}'.format(self.name)

def _repr_latex_(self):
-        return '${}_{{{}}}$'.format(self.name, self._index)
+        return '$${}_{{{}}}$$'.format(self.name, self._index)

def symbols(names):
@@ -413,11 +413,13 @@ def symbols(names):
class Rational(Expression, Fraction):

def __new__(cls, numerator=0, denominator=None):
-        self = Fraction.__new__(cls, numerator, denominator)
+        self = object().__new__(cls)
self._coefficients = {}
-        self._constant = Fraction(self)
+        self._constant = Fraction(numerator, denominator)
self._symbols = ()
self._dimension = 0
+        self._numerator = self._constant.numerator
+        self._denominator = self._constant.denominator
return self

def __hash__(self):
@@ -441,12 +443,12 @@ class Rational(Expression, Fraction):

def _repr_latex_(self):
if self.denominator == 1:
-            return '${}$'.format(self.numerator)
+            return '$${}$$'.format(self.numerator)
elif self.numerator < 0:
-            return '$-\\frac{{{}}}{{{}}}$'.format(-self.numerator,
+            return '$$-\\frac{{{}}}{{{}}}$$'.format(-self.numerator,
self.denominator)
else:
-            return '$\\frac{{{}}}{{{}}}$'.format(self.numerator,
+            return '$$\\frac{{{}}}{{{}}}$$'.format(self.numerator,
self.denominator)

@classmethod