|
From: Flavio C. C. <fcc...@ci...> - 2004-04-07 14:26:07
|
Hi John,
On Wed, 2004-04-07 at 13:16, John Hunter wrote:
> >>>>> "Flavio" == Flavio Codeco Coelho <fcc...@ci...> writes:
>
> Hi Flavio,
>
> On an unrelated note, you will be happy to know that wxagg will be
> included in the next release, probably early next week.
That's great news! I really need to include that equation box in my wx
app.
>
> Flavio> \frac and \dfrac would be a nice addition too...
>
> Agreed. And I guess asking for &=& array layout will be coming soon
> :-)
That would be great too!!
> I will - they look nice! If you add more to it, be sure to send me
> the updated version.
I surely will since this was just a simple draft, to see if it worked.
>
> John Gill has written a Cell class for his Table class which is
> basically a rectangular box with a text instance inside. It might be
> nice to generalize that code to allow multiple lines of text to be
> added
>
> cell.add_line(t1)
> cell.add_line(t2)
>
> Cell already handles autosizing of the box to surround the text, and
> you wouldn't have to mess with turning off the ticks, etc.... John
> might be willing to do this, and it could be wrapped in a nice
> interface command textbox.
Is this code already in the 0.52 release? if So, I'll take a look at
it!
>
> Flavio> Flavio """ This script create a box with a series of
> Flavio> equations
>
> Your code revealed one bug unrelated to the sqrt problem you
> described, but you need to make the change below to have your example
> render properly. In mathtext.py, in the function math_parse_s, change
>
> maxoy = max(oys)
>
> to
> maxoy = abs(max(oys))
>
> Now on to your script. A couple of minor comments first
>
> text(1,9,r'$dx/dt = \alpha y^{2}$', fontsize=15)
>
> the brackets for superscripts are not required; eg, the following is
> ok
>
> text(1,9,r'$dx/dt = \alpha y^2$', fontsize=15)
In TeX, the curly brackets are necessary when you want more than one
character in the subscript or subscript. That's why I had them there
since I was, at first tryin to do a more complex example.
>
> Normally math functions like sin, cos, exp are in roman type, so I
> would use
>
> text(1,7,r'$dz/dt = \gamma x^2+\rm{sin}(2\pi y+\phi)$', fontsize=15)
>
>
You are right, thanks.
> As for sqrt, the mathtext syntax differs from TeX. The main reason is
> that I don't draw an overbar with the sqrt symbol group, though this
> is something I can add (probably when I get around to dealing with
> frac, etc, all of which require some additional drawing and layout).
> The point is, you can't use the curly brackets with sqrt or you get a
> (silent) parse error. I'll try and amend the parser to allow the
> group.
That would be a nice idea not to move away from standard TeX syntax...
>
> In the meantime, just do
>
> text(1,5,r'$\phi = zy + \Sqrt\alpha\beta $', fontsize=15)
>
> I noticed there is a small clipping bug with sqrt. There are still
> some hacks in the way I layout the cmex fonts which are discussed in
> the mathtext documentation - the clipping problem likely arises from
> this hack.
>
> Also, note that spaces are respected in font mode, so a hackish way to
> include them is \rm{ }. I've put adding the TeX small space command
> \/ on the (growing at an alarming rate) TODO list. So if you want a
> space after zy, you can do
Ok, TeX has a whole range of space commands that are import to tweak the
layout of math expressions.
Does mathtext support formatting multiline strings? waht about TeX's
line break command '\\'?
>
> text(1,5,r'$\phi = zy\rm{ } + \sqrt\alpha\beta $', fontsize=15)
>
> That's it; here is the modified script that looks great!
Thanks again John, mathtext is a great piece of software, and a life
saver for people like me that need to include math symbols in their
software. I wish I could use it on other parts of my GUI such as menus,
window titles and etc.
>
> from matplotlib.matlab import *
> figure(1, figsize=(5,5), dpi=100)
> subplot(111)
> plot([0])
>
> a=axis([0,10,0,10])
> title('Equation Box')
> set(gca(),'xticklabels',[])
> set(gca(),'yticklabels',[])
> set(gca(),'xticks',[])
> set(gca(),'yticks',[])
>
> text(1,9,r'$dx/dt = \alpha y^2$', fontsize=15)
> text(1,8,r'$dy/dt = \beta x^2$', fontsize=15)
> text(1,7,r'$dz/dt = \gamma x^2+\rm{sin}(2\pi y+\phi)$', fontsize=15)
> text(1,5,r'$\phi = zy\rm{ } + \sqrt\alpha\beta $', fontsize=15)
>
>
> show()
>
|