On Jan 24, 2008 9:43 PM, Jason Grout <[EMAIL PROTECTED]> wrote:
>
> Following up on William's tip to look at the displayhook function, here
> is a function that will enable "pretty-printing" by default in the notebook:
>
> def pretty_print (object):
>      if object is None:
>          return
>      import __builtin__
>      __builtin__._=object
>      try:
>          print html("$"+latex(object)+"$")
>      except:
>          import sys
>          sys.__displayhook__(object)
>
> def notebook_pretty(enable=True):
>      import sys
>      if enable:
>          sys.displayhook = pretty_print
>      else:
>          sys.displayhook = sys.__displayhook__
>
> # To enable the pretty-printing
> notebook_pretty(True)
>
> Of course the function names could (and probably should) change.  This
> function makes the notebook much, much more user-friendly to new users,
> I think.  Where should this function be located?  Also, should it be a
> switch at the top of the notebook, like the evaluation drop-down menu?
>
> One problem with the above is that graphics objects are not shown by
> default (try doing plot(sin(x),1,2) after the above code).  Someone
> familiar with how graphic objects are shown by default now could
> probably trivially fix that problem, though (any takers?).
>

Sure.  This is like yours but slightly nicer and deals with graphics
nicely (and also lists of graphics objects):

def pretty_print (object):
    if object is None:
        return
    if isinstance(object, (sage.plot.plot.Graphics,
sage.plot.plot3d.base.Graphics3d)):
        print repr(object)
        return
    import __builtin__
    __builtin__._=object
    try:
        print html("$$"+latex(object)+"$$")
    except:
        import sys
        sys.__displayhook__(object)

def notebook_pretty(enable=True):
    import sys
    if enable:
        sys.displayhook = pretty_print
    else:
        sys.displayhook = sys.__displayhook__

# To enable the pretty-printing
notebook_pretty(True)

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to