Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hello, Sage community. I was able to adapt @Juanjo's answer, but then I did some incantation (which I don't completely understand) that generalized his method. The only problem is that I had to modify the code in the file sage.misc.latex.latex. Here I describe what I did.

First of all, I made a copy of the file I just mentioned, and added a small modification of part of your code. Here is the patch:

@@ -36,6 +36,7 @@
 from sage.misc.sage_ostools import have_program
 from sage.misc.temporary_file import tmp_dir

 @@ -36,6 +36,7 @@
 from sage.misc.sage_ostools import have_program
 from sage.misc.temporary_file import tmp_dir

+from sage.all import RR, CC
 EMBEDDED_MODE = False

 COMMON_HEADER = \
@@ -921,6 +922,10 @@
             sage: latex((x,2), combine_all=True)
             x 2
         """
+        if x in RR:
+            return LatexExpr(r'\num{' + str(x) + '}')
+        elif x in CC:
+            return LatexExpr(r'\num{' + str(x.real_part()) + '+' + str(x.imag_part()) + 'i}')
         if has_latex_attr(x):
             return LatexExpr(x._latex_())
         try:

I saved this as LaTeX.py., then I made an import:

from LaTeX import latex

And here is the part I don't understand:

sage.misc.latex.latex = latex

This last line makes my new latex() function work on matrices, tuples, list, etc. automatically. (Why?)