首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R的expression()命令中使用Unicode

在R的expression()命令中使用Unicode
EN

Stack Overflow用户
提问于 2013-11-10 02:34:27
回答 1查看 1.6K关注 0票数 15

我在R图中使用expression()是为了得到斜体文本。但是看起来好像我不能在expression中使用ASCII字符之外的Unicode符号。有什么办法可以解决这个问题吗?我的目标是在我的R条形图中获得不同标签的fi连接(以及斜体文本)。

我使用的是R for Windows版本3.0.2。

代码语言:javascript
复制
CairoPDF(file = "Ligature1.pdf")
plot.new()
text(x =.5, y = .5, labels = "fi", family = "Times New Roman")
dev.off()

代码语言:javascript
复制
CairoPDF(file = "Ligature2.pdf")
plot.new()
text(x =.5, y = .5, labels = expression(paste(italic(m), "u", "fi", italic(m), sep = "")), family = "Times New Roman")
dev.off()

EN

回答 1

Stack Overflow用户

发布于 2016-12-29 09:52:05

你要的是变通的办法。这就是全部。斜体部分需要expression,但"fi“部分不需要,因此分别打印它们。

代码语言:javascript
复制
plot.new()
offset1 = strwidth(expression(paste(italic(m), "u")), units="figure")
text(x =.5, y = .5, labels = expression(paste(italic(m), "u", sep="")))
text(x =.5+offset1, y = .5, labels ="fi")
offset2 = strwidth("fi ")
text(x =.5+offset1+offset2, y = .5, labels = expression(italic(m)))

但请注意,关于"fi“的间距有些不太正确,所以当我计算屏幕上的宽度时,我作弊并计算了"fi”的宽度(带有额外的空格)。在没有额外间距的情况下,第二个italic(m)与"fi“重叠。

并不美观,但它在Windows下产生了所需的结果。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19881553

复制
相关文章

相似问题

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