]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
mjo/**/*.py: update table rendering
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 23 Nov 2024 02:50:05 +0000 (21:50 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Sat, 23 Nov 2024 02:50:05 +0000 (21:50 -0500)
Sage's tables are rendered using unicode characters for the borders
now.

mjo/eja/eja_algebra.py
mjo/eja/eja_element.py
mjo/hurwitz.py
mjo/matrix_algebra.py

index 85d466d708101f730957936f97bd591e747d99ff..3c6bb42ab5e0f7bc611d4d25637f2ccff8c53956 100644 (file)
@@ -113,7 +113,7 @@ also Use rational numbers, but only if you either pass
 won't stray beyond the rational numbers. The example above would
 have worked only because ``sqrt(16) == 4`` is rational.
 
-Another option for your basis is to use elemebts of a
+Another option for your basis is to use elements of a
 :class:`MatrixAlgebra`::
 
     sage: from mjo.matrix_algebra import MatrixAlgebra
@@ -122,18 +122,18 @@ Another option for your basis is to use elemebts of a
     sage: J4
     Euclidean Jordan algebra of dimension 1 over Algebraic Real Field
     sage: J4.basis()[0].to_matrix()
-    +---+
-    | 1 |
-    +---+
+    ┌───┐
+    │ 1 │
+    └───┘
 
 An easier way to view the entire EJA basis in its original (but
 perhaps orthonormalized) matrix form is to use the ``matrix_basis``
 method::
 
     sage: J4.matrix_basis()
-    (+---+
-    | 1 |
-     +---+,)
+    (┌───┐
+     │ 1 │
+     └───┘,)
 
 In particular, a :class:`MatrixAlgebra` is needed to work around the
 fact that matrices in SageMath must have entries in the same
@@ -1014,17 +1014,17 @@ class EJA(CombinatorialFreeModule):
 
             sage: J = JordanSpinEJA(4)
             sage: J.multiplication_table()
-            +----++----+----+----+----+
-            | *  || b0 | b1 | b2 | b3 |
-            +====++====+====+====+====+
-            | b0 || b0 | b1 | b2 | b3 |
-            +----++----+----+----+----+
-            | b1 || b1 | b0 | 0  | 0  |
-            +----++----+----+----+----+
-            | b2 || b2 | 0  | b0 | 0  |
-            +----++----+----+----+----+
-            | b3 || b3 | 0  | 0  | b0 |
-            +----++----+----+----+----+
+            ┌────╥────┬────┬────┬────┐
+            │ *  ║ b0 │ b1 │ b2 │ b3 │
+            ╞════╫════╪════╪════╪════╡
+            │ b0 ║ b0 │ b1 │ b2 │ b3 │
+            ├────╫────┼────┼────┼────┤
+            │ b1 ║ b1 │ b0 │ 0  │ 0  │
+            ├────╫────┼────┼────┼────┤
+            │ b2 ║ b2 │ 0  │ b0 │ 0  │
+            ├────╫────┼────┼────┼────┤
+            │ b3 ║ b3 │ 0  │ 0  │ b0 │
+            └────╨────┴────┴────┴────┘
 
         """
         n = self.dimension()
@@ -2372,29 +2372,29 @@ class OctonionHermitianEJA(HermitianMatrixEJA, RationalBasisEJA, ConcreteEJA):
         ....:                          field=QQ,
         ....:                          orthonormalize=False)
         sage: J.multiplication_table()
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | *  || b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | b8 | b9 |
-        +====++====+====+====+====+====+====+====+====+====+====+
-        | b0 || b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | b8 | b9 |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b1 || b1 | b0 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b2 || b2 | 0  | b0 | 0  | 0  | 0  | 0  | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b3 || b3 | 0  | 0  | b0 | 0  | 0  | 0  | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b4 || b4 | 0  | 0  | 0  | b0 | 0  | 0  | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b5 || b5 | 0  | 0  | 0  | 0  | b0 | 0  | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b6 || b6 | 0  | 0  | 0  | 0  | 0  | b0 | 0  | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b7 || b7 | 0  | 0  | 0  | 0  | 0  | 0  | b0 | 0  | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b8 || b8 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | b0 | 0  |
-        +----++----+----+----+----+----+----+----+----+----+----+
-        | b9 || b9 | 0  | 0  | 0  | 0  | 0  | 0  | 0  | 0  | b0 |
-        +----++----+----+----+----+----+----+----+----+----+----+
+        ┌────╥────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐
+        │ *  ║ b0 │ b1 │ b2 │ b3 │ b4 │ b5 │ b6 │ b7 │ b8 │ b9 │
+        ╞════╫════╪════╪════╪════╪════╪════╪════╪════╪════╪════╡
+        │ b0 ║ b0 │ b1 │ b2 │ b3 │ b4 │ b5 │ b6 │ b7 │ b8 │ b9 │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b1 ║ b1 │ b0 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b2 ║ b2 │ 0  │ b0 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b3 ║ b3 │ 0  │ 0  │ b0 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b4 ║ b4 │ 0  │ 0  │ 0  │ b0 │ 0  │ 0  │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b5 ║ b5 │ 0  │ 0  │ 0  │ 0  │ b0 │ 0  │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b6 ║ b6 │ 0  │ 0  │ 0  │ 0  │ 0  │ b0 │ 0  │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b7 ║ b7 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ b0 │ 0  │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b8 ║ b8 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ b0 │ 0  │
+        ├────╫────┼────┼────┼────┼────┼────┼────┼────┼────┼────┤
+        │ b9 ║ b9 │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ 0  │ b0 │
+        └────╨────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘
 
     TESTS:
 
@@ -2409,13 +2409,13 @@ class OctonionHermitianEJA(HermitianMatrixEJA, RationalBasisEJA, ConcreteEJA):
         sage: J.one()
         b0 + b9 + b26
         sage: J.one().to_matrix()
-        +----+----+----+
-        | e0 | 0  | 0  |
-        +----+----+----+
-        | 0  | e0 | 0  |
-        +----+----+----+
-        | 0  | 0  | e0 |
-        +----+----+----+
+        ┌────┬────┬────┐
+        │ e0 │ 0  │ 0  │
+        ├────┼────┼────┤
+        │ 0  │ e0 │ 0  │
+        ├────┼────┼────┤
+        │ 0  │ 0  │ e0 │
+        └────┴────┴────┘
 
     The 2-by-2 algebra is isomorphic to the ten-dimensional Jordan
     spin algebra, but just to be sure, we recompute its rank::
@@ -3020,25 +3020,25 @@ class CartesianProductEJA(EJA):
         sage: J3 = JordanSpinEJA(1)
         sage: J = cartesian_product([J1,cartesian_product([J2,J3])])
         sage: J.multiplication_table()
-        +----++----+----+----+
-        | *  || b0 | b1 | b2 |
-        +====++====+====+====+
-        | b0 || b0 | 0  | 0  |
-        +----++----+----+----+
-        | b1 || 0  | b1 | 0  |
-        +----++----+----+----+
-        | b2 || 0  | 0  | b2 |
-        +----++----+----+----+
+        ┌────╥────┬────┬────┐
+        │ *  ║ b0 │ b1 │ b2 │
+        ╞════╫════╪════╪════╡
+        │ b0 ║ b0 │ 0  │ 0  │
+        ├────╫────┼────┼────┤
+        │ b1 ║ 0  │ b1 │ 0  │
+        ├────╫────┼────┼────┤
+        │ b2 ║ 0  │ 0  │ b2 │
+        └────╨────┴────┴────┘
         sage: HadamardEJA(3).multiplication_table()
-        +----++----+----+----+
-        | *  || b0 | b1 | b2 |
-        +====++====+====+====+
-        | b0 || b0 | 0  | 0  |
-        +----++----+----+----+
-        | b1 || 0  | b1 | 0  |
-        +----++----+----+----+
-        | b2 || 0  | 0  | b2 |
-        +----++----+----+----+
+        ┌────╥────┬────┬────┐
+        │ *  ║ b0 │ b1 │ b2 │
+        ╞════╫════╪════╪════╡
+        │ b0 ║ b0 │ 0  │ 0  │
+        ├────╫────┼────┼────┤
+        │ b1 ║ 0  │ b1 │ 0  │
+        ├────╫────┼────┼────┤
+        │ b2 ║ 0  │ 0  │ b2 │
+        └────╨────┴────┴────┘
 
     The "matrix space" of a Cartesian product always consists of
     ordered pairs (or triples, or...) whose components are the
@@ -3056,11 +3056,11 @@ class CartesianProductEJA(EJA):
             [1]
             [1]
             sage: J.one().to_matrix()[1]
-            +---+---+
-            | 1 | 0 |
-            +---+---+
-            | 0 | 1 |
-            +---+---+
+            ┌───┬───┐
+            │ 1 │ 0 │
+            ├───┼───┤
+            │ 0 │ 1 │
+            └───┴───┘
 
     TESTS:
 
index c0e0d092e296171665e87023427c54d66ca93499..1ded736e9c8fdb8cd19dd846a1269e65ad3eab0f 100644 (file)
@@ -1091,13 +1091,13 @@ class EJAElement(IndexedFreeModuleElement):
             sage: J.one()
             b0 + b3 + b8
             sage: J.one().to_matrix()
-            +---+---+---+
-            | 1 | 0 | 0 |
-            +---+---+---+
-            | 0 | 1 | 0 |
-            +---+---+---+
-            | 0 | 0 | 1 |
-            +---+---+---+
+            ┌───┬───┬───┐
+            │ 1 │ 0 │ 0 │
+            ├───┼───┼───┤
+            │ 0 │ 1 │ 0 │
+            ├───┼───┼───┤
+            │ 0 │ 0 │ 1 │
+            └───┴───┴───┘
 
         ::
 
@@ -1105,11 +1105,11 @@ class EJAElement(IndexedFreeModuleElement):
             sage: J.one()
             b0 + b5
             sage: J.one().to_matrix()
-            +---+---+
-            | 1 | 0 |
-            +---+---+
-            | 0 | 1 |
-            +---+---+
+            ┌───┬───┐
+            │ 1 │ 0 │
+            ├───┼───┤
+            │ 0 │ 1 │
+            └───┴───┘
 
         This also works in Cartesian product algebras::
 
index 07eace64fd9e9a92e93a937d3ee9a4352089442b..4d8aa8c100b6eb41d3715474c15a9a7f3f3b28a2 100644 (file)
@@ -260,25 +260,25 @@ class Octonions(CombinatorialFreeModule):
         The multiplication table is what Wikipedia says it is::
 
             sage: Octonions().multiplication_table()
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | *  || e0 | e1  | e2  | e3  | e4  | e5  | e6  | e7  |
-            +====++====+=====+=====+=====+=====+=====+=====+=====+
-            | e0 || e0 | e1  | e2  | e3  | e4  | e5  | e6  | e7  |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e1 || e1 | -e0 | e3  | -e2 | e5  | -e4 | -e7 | e6  |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e2 || e2 | -e3 | -e0 | e1  | e6  | e7  | -e4 | -e5 |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e3 || e3 | e2  | -e1 | -e0 | e7  | -e6 | e5  | -e4 |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e4 || e4 | -e5 | -e6 | -e7 | -e0 | e1  | e2  | e3  |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e5 || e5 | e4  | -e7 | e6  | -e1 | -e0 | -e3 | e2  |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e6 || e6 | e7  | e4  | -e5 | -e2 | e3  | -e0 | -e1 |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
-            | e7 || e7 | -e6 | e5  | e4  | -e3 | -e2 | e1  | -e0 |
-            +----++----+-----+-----+-----+-----+-----+-----+-----+
+            ┌────╥────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
+            │ *  ║ e0 │ e1  │ e2  │ e3  │ e4  │ e5  │ e6  │ e7  │
+            ╞════╫════╪═════╪═════╪═════╪═════╪═════╪═════╪═════╡
+            │ e0 ║ e0 │ e1  │ e2  │ e3  │ e4  │ e5  │ e6  │ e7  │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e1 ║ e1 │ -e0 │ e3  │ -e2 │ e5  │ -e4 │ -e7 │ e6  │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e2 ║ e2 │ -e3 │ -e0 │ e1  │ e6  │ e7  │ -e4 │ -e5 │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e3 ║ e3 │ e2  │ -e1 │ -e0 │ e7  │ -e6 │ e5  │ -e4 │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e4 ║ e4 │ -e5 │ -e6 │ -e7 │ -e0 │ e1  │ e2  │ e3  │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e5 ║ e5 │ e4  │ -e7 │ e6  │ -e1 │ -e0 │ -e3 │ e2  │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e6 ║ e6 │ e7  │ e4  │ -e5 │ -e2 │ e3  │ -e0 │ -e1 │
+            ├────╫────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
+            │ e7 ║ e7 │ -e6 │ e5  │ e4  │ -e3 │ -e2 │ e1  │ -e0 │
+            └────╨────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
 
         """
         n = self.dimension()
@@ -313,11 +313,11 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
             sage: M = A([ [ I,   1 + 2*I],
             ....:         [ 3*I,     4*I] ])
             sage: M.conjugate()
-            +------+----------+
-            | -I   | -2*I + 1 |
-            +------+----------+
-            | -3*I | -4*I     |
-            +------+----------+
+            ┌──────┬──────────┐
+            │ -I   │ -2*I + 1 │
+            ├──────┼──────────┤
+            │ -3*I │ -4*I     │
+            └──────┴──────────┘
 
         ::
 
@@ -349,11 +349,11 @@ class HurwitzMatrixAlgebraElement(MatrixAlgebraElement):
             sage: M = A([ [ I,   2*I],
             ....:         [ 3*I, 4*I] ])
             sage: M.conjugate_transpose()
-            +------+------+
-            | -I   | -3*I |
-            +------+------+
-            | -2*I | -4*I |
-            +------+------+
+            ┌──────┬──────┐
+            │ -I   │ -3*I │
+            ├──────┼──────┤
+            │ -2*I │ -4*I │
+            └──────┴──────┘
             sage: M.conjugate_transpose().to_vector()
             (0, -1, 0, -3, 0, -2, 0, -4)
 
@@ -602,34 +602,34 @@ class OctonionMatrixAlgebra(HurwitzMatrixAlgebra):
         base ring Real Field with 53 bits of precision over the scalar
         ring Algebraic Real Field
         sage: A.one()
-        +---------------------+
-        | 1.00000000000000*e0 |
-        +---------------------+
+        ┌─────────────────────┐
+        │ 1.00000000000000*e0 │
+        └─────────────────────┘
         sage: A.gens()
-        (+---------------------+
-        | 1.00000000000000*e0 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e1 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e2 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e3 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e4 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e5 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e6 |
-        +---------------------+,
-        +---------------------+
-        | 1.00000000000000*e7 |
-        +---------------------+)
+        (┌─────────────────────┐
+         │ 1.00000000000000*e0 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e1 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e2 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e3 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e4 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e5 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e6 │
+         └─────────────────────┘,
+         ┌─────────────────────┐
+         │ 1.00000000000000*e7 │
+         └─────────────────────┘)
 
     ::
 
@@ -637,11 +637,11 @@ class OctonionMatrixAlgebra(HurwitzMatrixAlgebra):
         sage: e0,e1,e2,e3,e4,e5,e6,e7 = A.entry_algebra().gens()
         sage: A([ [e0+e4, e1+e5],
         ....:     [e2-e6, e3-e7] ])
-        +---------+---------+
-        | e0 + e4 | e1 + e5 |
-        +---------+---------+
-        | e2 - e6 | e3 - e7 |
-        +---------+---------+
+        ┌─────────┬─────────┐
+        │ e0 + e4 │ e1 + e5 │
+        ├─────────┼─────────┤
+        │ e2 - e6 │ e3 - e7 │
+        └─────────┴─────────┘
 
     ::
 
@@ -705,22 +705,22 @@ class QuaternionMatrixAlgebra(HurwitzMatrixAlgebra):
         (-1.0, -1.0) with base ring Real Double Field over the scalar
         ring Algebraic Real Field
         sage: A.one()
-        +-----+
-        | 1.0 |
-        +-----+
+        ┌─────┐
+        │ 1.0 │
+        └─────┘
         sage: A.gens()
-        (+-----+
-        | 1.0 |
-        +-----+,
-        +---+
-        | i |
-        +---+,
-        +---+
-        | j |
-        +---+,
-        +---+
-        | k |
-        +---+)
+        (┌─────┐
+         │ 1.0 │
+         └─────┘,
+         ┌───┐
+         │ i │
+         └───┘,
+         ┌───┐
+         │ j │
+         └───┘,
+         ┌───┐
+         │ k │
+         └───┘)
 
     ::
 
@@ -728,11 +728,11 @@ class QuaternionMatrixAlgebra(HurwitzMatrixAlgebra):
         sage: i,j,k = A.entry_algebra().gens()
         sage: A([ [1+i, j-2],
         ....:     [k,   k+j] ])
-        +-------+--------+
-        | 1 + i | -2 + j |
-        +-------+--------+
-        | k     | j + k  |
-        +-------+--------+
+        ┌───────┬────────┐
+        │ 1 + i │ -2 + j │
+        ├───────┼────────┤
+        │ k     │ j + k  │
+        └───────┴────────┘
 
     ::
 
@@ -822,16 +822,16 @@ class ComplexMatrixAlgebra(HurwitzMatrixAlgebra):
         Module of 1 by 1 matrices with entries in Complex Field with
         53 bits of precision over the scalar ring Algebraic Real Field
         sage: A.one()
-        +------------------+
-        | 1.00000000000000 |
-        +------------------+
+        ┌──────────────────┐
+        │ 1.00000000000000 │
+        └──────────────────┘
         sage: A.gens()
-        (+------------------+
-        | 1.00000000000000 |
-        +------------------+,
-        +--------------------+
-        | 1.00000000000000*I |
-        +--------------------+)
+        (┌──────────────────┐
+         │ 1.00000000000000 │
+         └──────────────────┘,
+         ┌────────────────────┐
+         │ 1.00000000000000*I │
+         └────────────────────┘)
 
     ::
 
@@ -839,11 +839,11 @@ class ComplexMatrixAlgebra(HurwitzMatrixAlgebra):
         sage: (I,) = A.entry_algebra().gens()
         sage: A([ [1+I, 1],
         ....:     [-1, -I] ])
-        +---------+------+
-        | 1 + 1*I | 1    |
-        +---------+------+
-        | -1      | -1*I |
-        +---------+------+
+        ┌─────────┬──────┐
+        │ 1 + 1*I │ 1    │
+        ├─────────┼──────┤
+        │ -1      │ -1*I │
+        └─────────┴──────┘
 
     ::
 
index 6817af1e046d65efeab32f45dc17396cd7fb4906..d12e7b35a850f3b44e9f2507c0e86bf106ad9902 100644 (file)
@@ -21,11 +21,11 @@ class MatrixAlgebraElement(IndexedFreeModuleElement):
             sage: M = MatrixAlgebra(2, QQbar,RDF)
             sage: A = M.monomial((0,0,1)) + 4*M.monomial((0,1,1))
             sage: A
-            +-----+-----+
-            | 1.0 | 4.0 |
-            +-----+-----+
-            | 0   | 0   |
-            +-----+-----+
+            ┌─────┬─────┐
+            │ 1.0 │ 4.0 │
+            ├─────┼─────┤
+            │ 0   │ 0   │
+            └─────┴─────┘
             sage: A.rows()
             [[1.0, 4.0], [0, 0]]
 
@@ -51,11 +51,11 @@ class MatrixAlgebraElement(IndexedFreeModuleElement):
         EXAMPLES::
 
             sage: MatrixAlgebra(2,ZZ,ZZ).zero()
-            +---+---+
-            | 0 | 0 |
-            +---+---+
-            | 0 | 0 |
-            +---+---+
+            ┌───┬───┐
+            │ 0 │ 0 │
+            ├───┼───┤
+            │ 0 │ 0 │
+            └───┴───┘
 
         TESTS::
 
@@ -179,16 +179,16 @@ class MatrixAlgebra(CombinatorialFreeModule):
 
         sage: from mjo.matrix_algebra import MatrixAlgebra
 
-    EXAMPLES::
+    EXAMPLES:
 
     The existence of a unit element is determined dynamically::
 
         sage: MatrixAlgebra(2,ZZ,ZZ).one()
-        +---+---+
-        | 1 | 0 |
-        +---+---+
-        | 0 | 1 |
-        +---+---+
+        ┌───┬───┐
+        │ 1 │ 0 │
+        ├───┼───┤
+        │ 0 │ 1 │
+        └───┴───┘
 
     """
     Element = MatrixAlgebraElement
@@ -350,11 +350,11 @@ class MatrixAlgebra(CombinatorialFreeModule):
             -e3
             sage: A = MatrixAlgebra(2,O,QQ)
             sage: A.product_on_basis( (0,0,e[2]), (0,0,e[1]) )
-            +-----+---+
-            | -e3 | 0 |
-            +-----+---+
-            | 0   | 0 |
-            +-----+---+
+            ┌─────┬───┐
+            │ -e3 │ 0 │
+            ├─────┼───┤
+            │ 0   │ 0 │
+            └─────┴───┘
 
         """
         (i,j,e1) = mon1
@@ -388,11 +388,11 @@ class MatrixAlgebra(CombinatorialFreeModule):
             sage: A = ComplexMatrixAlgebra(2, QQbar, ZZ)
             sage: M = A.from_list([[0,I],[-I,0]])
             sage: M
-            +----+---+
-            | 0  | I |
-            +----+---+
-            | -I | 0 |
-            +----+---+
+            ┌────┬───┐
+            │ 0  │ I │
+            ├────┼───┤
+            │ -I │ 0 │
+            └────┴───┘
             sage: M.to_vector()
             (0, 0, 0, 1, 0, -1, 0, 0)