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

时间:2013-11-09 18:34:27

标签: windows r unicode

我在R图中使用expression()以获得斜体文本。但似乎我不能在ASCII字符之外的expression内使用Unicode符号。有什么方法可以解决这个问题吗?我的目标是在我的R条形图中使用各种标签fi连字(连同斜体文字)。

我正在使用R for Windows 3.0.2。

CairoPDF(file = "Ligature1.pdf")
plot.new()
text(x =.5, y = .5, labels = "fi", family = "Times New Roman")
dev.off()

enter image description here

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()

enter image description here

1 个答案:

答案 0 :(得分:3)

你要求解决方法。这就是全部。斜体部分需要expression,但“fi”部分不需要,因此请单独打印。

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)))

formatted output

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

不漂亮,但它会在Windows下产生所需的结果。