Hi
I'm trying to make a plot as a pdf file (or any vector format) with LaTeX fonts. I can make it output the file using show, but not with savefig (unless it is raster graphics).
My setup is Fedora 13 64 bit with the latest TexLive: texlive-2011-0.1.20110227.fc13.x86_64
and matplotlib from svn, revision 8988.
I can run tex_demo.py as it is from [http://matplotlib.sourceforge.net/users/usetex.html](http://matplotlib.sourceforge.net/users/usetex.html)
but is I change it such that instead of a png it outputs a pdf, like the example below, it crashes.
I know there was a post on the mail liste a couple of days ago ( Bug in `dviread.py'), but I'm not sure if this is the same error, which it shouldn't be as I'm using the latest svn revision.
Does anyone have the same problem?
The example and debug output are shown below.
Regards
Pål
Example (test.py):
<details class='elided'>
<summary title='Show trimmed content'>···</summary>
---------------------------
#!/usr/bin/env python
import matplotlib
matplotlib.use('Qt4Agg')
from matplotlib import rc
from numpy import arange, cos, pi
from matplotlib.pyplot import figure, axes, plot, xlabel, ylabel, title, \
grid, savefig, show
rc('text', usetex=True)
rc('font', family='serif')
figure(1, figsize=(6,4))
ax = axes([0.1, 0.1, 0.8, 0.7])
t = arange(0.0, 1.0+0.01, 0.01)
s = cos(2*2*pi*t)+2
plot(t, s)
xlabel(r'\textbf{time (s)}')
ylabel(r'\textit{voltage (mV)}',fontsize=16)
title(r"\TeX\ is Number $\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
fontsize=16, color='r')
grid(True)
savefig('tex_demo.pdf')
show()
--------------------------
Debug output
------
python test.py --verbose-debug-annoying :
$HOME=/home/gudrun/foo_bar
CONFIGDIR=/home/gudrun/foo_bar/.matplotlib
matplotlib data path /export/work/foo_bar/matplotlib/lib/matplotlib/mpl-data
loaded rc file /export/work/foo_bar/matplotlib/lib/matplotlib/mpl-data/matplotlibrc
matplotlib version 1.1.0svn
verbose.level debug-annoying
interactive is False
units is False
platform is linux2
loaded modules: ['numpy.lib._iotools', 'xml.sax.urlparse', 'distutils', 'matplotlib.errno', 'matplotlib.matplotlib', '_bisect', 'subprocess', 'gc', 'matplotlib.tempfile', 'distutils.sysconfig', 'ctypes._endian', 'encodings.encodings', 'matplotlib.colors', 'numpy.core.numerictypes', 'numpy.testing.sys', '[numpy.core.info](http://numpy.core.info)', 'xml', 'numpy.fft.types', 'numpy.ma.operator', 'numpy.ma.cPickle', 'struct', '[numpy.random.info](http://numpy.random.info)', 'tempfile', 'base64', 'numpy.linalg', 'matplotlib.threading', 'numpy.testing.operator', 'imp', 'numpy.testing', 'collections', 'numpy.core.umath', 'distutils.types', 'numpy.lib.numpy', 'numpy.core.scalarmath', 'functools', 'zipimport', 'string', 'matplotlib.subprocess', 'numpy.testing.os', 'matplotlib.locale', 'numpy.lib.arraysetops', 'numpy.testing.unittest', 'numpy.lib.math', 'encodings.utf_8', 'matplotlib.__future__', 'zope', '[numpy.testing.re](http://numpy.testing.re)', 'itertools', 'numpy.version', '[numpy.lib.re](http://numpy.lib.re)', '[distutils.re](http://distutils.re)', 'ctypes.os', 'numpy.core.os', 'numpy.lib.type_check', 'httplib', 'numpy.lib.__builtin__', 'signal', 'numpy.lib.types', 'numpy.lib._datasource', 'random', 'numpy.ma.extras', 'token', 'numpy.fft.fftpack_lite', 'matplotlib.cbook', 'ctypes.ctypes', 'xml.sax.xmlreader', 'numpy.__builtin__', 'dis', 'distutils.version', 'cStringIO', 'numpy.ma.core', 'numpy.numpy', 'matplotlib.StringIO', 'locale', 'numpy.add_newdocs', 'numpy.lib.getlimits', 'matplotlib.urllib2', 'syslog', 'xml.sax.saxutils', 'matplotlib.numpy', 'numpy.lib.sys', 'encodings', 'numpy.ma.itertools', 'StringIO', '[numpy.lib.io](http://numpy.lib.io)', 'abc', 'numpy.ctypes', 'numpy.testing.decorators', 'matplotlib.warnings', 'rfc822', 'matplotlib.string', 'urllib', 'matplotlib.sys', 're', 'numpy.lib._compiled_base', 'threading', 'new', 'numpy.random.mtrand', 'urllib2', 'matplotlib.cPickle', 'math', 'numpy.fft.helper', 'fcntl', 'numpy.ma.warnings', 'inspect', 'numpy.ma.inspect', 'UserDict', 'numpy.lib.function_base', 'distutils.os', 'matplotlib', 'numpy.fft.numpy', 'xml.sax.codecs', 'exceptions', '[numpy.lib.info](http://numpy.lib.info)', 'ctypes', 'numpy.lib.warnings', 'ctypes.struct', 'codecs', 'numpy.core._sort', 'numpy.os', 'paste', '_functools', '_locale', 'matplotlib.sre_constants', 'socket', 'thread', 'numpy.lib.ufunclike', 'numpy.core.memmap', 'traceback', 'numpy.core._dotblas', 'weakref', 'numpy.core._internal', 'numpy.fft.fftpack', 'opcode', 'numpy.linalg.lapack_lite', 'distutils.sys', 'os', 'marshal', 'numpy.lib.itertools', '__future__', 'matplotlib.copy', 'xml.sax.types', 'matplotlib.traceback', '_sre', 'unittest', 'numpy.core.sys', 'numpy.random', 'numpy.linalg.numpy', '__builtin__', 'numpy.lib.twodim_base', '[matplotlib.re](http://matplotlib.re)', 'numpy.core.cPickle', 'operator', 'array', 'numpy.core.arrayprint', 'distutils.string', 'numpy.lib.arrayterator', 'select', 'ctypes._ctypes', 'ctypes.sys', 'matplotlib.datetime', 'posixpath', 'numpy.lib.financial', 'numpy.core.multiarray', 'errno', '_socket', 'binascii', 'sre_constants', 'datetime', '[numpy.ma](http://numpy.ma)', 'xml.sax.handler', 'os.path', 'tokenize', 'numpy.lib.stride_tricks', 'numpy.core.numpy', 'numpy', '_warnings', 'matplotlib.types', 'numpy.core.defmatrix', 'xml.sax.os', 'cPickle', 'encodings.__builtin__', 'matplotlib.xml', 'matplotlib.new', '_codecs', 'numpy.lib.operator', 'numpy.__config__', '_collections', 'matplotlib.pyparsing', 'numpy.ma.numpy', 'copy', '[numpy.core.re](http://numpy.core.re)', '_struct', 'numpy.core.fromnumeric', 'hashlib', 'numpy.ctypeslib', 'keyword', 'numpy.lib.scimath', 'numpy.fft', 'numpy.lib', 'bisect', 'numpy.random.numpy', 'matplotlib.random', 'posix', 'encodings.aliases', 'matplotlib.fontconfig_pattern', 'fnmatch', 'sre_parse', 'abrt_exception_handler', 'pickle', 'numpy.core.ctypes', 'mimetools', 'distutils.distutils', 'copy_reg', 'sre_compile', 'xml.sax', '_hashlib', '_random', 'numpy.lib.__future__', 'site', 'numpy.lib.polynomial', 'numpy._import_tools', '__main__', '[numpy.fft.info](http://numpy.fft.info)', 'numpy.core.records', 'shutil', 'numpy.lib.cPickle', 'numpy.sys', 'matplotlib.weakref', 'xml.sax.urllib', 'matplotlib.os', 'numpy.testing.traceback', 'strop', 'numpy.testing.numpytest', 'numpy.core.numeric', '[numpy.linalg.info](http://numpy.linalg.info)', 'encodings.codecs', '_abcoll', 'numpy.core', 'matplotlib.rcsetup', 'matplotlib.time', 'xml.sax._exceptions', 'genericpath', 'stat', '_ssl', 'numpy.lib.index_tricks', 'warnings', 'numpy.lib.utils', 'numpy.core.defchararray', '_ctypes', 'numpy.lib.shape_base', 'numpy.core.types', 'textwrap', 'sys', 'numpy.core.warnings', 'numpy.core.__builtin__', 'xml.sax.sys', 'numpy.lib.format', 'numpy.lib.os', 'numpy.testing.nosetester', 'types', 'numpy.lib.shutil', 'ssl', 'matplotlib.distutils', '_weakref', 'distutils.errors', 'urlparse', 'linecache', 'matplotlib.shutil', 'numpy.lib.cStringIO', 'time', 'numpy.lib.machar', 'numpy.linalg.linalg', 'numpy.testing.utils']
Using fontManager instance from /home/gudrun/foo_bar/.matplotlib/fontList.cache
backend Qt4Agg version 0.9.1
Dvi: /home/gudrun/foo_bar/.matplotlib/tex.cache/03e7a0bce05f84219ebbd9b25349b054.dvi
Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
find_tex_file(pncr7t.tfm): ['kpsewhich', 'pncr7t.tfm']
find_tex_file result: /usr/share/texlive/texmf-dist/fonts/tfm/adobe/ncntrsbk/pncr7t.tfm
opening tfm file /usr/share/texlive/texmf-dist/fonts/tfm/adobe/ncntrsbk/pncr7t.tfm
lh=18, bc=0, ec=170, nw=33, nh=16, nd=16
find_tex_file(pncr7t.vf): ['kpsewhich', 'pncr7t.vf']
find_tex_file result: /usr/share/texlive/texmf-dist/fonts/vf/adobe/ncntrsbk/pncr7t.vf
Dvi: /usr/share/texlive/texmf-dist/fonts/vf/adobe/ncntrsbk/pncr7t.vf
find_tex_file(pncr8r.tfm): ['kpsewhich', 'pncr8r.tfm']
find_tex_file result: /usr/share/texlive/texmf-dist/fonts/tfm/adobe/ncntrsbk/pncr8r.tfm
opening tfm file /usr/share/texlive/texmf-dist/fonts/tfm/adobe/ncntrsbk/pncr8r.tfm
lh=18, bc=1, ec=255, nw=38, nh=16, nd=16
find_tex_file(pncr8r.vf): ['kpsewhich', 'pncr8r.vf']
find_tex_file result:
Dvi._xxx: encountered special: Warning: missing glyph `Gamma'
Dvi._xxx: encountered special: Warning: missing glyph `Delta'
Dvi._xxx: encountered special: Warning: missing glyph `Theta'
Dvi._xxx: encountered special: Warning: missing glyph `Lambda'
Dvi._xxx: encountered special: Warning: missing glyph `Xi'
Dvi._xxx: encountered special: Warning: missing glyph `Pi'
Dvi._xxx: encountered special: Warning: missing glyph `Sigma'
Dvi._xxx: encountered special: Warning: missing glyph `Upsilon'
Dvi._xxx: encountered special: Warning: missing glyph `Phi'
Dvi._xxx: encountered special: Warning: missing glyph `Psi'
Dvi._xxx: encountered special: Warning: missing glyph `Omega'
Dvi._xxx: encountered special: Warning: missing glyph `dotlessj'
Dvi._xxx: encountered special: Warning: missing glyph `lslashslash'
Dvi: /home/gudrun/foo_bar/.matplotlib/tex.cache/3751fe08829ac873c509bb548895020f.dvi
Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
find_tex_file(cmr12.tfm): ['kpsewhich', 'cmr12.tfm']
find_tex_file result: /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
opening tfm file /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmr12.tfm
lh=18, bc=0, ec=127, nw=34, nh=16, nd=10
find_tex_file(cmr12.vf): ['kpsewhich', 'cmr12.vf']
find_tex_file result:
find_tex_file(cmmi12.tfm): ['kpsewhich', 'cmmi12.tfm']
find_tex_file result: /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
opening tfm file /usr/share/texlive/texmf-dist/fonts/tfm/public/cm/cmmi12.tfm
lh=18, bc=0, ec=127, nw=97, nh=15, nd=9
find_tex_file(cmmi12.vf): ['kpsewhich', 'cmmi12.vf']
find_tex_file result:
Dvi: /home/gudrun/foo_bar/.matplotlib/tex.cache/3751fe08829ac873c509bb548895020f.dvi
Dvi._xxx: encountered special: papersize=5203.43999pt,5203.43999pt
Assigning font /F1 = cmr12
find_tex_file(pdftex.map): ['kpsewhich', 'pdftex.map']
find_tex_file result: /usr/share/texlive/texmf-var/fonts/map/pdftex/updmap/pdftex.map
Multiple encodings for pbkdo8y = URWBookmanL-DemiBold, skipping
Traceback (most recent call last):
File "test", line 35, in <module>
savefig('tex_demo.pdf')
File "/export/work/foo_bar/matplotlib/lib/matplotlib/pyplot.py", line 363, in savefig
return fig.savefig(*args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/figure.py", line 1159, in savefig
self.canvas.print_figure(*args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backends/backend_qt4agg.py", line 153, in print_figure
FigureCanvasAgg.print_figure(self, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backend_bases.py", line 1963, in print_figure
**kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backend_bases.py", line 1737, in print_pdf
return pdf.print_pdf(*args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backends/backend_pdf.py", line 2183, in print_pdf
self.figure.draw(renderer)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/figure.py", line 873, in draw
func(*args)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/axes.py", line 1954, in draw
a.draw(renderer)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/axis.py", line 986, in draw
tick.draw(renderer)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/axis.py", line 234, in draw
self.label1.draw(renderer)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/text.py", line 571, in draw
self._fontproperties, angle)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backends/backend_pdf.py", line 1576, in draw_tex
psfont = self.tex_font_mapping(dvifont.texname)
File "/export/work/foo_bar/matplotlib/lib/matplotlib/backends/backend_pdf.py", line 1366, in tex_font_mapping
return self.tex_font_map[texfont]
File "/export/work/foo_bar/matplotlib/lib/matplotlib/dviread.py", line 673, in __getitem__
result = self._font[texname]
KeyError: 'cmr12'
Actually, I think this is the same problem as that in “Bug in `dviread.py’”. The problem is that that bug was probably fixed shortly after our transition to github.com, so the svn version actually isn’t the latest version of the code. Please see the documentation here (note, this documentation is still unofficial, but it should get you started): http://matplotlib.github.com/faq/installing_faq.html#install-from-git
I hope that helps!
Ben Root
···
On Tue, Mar 8, 2011 at 12:05 PM, Pål Gunnar Ellingsen <paalge@…878…287…> wrote:
Hi I'm trying to make a plot as a pdf file (or any vector format) with LaTeX fonts. I can make it output the file using show, but not with savefig (unless it is raster graphics). My setup is Fedora 13 64 bit with the latest TexLive: texlive-2011-0.1.20110227.fc13.x86_64 and matplotlib from svn, revision 8988. I can run tex_demo.py as it is from [http://matplotlib.sourceforge.net/users/usetex.html](http://matplotlib.sourceforge.net/users/usetex.html) but is I change it such that instead of a png it outputs a pdf, like the example below, it crashes. I know there was a post on the mail liste a couple of days ago ( Bug in `dviread.py'), but I'm not sure if this is the same error, which it shouldn't be as I'm using the latest svn revision. Does anyone have the same problem? The example and debug output are shown below. Regards Pål