embed_fonts()在封装的postscript(.eps,R)上更改纸张大小

时间:2016-06-03 11:40:53

标签: r graphics fonts postscript

我正在尝试创建一个(封装的)Postscript图形,其中嵌入了文件中的字体。对于嵌入,我使用extrafont包。

虽然postscript()设备创建的实际图形完全正常,但embed_fonts()似乎会将纸张尺寸更改为A4或Letter。这是为什么?有没有办法维持postscript()设备设置的纸张尺寸?

这是一个最小的例子:

library(extrafont)

postscript( "test.eps", family="Times New Roman", width=4, height=4,
            horizontal = FALSE, onefile=FALSE, paper = "special")

plot(1:10)

dev.off()
embed_fonts("test.eps")

运行此示例不带embed_fonts()的调用会产生具有适当尺寸的图形(即所需的输出)。以下是我的文档查看器的屏幕截图:

enter image description here

但是,只要在此文件上运行embed_fonts(),纸张尺寸就会更改为固定的纸张尺寸:

enter image description here

有解决方法吗?嵌入字体和使用.eps都是必要的。我怀疑它可能与paper="special"(或缺少它)时保存在Postscript文件中的信息有关。好像embed_fonts()似乎会自行重置此信息。

1 个答案:

答案 0 :(得分:0)

如果您发布了一个eample文件,那么我可以查看并告诉您有什么不同,我无法告诉您有关从R

控制它的任何信息

对于EPS(与PostScript相对),程序不得请求媒体大小,但它(实际上必须)包含描述边界框的注释。

因此,文件不是EPS,或者评论将其描述为A4或“某事”。你还没有解释你在PostScript程序中做了什么,它表现出两组之间的差异。我的意思是“你的观众是什么?”