Very nice!
I'm currently getting this traceback with the PDF backend, whether "text.latex.preview" is True or False -- so it may be unrelated to your change, but I'm unable to test PDF at the moment.
Traceback (most recent call last):
File "usetex_baseline_test.py", line 75, in <module>
plt.savefig("test.pdf")
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/pyplot.py", line 345, in savefig
return fig.savefig(*args, **kwargs)
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/figure.py", line 990, in savefig
self.canvas.print_figure(*args, **kwargs)
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backend_bases.py", line 1429, in print_figure
**kwargs)
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backend_bases.py", line 1323, in print_pdf
return pdf.print_pdf(*args, **kwargs)
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backends/backend_pdf.py", line 1911, in print_pdf
file.close()
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backends/backend_pdf.py", line 440, in close
self.writeFonts()
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backends/backend_pdf.py", line 521, in writeFonts
fontdictObject = self.embedType1(filename, self.dviFontInfo[filename])
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/backends/backend_pdf.py", line 553, in embedType1
t1font = type1font.Type1Font(fontinfo.fontfile)
File "/home/mdroe/usr/lib/python2.5/site-packages/matplotlib/type1font.py", line 55, in __init__
file = open(input, 'rb')
Also, it seems like the text alignment in the PS output is too low by a small constant factor.
Assuming those issues can be resolved, is there now any reason to use dviread, assuming preview.sty is installed? If the preview.sty approach is superior, I wonder if we could:
a) Determine if preview.sty is installed, and if so, use it, otherwise fallback to dviread? (Then we could be a default "auto" setting for the rcParam).
b) Or better, include preview.sty with matplotlib and use it instead of a system installed copy, so that it's always available. (This is both a licensing and version-compatibility question, really...)
It would be great to make this new behavior with the proper baseline more automatic.
Cheers,
Mike
Jae-Joon Lee wrote:
···
Hello,
I committed a patch to optionally use preview.sty with usetex=True.
This is to support a baseline alignment.
A summary of changes:
* added a get_text_width_height_descent() method in the TexManager
class, and modified the agg, ps and pdf backends to utilize this
method.
* added a new rc parameter, 'text.latex.preview'. If True,
preview.sty is used to generate dvi files and baseline information of
each dvi file is stored in a separate file.
TexManager.get_text_width_height_descent() method uses this
information.
* If text.latex.preview==False,
TexManager.get_text_width_height_descent() method uses dviread module
(this is what the pdf backend has been using), but the returned
descent value of the text is sometimes incorrect.
* added an example ("usetex_baseline_test.py" ). The output is
attached with this email.
If you have a preview.sty installed, please test this (set
"text.latex.preview=True" in you rc file) and report any problems.
Regards,
-JJ
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------------
------------------------------------------------------------------------
_______________________________________________
Matplotlib-devel mailing list
Matplotlib-devel@lists.sourceforge.net
matplotlib-devel List Signup and Options
--
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA