>From my mpl-data directory, here's what's in the mathtext section of my
matplotlibrc file:
# The following settings allow you to select the fonts in math mode.
# They map from a TeX font name to a fontconfig font pattern.
# These settings are only used if mathtext.fontset is 'custom'.
# Note that this "custom" mode is unsupported and may go away in the
# future.
#mathtext.cal : cursive
#mathtext.rm  : serif
#mathtext.tt  : monospace
#mathtext.it  : serif:italic
#mathtext.bf  : serif:bold
#mathtext.sf  : sans
#mathtext.fontset : cm # Should be 'cm' (Computer Modern), 'stix',
                       # 'stixsans' or 'custom'
mathtext.fallback_to_cm : True  # When True, use symbols from the Computer
Modern
         # fonts when a symbol can not be found in one of
 # the custom math fonts.

#mathtext.default : it # The default font to use for math.
                       # Can be any of the LaTeX font names, including
                       # the special name "regular" for the same font


On Mon, Apr 19, 2010 at 2:40 PM, Michael Droettboom <md...@stsci.edu> wrote:

> The puzzling thing is this:
>
>
> u'C:\\WINDOWS\\Fonts\\HTOWERTI.TTF'
>
> It's using a custom font in mathtext.  Are you setting the rcParams
> mathtext.fontset or mathtext.default?  That may the culprit, and if not,
> it's a bug that it's trying to use that font.
>
>
> Mike
>
> william ratcliff wrote:
>
>> On the plus side, there is no longer an error when I apply the patch.  On
>> the downside, it generates a rather strange symbol instead of a
>> perpendicular symbol....Let me try to quickly upgrade to 0.99.1.  I did
>> that
>> and I seem to get the same error...
>>
>> On Mon, Apr 19, 2010 at 10:49 AM, Michael Droettboom <md...@stsci.edu
>> >wrote:
>>
>>
>>
>>> Does forcibly casting the path to a string resolve the problem?  i.e.
>>> applying this patch:
>>>
>>> Index: mathtext.py
>>> ===================================================================
>>> --- mathtext.py (revision 8216)
>>> +++ mathtext.py (working copy)
>>> @@ -597,7 +597,7 @@
>>>
>>>       cached_font = self._fonts.get(basename)
>>>       if cached_font is None:
>>> -            font = FT2Font(basename)
>>> +            font = FT2Font(str(basename))
>>>           cached_font = self.CachedFont(font)
>>>           self._fonts[basename] = cached_font
>>>           self._fonts[font.postscript_name] = cached_font
>>>
>>> Mike
>>>
>>> william ratcliff wrote:
>>>
>>>
>>>
>>>> Mike,
>>>>
>>>> The basename is:
>>>> u'C:\\WINDOWS\\Fonts\\HTOWERTI.TTF'
>>>>
>>>> Let me try to find where my matplotlibrc file is located...
>>>>
>>>> Thanks,
>>>> William
>>>>
>>>> On Mon, Apr 19, 2010 at 10:22 AM, Michael Droettboom <md...@stsci.edu
>>>> <mailto:
>>>> md...@stsci.edu>> wrote:
>>>>
>>>>   One might see that error if the path to the font being used
>>>>   contains non-ascii characters (the "basename" variable in the last
>>>>   frame of the stack in the stacktrace).  Is that possible?  We may
>>>>   need to implement the same workaround we use for image files for
>>>>   loading fonts (which is to open the file with Python and pass a
>>>>   file handle to C++ rather than passing a string that may contain
>>>>   Unicode, which is difficult to handle in cross-platform way from
>>>>   C/C++).
>>>>
>>>>   Mike
>>>>
>>>>   william ratcliff wrote:
>>>>
>>>>       I think the actual error was:
>>>>       TypeError: cannot return std::string from Unicode object
>>>>
>>>>       It was the error returned when I walked through with a debugger...
>>>>
>>>>       On Mon, Apr 19, 2010 at 8:51 AM, Michael Droettboom
>>>>       <md...@stsci.edu <mailto:md...@stsci.edu>
>>>>       <mailto:md...@stsci.edu <mailto:md...@stsci.edu>>> wrote:
>>>>
>>>>          It looks like the end of the traceback -- where the actual
>>>>          exception is named -- is missing.  Can you repost it in its
>>>>       entirety?
>>>>
>>>>          Mike
>>>>
>>>>          william ratcliff wrote:
>>>>
>>>>              Hi!  I am using matplotlib 0.99.0 under windows xp.  I
>>>>       tried
>>>>              the following:
>>>>              ax.text(.96,.80,r'$P \perp
>>>>
>>>>
>>>>  
>>>> Q$',fontsize=18,horizontalalignment='right',verticalalignment='top',transform=ax.transAxes,color='black')
>>>>                  and get the following error:
>>>>              (However, in figure labels, symbols using mathtext, such as
>>>>              theta seem to work fine...)
>>>>
>>>>              Thanks,
>>>>              William
>>>>
>>>>              TypeError: cannot return std::string from Unicode object
>>>>              File
>>>>
>>>>  "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
>>>>              line 301, in <module>
>>>>               film110()
>>>>              File
>>>>
>>>>  "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
>>>>              line 157, in film110
>>>>               plt.show()
>>>>              File
>>>>
>>>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
>>>>              line 63, in show
>>>>               manager.window.show()
>>>>              File
>>>>
>>>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
>>>>              line 168, in resizeEvent
>>>>               self.draw()
>>>>              File
>>>>
>>>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4agg.py",
>>>>              line 130, in draw
>>>>               FigureCanvasAgg.draw(self)
>>>>              File
>>>>
>>>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
>>>>              line 314, in draw
>>>>               self.figure.draw(self.renderer)
>>>>              File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
>>>>              line 46, in draw_wrapper
>>>>               draw(artist, renderer, *kl)
>>>>              File "C:\Python25\Lib\site-packages\matplotlib\figure.py",
>>>>              line 774, in draw
>>>>               for a in self.axes: a.draw(renderer)
>>>>              File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
>>>>              line 46, in draw_wrapper
>>>>               draw(artist, renderer, *kl)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\axes.py", line
>>>>              1721, in draw
>>>>               a.draw(renderer)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\text.py", line
>>>>              515, in draw
>>>>               bbox, info = self._get_layout(renderer)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\text.py", line
>>>>              279, in _get_layout
>>>>               clean_line, self._fontproperties, ismath=ismath)
>>>>              File
>>>>
>>>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
>>>>              line 156, in get_text_width_height_descent
>>>>               self.mathtext_parser.parse(s, self.dpi, prop)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 2810, in parse
>>>>               box = self._parser.parse(s, font_output, fontsize, dpi)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 2259, in parse
>>>>               self._expression.parseString(s)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 1048, in parseString
>>>>               loc, tokens = self._parse( instring, 0 )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2559, in parseImpl
>>>>               return self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2307, in parseImpl
>>>>               loc, exprtokens = e._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2672, in parseImpl
>>>>               loc, tokens = self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2307, in parseImpl
>>>>               loc, exprtokens = e._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2756, in parseImpl
>>>>               loc, tokens = self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2714, in parseImpl
>>>>               loc, tmptokens = self.expr._parse( instring, preloc,
>>>>       doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2373, in parseImpl
>>>>               return maxMatchExp._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2559, in parseImpl
>>>>               return self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2416, in parseImpl
>>>>               ret = e._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2559, in parseImpl
>>>>               return self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2559, in parseImpl
>>>>               return self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2416, in parseImpl
>>>>               ret = e._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2293, in parseImpl
>>>>               loc, resultlist = self.exprs[0]._parse( instring, loc,
>>>>              doActions, callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2756, in parseImpl
>>>>               loc, tokens = self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2559, in parseImpl
>>>>               return self.expr._parse( instring, loc, doActions,
>>>>              callPreParse=False )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2373, in parseImpl
>>>>               return maxMatchExp._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 924, in _parseNoCache
>>>>               loc,tokens = self.parseImpl( instring, preloc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 2416, in parseImpl
>>>>               ret = e._parse( instring, loc, doActions )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 981, in _parseCache
>>>>               value = self._parseNoCache( instring, loc, doActions,
>>>>              callPreParse )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>>>              line 950, in _parseNoCache
>>>>               tokens = fn( instring, tokensStart, retTokens )
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 2374, in symbol
>>>>               char = Char(c, self.get_state())
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 1264, in __init__
>>>>               self._update_metrics()
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 1271, in _update_metrics
>>>>               self.font, self.font_class, self.c, self.fontsize,
>>>>       self.dpi)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 446, in get_metrics
>>>>               info = self._get_info(font, font_class, sym, fontsize,
>>>>       dpi)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 579, in _get_info
>>>>               self._get_glyph(fontname, font_class, sym, fontsize)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 697, in _get_glyph
>>>>               fontname, font_class, sym, fontsize)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 827, in _get_glyph
>>>>               cached_font = self._get_font(new_fontname)
>>>>              File
>>>>       "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>>>              line 560, in _get_font
>>>>               font = FT2Font(basename)
>>>>
>>>>
>>>>
>>>>  ------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>>  
>>>> ------------------------------------------------------------------------------
>>>>              Download Intel&#174; Parallel Studio Eval
>>>>              Try the new software tools for yourself. Speed
>>>>       compiling, find
>>>>              bugs
>>>>              proactively, and fine-tune applications for parallel
>>>>       performance.
>>>>              See why Intel Parallel Studio got high marks during beta.
>>>>              http://p.sf.net/sfu/intel-sw-dev
>>>>
>>>>
>>>>  ------------------------------------------------------------------------
>>>>
>>>>              _______________________________________________
>>>>              Matplotlib-users mailing list
>>>>              Matplotlib-users@lists.sourceforge.net
>>>>       <mailto:Matplotlib-users@lists.sourceforge.net>
>>>>              <mailto:Matplotlib-users@lists.sourceforge.net
>>>>       <mailto:Matplotlib-users@lists.sourceforge.net>>
>>>>
>>>>
>>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>>
>>>>          --     Michael Droettboom
>>>>          Science Software Branch
>>>>          Operations and Engineering Division
>>>>          Space Telescope Science Institute
>>>>          Operated by AURA for NASA
>>>>
>>>>
>>>>
>>>>   --     Michael Droettboom
>>>>   Science Software Branch
>>>>   Operations and Engineering Division
>>>>   Space Telescope Science Institute
>>>>   Operated by AURA for NASA
>>>>
>>>>
>>>>
>>>>
>>>>
>>> --
>>> Michael Droettboom
>>> Science Software Branch
>>> Operations and Engineering Division
>>> Space Telescope Science Institute
>>> Operated by AURA for NASA
>>>
>>>
>>>
>>>
>>
>>
>>
>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to