|
From: Dominique O. <dom...@po...> - 2004-10-27 00:49:32
|
> Date: Mon, 25 Oct 2004 20:40:02 -0400
> From: Gary <pa...@in...>
> To: Chris Barker <Chr...@no...>
> CC: mat...@li...
> Subject: Re: [Matplotlib-users] TeX in xlabel ?
>
> Chris Barker wrote:
>
> > Gary wrote:
> >
> >> AFAICT, It is not possible to mix text and TeX symbols in a string
> >> and have it come out right. For example, in
> >>
> >> xlabel(r'$\rm{Normalized Temperature} (kT/\epsilon)$'
> >> The text comes out in TeX math mode ... not so pretty. Please tell
> >> me what I've overlooked.
> >
> >
> > well, I'm not sure how this is supported in matplotlib, but in
> > LaTex,you would do:
> >
> > Normalized Temperature $(kT/\epsilon)$
> >
> > or:
> >
> > $\text{Normalized Temperature} (kT/\epsilon)$
> >
> > the "$" means put it in math mode, if you don't want "Normalized
> > Temperature" in math mode, don't put it inside the $$. The second puts
> > it all in math mode, but the text{} means set this in text mode.
> >
> > -Chris
> >
> Matplotlib doesn't support \text, and it requires that the first and
> last characters of a TeX string be $. I guess it only processes
> mathmode. Well, it can't do *everything*. It would be nice to figure
> out a workaround...
Gary's example
xlabel(r'$\rm{Normalized Temperature} (kT/\epsilon)$'
USED to work, in earlier versions of Matplotlib. It no longer does. I have
posted a similar issue a little while ago:
http://sourceforge.net/mailarchive/message.php?msg_id=9681306
Unfortunately, I haven't really had the time to dig into the code to see what
has changed, but when I do, I'll let you know what I find. The solution
xlabel(r'$\rm{Normalized \ Temperature} (kT/\epsilon)$'
somehow isn't entirely satisfactory.
As far as I can see, \rm{} in Matplotlib should act just the way \mbox{} does in
LaTeX, when you are already in math mode. And certainly, in LaTeX,
$$
xy = 0 \mbox{ but however } x \neq y
$$
produces the expected output in the expected fonts and with the expected
spacing.
Dominique
|