如何将EPS图形中的文本转换为R中的矢量轮廓?

如何将EPS图形中的文本转换为R中的矢量轮廓?,r,R,我正在准备一篇论文提交给一家杂志,该杂志要求以EPS格式提交矢量图形,图形中的所有文本都转换为大纲。将文本转换为矢量轮廓有助于避免最终布局中的字体问题。日志要求可用 可以使用ggplot2在R中轻松创建EPS图形: library(ggplot2) ggsave(filename = "file.eps") 或者使用setEPS()和postscript设备,如前所述: 我的问题是:如何将图形中的文本转换为矢量轮廓?我已经在其他软件(例如Illustrator或InDesign)中找到了关于如

我正在准备一篇论文提交给一家杂志,该杂志要求以EPS格式提交矢量图形,图形中的所有文本都转换为大纲。将文本转换为矢量轮廓有助于避免最终布局中的字体问题。日志要求可用

可以使用
ggplot2
在R中轻松创建EPS图形:

library(ggplot2)
ggsave(filename = "file.eps")
或者使用
setEPS()
postscript
设备,如前所述:


我的问题是:如何将图形中的文本转换为矢量轮廓?我已经在其他软件(例如Illustrator或InDesign)中找到了关于如何实现这一点的信息,但我想知道是否有一种方法可以直接在R中实现。

安装
ghostscript
,如果您在linux下,或者(还有一个),对于mac,您可能可以。然后从R中调用
gs
gs.exe

库(ggplot2)
数据(钻石)

谢谢,这些命令很有效。但是我认为您输入了一个错误:选项应该是
-sDEVICE=epswrite
而不是
-sDEVICE=eps2write
。我还添加了
-dEPSCrop
,以避免裁剪图像。为了检查它是否有效,我安装了
pdffonts
(Xpdf的一部分),使用
epstopdf
将两个EPS文件转换为PDF,然后在PDF上运行
pdffonts
,检查嵌入的字体。这实际上表明两个EPS文件都没有任何嵌入式字体,因此
ggsave
可能已经将字体转换为原始EPS中的轮廓。有人能证实吗?我搜索了
ggplot2
文档,但找不到任何信息。您可以使用
gs-h
在ghostscript中列出可用的驱动程序。在我的计算机上,
eps2write
存在,而
epswrite
不存在,但这可能与其他鬼脚本版本有所不同
setEPS()
postscript("filename.eps")
plot(1:10)
dev.off()
library(ggplot2)
data(diamonds)

gs.cmd <- "gs"  # ghostscript executable
# gs.cmd <- "C:/path/to/gs.exe" # Windows

p <- qplot(x=carat, y=price, color=clarity, data=diamonds)

ggsave(p, filename="test.eps")

system(paste(gs.cmd,"-o test_outline.eps -dNoOutputFonts -sDEVICE=eps2write test.eps"))