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

Sve*_*rre 14 windows unicode r

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

我正在使用R for Windows 3.0.2版.

CairoPDF(file = "Ligature1.pdf")
plot.new()
text(x =.5, y = .5, labels = "?", family = "Times New Roman")
dev.off()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

CairoPDF(file = "Ligature2.pdf")
plot.new()
text(x =.5, y = .5, labels = expression(paste(italic(m), "u", "?", italic(m), sep = "")), family = "Times New Roman")
dev.off()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

G5W*_*G5W 5

你要求解决办法。这就是全部。斜体部分需要expression,但是“?” 部分没有,所以分开打印。

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 ="?")
offset2 = strwidth("? ")
text(x =.5+offset1+offset2, y = .5, labels = expression(italic(m)))
Run Code Online (Sandbox Code Playgroud)

格式化输出

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

不漂亮,但它在 Windows 下产生了想要的结果。