R postscript()中文

R postscript()中文,r,postscript,R,Postscript,我正在尝试设置R postscript()设备以显示汉字,但没有成功 我正在使用Macbook Pro Mountain Lion 10.8.3,其中包含以下RsessionInfo()信息: 下面是我的主要代码 postscript("圖9-35plotmath.ps", horizontal = FALSE, height = 6) plot(c(-pi, -pi/2, 0, pi/2, pi), 1:5, type = "n", xaxt = "n", main = expressi

我正在尝试设置R postscript()设备以显示汉字,但没有成功

我正在使用Macbook Pro Mountain Lion 10.8.3,其中包含以下R
sessionInfo()
信息:



下面是我的主要代码

postscript("圖9-35plotmath.ps", horizontal = FALSE, height = 6) 
plot(c(-pi, -pi/2, 0, pi/2, pi), 1:5, type = "n", xaxt = "n", main = expression(paste(plain(sin) * phi, "與", plain(cos) * phi)), ylab = expression("sin" * phi), xlab = expression(paste("Phase Angle", phi))) 

axis(side = 1, at = c(-pi, -pi/2, 0, pi/2, pi), labels = expression(-pi, -pi/2, 0, pi/2, pi)) 

for(i in 1:5) 
{ 
    text(-2.5, i, substitute(list(xi, eta) == group("(", list(x, y), ")"), list(x = i, y = i+1))) 
} 

text(-1.7, 5, expression("一階微分"== {f * minute}(x)), adj = 0) 
text(-1.7, 4, expression("二階微分"== {f * second}(x)), adj = 0) 
text(-1.7, 3, pos = 4, expression(hat(beta) == (X^t * X)^{-1} * X^t *y)) 
text(-1.7, 2, pos = 4, expression(bar(x) == sum(frac(x[i], n), i == 1, n))) 
text(-1.7, 1.2, pos = 4, expression(paste(frac(1, sigma*sqrt(2*pi)), " ", plain(e)^{frac(-(x-mu)^2, 2*sigma^2)})), cex = 1.2) 

text(0.5, 4.6, pos = 4, expression(prod(plain(P)(X == k), k = 1, n))) 
text(0.5, 4, pos = 4, expression(integral(f(x)*dx, a,b))) 
text(0.5, 3, pos = 4, expression(union(A[i], i  == 1, n))) 
text(0.5, 2, pos = 4, expression(intersect(A[i], i  == 1, n))) 
text(0.5, 1, pos = 4, expression(lim(f(x), x %->% 0))) 

text(2, 4.5, pos = 4, expression(min(f(x), x > 0))) 
text(1, 3.5, pos = 4, expression(Y == beta[0] + list(beta[1]*X[1], ..., beta[p-1]*X[p-1]))) 
text(1.5, 2.5, pos = 4, expression(S^2 == sqrt(frac(sum((X[i]=bar(x))^2), n-1)))) 
dev.off() 
上述操作不起作用,生成的postscript文件为所有这些汉字提供了[…]。然后,我尝试了以下方法:

在postscript()中使用现有的GB1字体。它给了我一个.ps文件,Mac Preview、Ghostscript和Photoshop无法打开它

postscript("圖9-35plotmath.ps", horizontal = FALSE, height = 6, fonts=c("GB1")) 
plot(c(-pi, -pi/2, 0, pi/2, pi), 1:5, type = "n", xaxt = "n", family = "GB1", main = expression(paste(plain(sin) * phi, "與", plain(cos) * phi)), ylab = expression("sin" * phi), xlab = expression(paste("Phase Angle", phi))) 

...............(omitted) 
text(-1.7, 5, family = "GB1", expression("一階微分"== {f * minute}(x)), adj = 0) 
text(-1.7, 4, family = "GB1", expression("二階微分"== {f * second}(x)), adj = 0) 
..............(omitted) 
我还尝试使用CIDFont()添加一些字体,但它仍然提供了一个根本无法打开的.ps文件

song = CIDFont("SimSun", "GBK-EUC-H", "GBK", "") 
postscriptFonts(song = song) 
postscript("圖9-35plotmath.ps", horizontal = FALSE, height = 6, family="song") 
plot(c(-pi, -pi/2, 0, pi/2, pi), 1:5, type = "n", xaxt = "n", family = "song", main = expression(paste(plain(sin) * phi, "與", plain(cos) * phi)), ylab = expression("sin" * phi), xlab = expression(paste("Phase Angle", phi))) 

..............(omitted) 

text(-1.7, 5, family = "song", expression("一階微分"== {f * minute}(x)), adj = 0) 
text(-1.7, 4, family = "song", expression("二階微分"== {f * second}(x)), adj = 0) 
.............(omitted) 
这两种方法都没有警告,但无法打开.ps文件

我发现很难理解postscript()中的字体和族定义,其中par(family=“SimSun”)对在pdf()和png()设备中显示和保存以下内容没有任何问题

我需要生成一个用于高质量打印的postscript文件

再次感谢


SS

这就是保罗·穆雷尔和布赖恩·里普利在他们的演讲中所做的

为了记录在案,drammock提供的代码在Mac 10.6.8上的R3.0.0中运行,在MacGhostView中打开时会产生以下结果:

编辑:您可以通过以下方式检查postscript设备可用的字体:

names(postscriptFonts())

这就是保罗·莫雷尔和布赖恩·里普利在他们的作品中所做的

为了记录在案,drammock提供的代码在Mac 10.6.8上的R3.0.0中运行,在MacGhostView中打开时会产生以下结果:

编辑:您可以通过以下方式检查postscript设备可用的字体:

names(postscriptFonts())
cairo\u ps()
适用于我的Mac电脑,两种电脑都有基本图形:

cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
text(0.5, 0.5, "這是漢字")
dev.off()
。。。和网格:

library(grid)
cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
grid.text("這是漢字")
dev.off()
cairo\u ps()
适用于我的Mac电脑,两种电脑都有基本图形:

cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
text(0.5, 0.5, "這是漢字")
dev.off()
。。。和网格:

library(grid)
cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
grid.text("這是漢字")
dev.off()


我认为你可能做得更好,把它简化成一个简单的例子。程序摘要已经是最短的,省略了许多细节。省略“细节”是掩盖错误的有效方法。请生成完成任务或产生错误的代码。我认为如果将其简化为一个简单的示例,您可能会做得更好。程序摘要已经是最短的,省略了许多细节。省略“细节”是隐藏错误的有效方法。请生成完成任务或产生错误的代码。谢谢。我试过你的方法,但还是没成功。ps文件已创建,但当我打开它时,绘图为空,没有任何中文字符。我不知道是否还有其他设置?我不知道该告诉你什么。我刚刚复制并粘贴了您的确切代码,将
postscript()
行替换为
cairo\p(“圖9-35plotmath.ps“,family=“LiSong Pro”)
,我在绘图标题和两个
text()
调用中看到了汉字。我使用的是一台运行OSX 10.6.8的iMac,带有旧版本的R(2.15.1),平台x86_64-apple-darwin9.8.0/x86_64,这可能就是原因。我正在使用OSX 10.8.3和R3.0。事实上,我不喜欢使用新版本,只是因为我的旧MacBookPro 2009屏幕坏了。无论如何,让我搜索一些R3.0发行说明,看看会发生什么。一个问题,在执行上述命令之前,您是否创建(使用CIDFont())LiSong pro字体?我输入了postscriptFonts(),李松Pro不是原始字体。否。李松Pro是一种opentype字体。cairo_ps()设备不仅限于使用postscript字体。谢谢。我试过你的方法,但还是没成功。ps文件已创建,但当我打开它时,绘图为空,没有任何中文字符。我不知道是否还有其他设置?我不知道该告诉你什么。我刚刚复制并粘贴了您的确切代码,将
postscript()
行替换为
cairo\p(“圖9-35plotmath.ps“,family=“LiSong Pro”)
,我在绘图标题和两个
text()
调用中看到了汉字。我使用的是一台运行OSX 10.6.8的iMac,带有旧版本的R(2.15.1),平台x86_64-apple-darwin9.8.0/x86_64,这可能就是原因。我正在使用OSX 10.8.3和R3.0。事实上,我不喜欢使用新版本,只是因为我的旧MacBookPro 2009屏幕坏了。无论如何,让我搜索一些R3.0发行说明,看看会发生什么。一个问题,在执行上述命令之前,您是否创建(使用CIDFont())LiSong pro字体?我输入了postscriptFonts(),李松Pro不是原始字体。否。李松Pro是一种opentype字体。cairo_ps()设备不仅限于使用postscript字体。感谢您的示例。但我希望使用postscript设备示例。显然,下一步是安装正确的字体,并使用postscript或cairo_ps设备运行示例。我尝试使用CIDfont安装SimSun,但没有成功。如果你成功了,你能帮助分享编码吗?字体/系列在postscript()设备中是非常令人困惑的概念。我发布的pdf输出中的字符符号是否正确?您应该意识到,如果没有安装相同的字体集,那么无论您使用什么查看器,都可能存在困难,对吗?是的。它显示相同的字符。当我用postscript替换pdf时,它会显示以下错误:grid.Call.graphics中的错误(L_text,as.graphicsAnnot(x$label)、x$x、x$y、:postscript()中不包含族“CNS1”)设备。绘图仅显示英文字符感谢您的示例。但我希望使用postscript设备示例。显然,下一步是安装正确的字体,并使用postscript或cairo_ps设备运行示例。我尝试使用CIDfont安装SimSun,但未成功。如果成功,您能帮助共享此示例吗e编码?字体/系列在postscript()设备中是非常令人困惑的概念。我发布的pdf输出中的字符符号是否正确?您应该意识到,无论您使用什么查看器,都可能存在困难