15

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

我正在为 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()

在此处输入图像描述

4

1 回答 1

5

您要求解决方法。这就是全部。斜体部分需要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 下产生了预期的结果。

于 2016-12-29T01:52:05.273 回答