我在R图中使用expression()是为了得到斜体文本。但是看起来好像我不能在expression中使用ASCII字符之外的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()

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

发布于 2016-12-29 09:52:05
你要的是变通的办法。这就是全部。斜体部分需要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下产生了所需的结果。
https://stackoverflow.com/questions/19881553
复制相似问题