首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后记()中文

后记()中文
EN

Stack Overflow用户
提问于 2013-04-24 04:15:08
回答 2查看 598关注 0票数 1

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

我正在使用Macbook Pro山区狮子10.8.3与以下R sessionInfo()信息:

代码语言:javascript
复制
R version 3.0.0 (2013-04-03) 
Platform: x86_64-apple-darwin10.8.0 (64-bit) 

locale: 
[1] en_US.UTF-8 

attached base packages: 
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached): 
[1] tools_3.0.0 

以下是我的主要代码

代码语言:javascript
复制
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,Ghostscript和Photoshop打开。

代码语言:javascript
复制
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文件。

代码语言:javascript
复制
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(SimSun=“”)让我完全没有问题,可以在pdf()和png()设备中显示和保存以下内容。

我需要制作一个高质量打印的后记文件。

再次感谢。

SS

EN

回答 2

Stack Overflow用户

发布于 2013-04-24 04:31:02

保罗·穆雷尔和布赖恩·里普利就是这样在他们的2006年R-新闻文章:中做到的

代码语言:javascript
复制
 pdf("chinese.pdf", width=3, height=1) 
 grid.text("\u4F60\u597D", y=2/3,
            gp=gpar(fontfamily="CNS1")) 
 grid.text("is 'hello' in (Traditional) Chinese",  y=1/3) 
 dev.off()

为了记录在案,在Mac10.6.8上的R3.0.0中运行drammock提供的代码在MacGhostView中打开时会产生这样的结果:

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

代码语言:javascript
复制
names(postscriptFonts())
票数 1
EN

Stack Overflow用户

发布于 2013-04-24 17:20:47

cairo_ps()在Mac上为我工作,两者都带有基本图形:

代码语言:javascript
复制
cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
text(0.5, 0.5, "這是漢字")
dev.off()

..。在网格中:

代码语言:javascript
复制
library(grid)
cairo_ps(filename="foo.eps", family="LiSong Pro")
plot.new()
grid.text("這是漢字")
dev.off()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16183258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档