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