Подтвердить что ты не робот

Использование Unicode внутри команды R expression()

Я использую expression() в строках R, чтобы получить выделенный текст. Но похоже, что я не могу использовать символы Unicode внутри expression вне символов ASCII. Есть ли способ, которым я могу обойти это? Моя цель - получить лигатуру fi в разных ярлыках на моих R-строках (вместе с курсивом).

Я использую R для Windows версии 3.0.2.

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

enter image description here

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

enter image description here

4b9b3361

Ответ 1

Ты попросил обход. Вот и все. Курсивной части требуется 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)))

форматированный вывод

Но обратите внимание, что что-то не совсем право от шага "фи", поэтому, когда я вычислил ширину на экране, я изменял и вычислил ширину "фи" (с дополнительным пустым). Без дополнительного интервала второй italic(m) перекрывал "fi".

Не очень, но он дает желаемый результат под Windows.