如何在不丢失文本的情况下导入Mathematica中的.eps?

时间:2013-09-05 22:34:33

标签: import wolfram-mathematica stata eps

我正在尝试将Stata生成的直方图作为.eps文件导入 Mathematica ,但它不会显示轴的标签。也就是说,出于某种原因, Mathematica 不会导入.eps,而是转换它。

我该如何避免?截至目前,我正在使用普通的

Import["~/hst.eps"]

2 个答案:

答案 0 :(得分:1)

我最近有一个similar problem的LateX和一个pdf图,它也表现了eps版本。我最后修改了用户编写的graphexportpdf,事情似乎已经解决了。也许你会发现这个解决方案很有用。

答案 1 :(得分:0)

Mathematica 目前(第9版)通常无法正确导入.eps文件中的文本元素。一种可能的解决方案是将绘图输出为.pdf而不是.eps绘制软件,然后Import生成.pdf。如果您需要将文本作为文本导入,可以使用"TextOutlines" -> False选项关闭大纲。

如果无法从您的绘图软件导出到.pdf,您可以convert .eps to .pdf通过其他程序,然后Import生成.pdf,如上所述。 对于使用orders_weekly.eps然后Import生成.pdf的文件gsEPS2PDFEmbedFonts function,我得到( Mathematica 8.0.4):

gsEPS2PDFEmbedFonts["orders_weekly.eps", "orders_weekly.pdf"]
graphics=First@Import["orders_weekly.pdf"(*,"TextOutlines"->False*)];
Show[graphics, Frame -> True, PlotRange -> All, ImageSize -> Automatic]

plot

我评论了"TextOutlines" -> False选项,因为 Mathematica 8.0.4仍然错误地导入旋转文本。我没有用v.9测试它。


另一种可能性是将.eps文件中的所有glypth转换为oultines。基于Jens Nöckel's code

gsEPS2outlinedEPS[epsPath_String, outlinedEPSPath_String] := 
 Run["gswin64c.exe -sDEVICE=epswrite -dNOCACHE -sOutputFile=\"" <> 
   outlinedEPSPath <> "\" -q -dbatch -dNOPAUSE \"" <> epsPath <> 
   "\" -c quit"]

此处gswin64c.exe是64位Windows系统的GhostScript可执行文件的名称,因为Linux将其替换为gs。 请注意,您应该安装并配置GhostScript(对于Windows,您shouldgs\bings\lib添加到PATH,其中gs是顶级Ghostscript目录)