|
From: william r. <wil...@gm...> - 2010-04-19 19:36:54
|
>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...@st...> 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...@st... >> >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...@st... >>>> <mailto: >>>> md...@st...>> 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...@st... <mailto:md...@st...> >>>> <mailto:md...@st... <mailto:md...@st...>>> 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 >>>> Mat...@li... >>>> <mailto:Mat...@li...> >>>> <mailto:Mat...@li... >>>> <mailto:Mat...@li...>> >>>> >>>> >>>> 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 > > |