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

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

我使用Windows版本3.0.2 R。

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

在这里输入图像说明

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

在这里输入图像说明

Solutions Collecting From Web of "在R的expression()命令中使用Unicode"

你问了一个解决办法。 这就是这一切。 斜体部分需要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))) 

格式化输出

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

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