Q:

Using Unicode inside R's expression() command

I'm using expression() in R plots in order to get italicized text. But it appears as if I cannot use Unicode symbols inside expression outside of ASCII characters. Is there some way I can work around this? My goal is to get the fi ligature in various labels in my R barplots (together with italicized text).
I'm using R for Windows version 3.0.2.
CairoPDF(file = "Ligature1.pdf")
plot.new()
text(x =.5, y = .5, labels = "ﬁ", family = "Times New Roman")
dev.off()

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

A:

You asked for a work-around.  That is all this is.   The italic part needs expression, but the "ﬁ" part does not,  so print them separately.  
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)))

But notice that something is not quite right about the spacing of the "ﬁ", so when I computed the width on the screen, I cheated and computed the width of "ﬁ "  (with an extra blank).  Without the extra spacing,  the second italic(m) overlapped the "ﬁ".
Not pretty, but it produces the desired result under Windows.

