2013-11-09 14 views
14

Sto utilizzando expression() nei grafici R per ottenere testo in corsivo. Ma sembra che non posso usare i simboli Unicode all'interno di expression al di fuori dei caratteri ASCII. C'è un modo in cui posso aggirare questo? Il mio obiettivo è ottenere la legatura fi in varie etichette nei miei barlotti R (insieme al testo in corsivo).Utilizzo di Unicode nel comando expression() di R

Sto usando R per Windows versione 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

+0

Funziona bene su Debian/R 3.0.2 - ['sessionInfo()'] (http://pastebin.com/p25qReW7) – zero323

+0

Non è possibile riprodurre su un Mac, neanche. Il 'paste' sembra inutile. Cosa vedi con 'italic (m) * u * fi * italic (m)'? –

+0

@DWin: esattamente come nella mia domanda. – Sverre

risposta

3

Avete chiesto un work-around. Questo è tutto ciò La parte in corsivo ha bisogno di expression, ma la parte "fi" non lo è, quindi stampale separatamente.

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

formatted output

a meno di notare che qualcosa non è giusto circa la spaziatura del "fi", così quando ho calcolata la larghezza sullo schermo, ho barato e calcolato la larghezza di "fi" (con un bianco in più). Senza la spaziatura aggiuntiva, il secondo italic(m) si sovrapponeva al "fi".

Non bello, ma produce il risultato desiderato in Windows.

+0

Questa è una soluzione valida e, in assenza di risposte migliori, ho richiesto che questa risposta fosse non cancellata in modo che potesse essere assegnata la taglia. Grazie! –

+0

Wow, pensavo di aver cancellato questa risposta. Grazie. – G5W

Problemi correlati