William Stein wrote:
> 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)

mhansen and mabshoff just pointed out on IRC that lprint() is the 
existing function that is almost exactly this.  So I'm patching up 
lprint instead.

Can we make a very visible checkbox or button in the notebook interface 
that toggles lprint?  I think it would be one thing that new users would 
appreciate very, very much and also someone like me would appreciate 
very much too.

Jason


--~--~---------~--~----~------------~-------~--~----~
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