matplotlib for Python 3.2在Mac OS X上生成损坏的eps文件

时间:2014-01-21 19:42:10

标签: macos python-3.x matplotlib

我有一个python脚本,用于使用matplotlib创建绘图,并将它们保存为.eps文件。如果我在Mac上运行它,它会生成损坏的.eps文件。如果我尝试使用预览打开.eps文件,我会收到pdf转换错误,但它们无法打开。如果我使用图中的.eps文件在.tex文件上运行pdflatex,我会收到错误

<use ./foo-eps-converted-to.pdf>Error: /dictstackunderflow in --end--
但是,奇怪的是,.pdf文件打开并正确显示图表 - 如果我重新运行pdflatex而不删除任何'-eps-converted-to.pdf'文件,这些文件也打开就好了,那么这个错误不再出现。另一方面,如果我使用latex,然后dvips,那么得到的postscript文档无法通过Preview打开,然后ps2pdf失败并显示错误

Error: /undefined in ocount

并且生成的.pdf文件仅包含第一个数字(并在此后立即结束)。

现在,如果我在Linux上运行相同的python脚本,我不会遇到.eps文件的任何问题。我使用nano打开了在两个操作系统上生成的.eps文件,并注意到文件末尾的差异。该文件以

结尾
%%PageTrailer
%%Trailer
end
cleartomark
countdictstack
exch sub { end } repeat
restore
%%EOF
Linux上的

%%PageTrailer
%%Trailer
cleartomark
countdictstack
exch sub { end } repeat
restore
end
%%EOF
在Mac上

。如果我手动将Mac上生成的文件中的单词“end”移动到Linux文件中的位置,则会在Preview中打开.eps文件,使用图中文件的LaTeX文档将正确编译,任何错误,使用pdflatex或latex - &gt; dvips - &gt; PS2PDF。

为了它的价值,我正在运行Mac OS X 10.7.5,并使用通过macports安装的Python 3.2和matplotlib。 (所以python32,目前版本为3.2.5,py32-matplotlib,目前版本为1.3.1。)

虽然我确实有问题的解决方法(我可以使用pdflatex并忽略错误,或者我可以手动编辑.eps文件,或者我可以在我的Linux机器上完成所有的绘图),我希望如果我能从根本上解决问题。但是,我真的不明白它的原因是什么 - 为什么matplotlib在我的Mac上生成的.eps文件与Linux不同,或者为什么这种差异甚至会产生错误 - 所以我不知道如何解决它

感谢您提供的任何帮助,如果之前已经提出过这样的问题,我会道歉(尽管我找不到任何迹象)。

0 个答案:

没有答案
相关问题