From: John H. <jdh...@ac...> - 2004-02-25 18:57:07
|
Todd Miller has added a TkAgg backend to CVS. As the name implies, this is a Tkinter GUI backend which uses agg to render. One very nice feature of this backend is that it works interactively from any python shell, though you'll still need to set matplotlib.interactive(True). > python -i yourscript.py -dTkAgg There may be a few minor issues to clear up, but it will be included in the next release, so now would be a good time to test it out (Thanks Todd!) Also, following Paul Barrett's pointer to the BaKoMa fonts, I implemented a TeX math parser which works with the new ft2font module to render math text. Any text element (xlabel, ylabel, title, text, etc) can use TeX markup, as in xlabel(r'$\Delta_i$') ^ use raw strings The $ symbols must be the first and last symbols in the string. Eg, you cannot do r'My label $x_i$'. But you can change fonts, as in r'\rm{My label} x_y' to achieve the same effect. A large set of the TeX symbols are provided (see below). Subscripting and superscripting are supported, as well as the over/under style of subscripting with \sum, \int, etc. The module uses pyparsing to parse the TeX expression, an so can handle fairly complex TeX expressions Eg, the following renders correctly tex = r'$\cal{R}\prod_{i=\alpha_{i+1}}^\infty a_i\rm{sin}(2 \pi f x_i)$' See http://nitace.bsd.uchicago.edu:8080/files/share/mathtext_demo.png for a screenshot. The fonts \cal, \rm, \it, and \tt are defined. The computer modern fonts this package uses are part of the BaKoMa fonts, which are (in my understanding) free for noncommercial use. For commercial use, please consult the licenses in fonts/ttf and the author Basil K. Malyshev - see also http://www.mozilla.org/projects/mathml/fonts/encoding/license-bakoma.txt KNOWN ISSUES: - some hackish ways I deal with a strange offset in cmex10 - bbox is a bit large in vertical direction and small in horizontal direction - nested subscripts, eg, x_i_i not working - nesting fonts changes in sub/superscript groups not parsing - no rotations yet - no kerning I would like to add more layout commands, like \frac. Backends: This currently works with Agg, GTKAgg and TkAgg. If David incorporates ft2font into paint, it will be easy to add to Paint. I think I can also add it to GTK rather straightforwardly, since it's just a matter of rendering from the ft2font pixel buffers; ditto for wx. PS will require more substantial work, doing the metrics and layouts with the AFM versions of the computer modern fonts. Backends which don't support mathtext will just render the TeX string as a literal. CVS is updated - or if you prefer, I uploaded a snapshot to http://nitace.bsd.uchicago.edu:8080/files/share/matplotlib-0.51c.tar.gz Let me know how it goes! I expect there will be plenty of issues cropping up. JDH Allowed TeX symbols: \Delta \Downarrow \Gamma \Im \LEFTangle \LEFTbrace \LEFTbracket \LEFTparen \Lambda \Leftarrow \Leftbrace \Leftbracket \Leftparen \Leftrightarrow \Omega \P \Phi \Pi \Psi \RIGHTangle \RIGHTbrace \RIGHTbracket \RIGHTparen \Re \Rightarrow \Rightbrace \Rightbracket \Rightparen \S \SQRT \Sigma \Sqrt \Theta \Uparrow \Updownarrow \Upsilon \Vert \Xi \aleph \alpha \approx \ast \asymp \backslash \beta \bigcap \bigcirc \bigcup \bigodot \bigoplus \bigotimes \bigtriangledown \bigtriangleup \biguplus \bigvee \bigwedge \bot \bullet \cap \cdot \chi \circ \clubsuit \coprod \cup \dag \dashv \ddag \delta \diamond \diamondsuit \div \downarrow \ell \emptyset \epsilon \equiv \eta \exists \flat \forall \frown \gamma \geq \gg \heartsuit \imath \in \infty \int \iota \jmath \kappa \lambda \langle \lbrace \lceil \leftangle \leftarrow \leftbrace \leftbracket \leftharpoondown \leftharpoonup \leftparen \leftrightarrow \leq \lfloor \ll \mid \mp \mu \nabla \natural \nearrow \neg \ni \nu \nwarrow \odot \oint \omega \ominus \oplus \oslash \otimes \phi \pi \pm \prec \preceq \prime \prod \propto \psi \rangle \rbrace \rceil \rfloor \rho \rightangle \rightarrow \rightbrace \rightbracket \rightharpoondown \rightharpoonup \rightparen \searrow \sharp \sigma \sim \simeq \slash \smile \spadesuit \sqcap \sqcup \sqrt \sqsubseteq \sqsupseteq \subset \subseteq \succ \succeq \sum \supset \supseteq \swarrow \tau \theta \times \top \triangleleft \triangleright \uparrow \updownarrow \uplus \upsilon \varepsilon \varphi \varphi \varrho \varsigma \vartheta \vdash \vee \wedge \wp \wr \xi \zeta |