There are some unicode typesetting enhancements coming down the road:

#18357: Unicode Art
#18270: Print matrices using unicode large delimiters (on demand)


On Wednesday, May 6, 2015 at 7:03:23 PM UTC+2, Bill Page wrote:
>
> Perhaps this is more specifically related to Sage. Anyone have any 
> suggestions or comments?  Has the issue of sending unicode to external 
> programs been discussed before? 
>
> Is there a better way to implement this without having to modify a 
> common python site package? 
>
> Is there a good way to make this specific to just those interfaces 
> that can support unicode? 
>
>
> ---------- Forwarded message ---------- 
> From: Bill Page <bill...@newsynthesis.org <javascript:>> 
> Date: 5 May 2015 at 23:02 
> Subject: Re: Unicode in Sage Worksheets 
> To: sage-...@googlegroups.com <javascript:> 
>
>
> As suggested here: 
>
>   http://sourceforge.net/p/pexpect/bugs/28/ 
>
> the following patch to the sage python site package pexpect.py 
>
> ~$ diff -au 
> /usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/pexpect.py 
> pexpectu.py 
> --- /usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/pexpect.py 
>       2015-02-23 23:01:50.000000000 +0000 
> +++ pexpectu.py 2015-05-06 02:26:19.798935537 +0000 
> @@ -666,7 +666,7 @@ 
>          if self.logfile != None: 
>              self.logfile.write (str) 
>              self.logfile.flush() 
> -        c = os.write(self.child_fd, str) 
> +        c = os.write(self.child_fd, str.encode("utf-8")) 
>          return c 
>
>      def sendline(self, str=''): 
>
> -- 
>
> and calling it from sage 'expect.py' like this: 
>
> ~$ diff -au expect.py.orig expect.py 
> --- expect.py.orig      2015-05-06 02:53:17.150953375 +0000 
> +++ expect.py   2015-05-06 02:50:25.410955076 +0000 
> @@ -55,8 +55,8 @@ 
>  # For reasons I don't understand, pexpect2.1 is much 
>  # worse than pexpect 2.0 for everything Sage does. 
>  ######################################################## 
> -import pexpect 
> -from pexpect import ExceptionPexpect 
> +import pexpectu as pexpect 
> +from pexpectu import ExceptionPexpect 
>  from sage.interfaces.interface import Interface, InterfaceElement, 
> InterfaceFunction, InterfaceFunctionElement, AsciiArtString 
>
>  from sage.structure.element import RingElement 
>
> -- 
>
> enables sending unicode characters to FriCAS from a Sage worksheet as 
> shown here: 
>
>
> https://cloud.sagemath.com/projects/4bc39013-7b65-4a65-9d3d-bec4a4ce4d5a/files/fricas-CR%20Examples.sagews
>  
>
> Does anyone have a suggestion for how to package this for Sage and or 
> Sage Math Cloud?  Is 
>
>   str.encode("utf-8") 
>
> likely to cause errors in interfaces to other programs? 
>
> Bill Page. 
>
>
> On 5 May 2015 at 17:40, Bill Page <bill...@newsynthesis.org <javascript:>> 
> wrote: 
> > I tried to use a unicode character in the following worksheet: 
> > 
> > 
> https://cloud.sagemath.com/projects/4bc39013-7b65-4a65-9d3d-bec4a4ce4d5a/files/fricas-CR%20Examples.sagews
>  
> > 
> > The cell input is 
> > 
> >   axialratio(expr,z)==(1-Abs(μ(expr,z)))/(1+Abs(μ(expr,z))) 
> > 
> > i.e. containing the Greek letter \mu 
> > 
> > This is being sent to FriCAS to execute. FriCAS support the use of 
> > unicode like this and in fact I can use it in a SMC terminal with 
> > FriCAS.  But in a Sage Worksheet in SMC I get the following error: 
> > 
> > Error in lines 1-1 
> > Traceback (most recent call last): 
> >   File 
> "/projects/4bc39013-7b65-4a65-9d3d-bec4a4ce4d5a/.sagemathcloud/sage_server.py",
>  
>
> > line 879, in execute 
> >     exec compile(block+'\n', '', 'single') in namespace, locals 
> >   File "", line 1, in <module> 
> >   File 
> "/projects/4bc39013-7b65-4a65-9d3d-bec4a4ce4d5a/.sagemathcloud/sage_server.py",
>  
>
> > line 920, in execute_with_code_decorators 
> >     code = code_decorator(code) 
> >   File "", line 3, in fricas_md 
> >   File "./expect.py", line 1224, in eval 
> >     for L in code.split('\n') if L != '']) 
> >   File "./axiom.py", line 440, in _eval_line 
> >     E.sendline(line) 
> >   File 
> "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/pexpect.py", 
> > line 676, in sendline 
> >     n = self.send(str) 
> >   File 
> "/usr/local/sage/sage-6.5/local/lib/python2.7/site-packages/pexpect.py", 
> > line 669, in send 
> >     c = os.write(self.child_fd, str) 
> > UnicodeEncodeError: 'ascii' codec can't encode character u'\u03bc' in 
> > position 27: ordinal not in range(128) 
> > 
> > -- 
> > 
> > Is this a limitation of the pexpect interface? Is there some way around 
> this? 
> > 
> > Bill. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to