15

expression()イタリック体のテキストを取得するために、R プロットで使用しています。expressionしかし、ASCII 文字の外側でUnicode 記号を使用できないように見えます。これを回避する方法はありますか?私の目標はfi、R barplots のさまざまなラベルで合字を取得することです (イタリック体のテキストと共に)。

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

ここに画像の説明を入力

4

1 に答える 1

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 ="fi")
offset2 = strwidth("fi ")
text(x =.5+offset1+offset2, y = .5, labels = expression(italic(m)))

フォーマットされた出力

しかし、「fi」の間隔について何かが正しくないことに注意してください。そのため、画面上の幅を計算するときに、「fi」の幅をごまかして計算しました (余分な空白を使用)。余分なスペースがないと、2 番目italic(m)の文字が「fi」に重なってしまいます。

きれいではありませんが、Windows で目的の結果が得られます。

于 2016-12-29T01:52:05.273 に答える